PISO 74HC165 till arduino ger opålitlig data
PISO 74HC165 till arduino ger opålitlig data
Hej!
Som mitt första inlägg här så håller jag snart på att bli utan hår efter snart tre dagars bråkande med den här lilla rackaren.
Jag har kopplat in en 8-bit PISO i form av en 74HC165 till min arduino. Jag har nog kollat på alla olika sätt att koppla denna och med alla olika motstånd men hur jag än gör så får jag inte den att bli pålitlig.
Mitt problem:
Så länge alla inputs är anslutna med 10k pull-down resistors så visar alla 8 bitarna 0, vilket är rätt.
Problemet uppstår när drar någon av mina inputs high. Då flippar den totalt och ger alla möjliga värden som hela tiden ändras. Jag tycker att den borde ge mig 1 på den input som är high. Koden triggas varje gång en förändring sker och spottar då ut värdena i min serial monitor och så länge alla inputs är low är allt lugnt och sansat men när jag håller någon input high så sprutar det på skärmen med olika resultat.
Jag använder 10k motstånd som pull-down resistors till mina inputs och ett 1k motstånd som pull-down till DS (serial input). Har även en 100nF keramisk kondensator mellan VCC och GND.
Någon mer än jag som har stött på detta fenomenet?
Alla tips och idéer uppskattas.
Som mitt första inlägg här så håller jag snart på att bli utan hår efter snart tre dagars bråkande med den här lilla rackaren.
Jag har kopplat in en 8-bit PISO i form av en 74HC165 till min arduino. Jag har nog kollat på alla olika sätt att koppla denna och med alla olika motstånd men hur jag än gör så får jag inte den att bli pålitlig.
Mitt problem:
Så länge alla inputs är anslutna med 10k pull-down resistors så visar alla 8 bitarna 0, vilket är rätt.
Problemet uppstår när drar någon av mina inputs high. Då flippar den totalt och ger alla möjliga värden som hela tiden ändras. Jag tycker att den borde ge mig 1 på den input som är high. Koden triggas varje gång en förändring sker och spottar då ut värdena i min serial monitor och så länge alla inputs är low är allt lugnt och sansat men när jag håller någon input high så sprutar det på skärmen med olika resultat.
Jag använder 10k motstånd som pull-down resistors till mina inputs och ett 1k motstånd som pull-down till DS (serial input). Har även en 100nF keramisk kondensator mellan VCC och GND.
Någon mer än jag som har stött på detta fenomenet?
Alla tips och idéer uppskattas.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- hcb
- Moderator
- Inlägg: 5980
- Blev medlem: 23 februari 2007, 21:44:50
- Skype: hcbecker
- Ort: Lystrup / Uppsala
- Kontakt:
Re: PISO 74HC165 till arduino ger opålitlig data
Oavsett om det är problemet eller inte bör du sätta dit en avkopplingskondensator på 74-kretsen.
Re: PISO 74HC165 till arduino ger opålitlig data
Det är vad jag trodde jag gjorde med den keramiska på 100nF som sitter överst på mitt breadboard.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: PISO 74HC165 till arduino ger opålitlig data
Nej den sitter ungefär 15cm från kretsen. Elektriskt. Den ska helst sitta på diagonalen över kretsen.
Schema?
Schema?
Re: PISO 74HC165 till arduino ger opålitlig data
I verkligheten sitter den på diagonalen över kretsen men jag ritade den mellan VCC och GND för att det inte skulle se så rörigt ut. Jag kunde dock varit tydligare och berättat det.lillahuset skrev:Nej den sitter ungefär 15cm från kretsen. Elektriskt. Den ska helst sitta på diagonalen över kretsen.
Schema?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
- hcb
- Moderator
- Inlägg: 5980
- Blev medlem: 23 februari 2007, 21:44:50
- Skype: hcbecker
- Ort: Lystrup / Uppsala
- Kontakt:
Re: PISO 74HC165 till arduino ger opålitlig data
Oj, ursäkta, den såg jag inte
Men lillahuset har helt rätt, avkopplingen skall sitta så nära kretsen som bara är möjligt.

Men lillahuset har helt rätt, avkopplingen skall sitta så nära kretsen som bara är möjligt.
Re: PISO 74HC165 till arduino ger opålitlig data
Ingen fara, fritzing-ritningen är inte direkt optimalhcb skrev:Oj, ursäkta, den såg jag inte![]()
Men lillahuset har helt rätt, avkopplingen skall sitta så nära kretsen som bara är möjligt.

Jag kanske bör nämna att allt drivs med ström från arduinon som drivs via en USB-port på datorn, om det har någon betydelse.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: PISO 74HC165 till arduino ger opålitlig data
Det där ser ju rimligt ut.
Själv har jag fördomar om den typen av kopplingsdäck men många använder dem så de kanske inte är så dåliga.
Är det inte ett fel i programmet då? Fel timing till skiftregistret?
Själv har jag fördomar om den typen av kopplingsdäck men många använder dem så de kanske inte är så dåliga.
Är det inte ett fel i programmet då? Fel timing till skiftregistret?
Re: PISO 74HC165 till arduino ger opålitlig data
Om det inte är glapp på VCC eller GND, så tycker jag som lillahuset att det luktar softproblem. Nåt hamnar "out of sync". Är det nån färdig bibliotekskod som samplar och klockar ut datan?
Re: PISO 74HC165 till arduino ger opålitlig data
Jag använder kopplingsdäcket enbart till prototyper men dom flesta filmer på youtube som visar hur man använder dessa 74HC165 får det att fungera utan några direkt konstigheter.
Jag har även försökt härma killen här https://youtu.be/hR6qOhUeKMc som kör helt utan någon uC. Detta har inte heller lyckats, trots att jag debouncat switcharna med kondensatorer. Jag har köpt 4st sådana här 74HC165 och jag får samma resultat med allihop. Killen i filmen har även använt en 595 för inputs och det finns säkert många andra lösningar men då känns det bara som att jag undviker problemet. En 74HC165 SKA ju gå att använda och det vore ju f*n om man inte skulle lyckas.
Så länge ALLA inputs är jordade via 10k så visar den 0b0000 0000 men så fort jag antingen drar någon till VCC så ballar den ur. Det funkar heller inte att bara jorda någon input direkt till GND för då flippar den precis som om dom vore flytande. Det MÅSTE alltså finnas ett 10k motstånd till GND för att den ska hålla sig lugn.
Jag använder mig av koden härifrån http://playground.arduino.cc/Code/ShiftRegSN74HC165N, precis som många andra, och jag har även provat att modifiera koden utan några resultat. Det jag har gjort har i stort sett bara varit att öka pauserna mellan klock-signalerna samt ändrat i vilken ordning CE aktiveras före och efter PL men hur jag än har gjort så har resultatet blivit samma.rvl skrev:Om det inte är glapp på VCC eller GND, så tycker jag som lillahuset att det luktar softproblem. Nåt hamnar "out of sync". Är det nån färdig bibliotekskod som samplar och klockar ut datan?
Jag har även försökt härma killen här https://youtu.be/hR6qOhUeKMc som kör helt utan någon uC. Detta har inte heller lyckats, trots att jag debouncat switcharna med kondensatorer. Jag har köpt 4st sådana här 74HC165 och jag får samma resultat med allihop. Killen i filmen har även använt en 595 för inputs och det finns säkert många andra lösningar men då känns det bara som att jag undviker problemet. En 74HC165 SKA ju gå att använda och det vore ju f*n om man inte skulle lyckas.
Så länge ALLA inputs är jordade via 10k så visar den 0b0000 0000 men så fort jag antingen drar någon till VCC så ballar den ur. Det funkar heller inte att bara jorda någon input direkt till GND för då flippar den precis som om dom vore flytande. Det MÅSTE alltså finnas ett 10k motstånd till GND för att den ska hålla sig lugn.
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: PISO 74HC165 till arduino ger opålitlig data
Det låter som om kan ha en skitig 5V. Om du jordar direkt eller via 10k ska inte spela någon roll.
Om du sätter 10-100uF över 5V där den kommer in från arduinon?
Om det är kopplat (fysiskt) som på bilden kan det vara att jorden flaxar.
Har du något oscilloskop?
Om du sätter 10-100uF över 5V där den kommer in från arduinon?
Om det är kopplat (fysiskt) som på bilden kan det vara att jorden flaxar.
Har du något oscilloskop?
Re: PISO 74HC165 till arduino ger opålitlig data
Nä jag tyckte inte heller att det skulle spela någon roll med eller utan motstånd, så länge dom inte är flytande bara.
Har provat med en 100uF mellan 5V och GND där det kommer från arduinon, ingen skillnad.
Jag har tyvärr inget oscilloskop :/ Det enda jag har kunnat mäta mig fram med är multimeter och den har visat prick 5.00V hela tiden, även när jag drar någon input high.
Provade nyss att mata 165an med ett labb-aggregat istället men det gav fortfarande fladder när jag drar någon input high.
Har provat med en 100uF mellan 5V och GND där det kommer från arduinon, ingen skillnad.
Jag har tyvärr inget oscilloskop :/ Det enda jag har kunnat mäta mig fram med är multimeter och den har visat prick 5.00V hela tiden, även när jag drar någon input high.
Provade nyss att mata 165an med ett labb-aggregat istället men det gav fortfarande fladder när jag drar någon input high.
Re: PISO 74HC165 till arduino ger opålitlig data
Jag tycker det låter som du läser in hela tiden (running wild
). Är det bara 0-or in så ser allt snyggt ut när du samplar, men så fort det finns en eller flera ettor blir resultatet random.

Re: PISO 74HC165 till arduino ger opålitlig data
Ja det känns väldigt märkligt. Det stör mig att jag inte ens kan få rätt på den UTAN en uC. Att trigga den manuellt med switchar till PL, CE och CP och se resultatet på en LED, som killen på filmen i min tidigare youtube-länk gör.
Re: PISO 74HC165 till arduino ger opålitlig data
74HC är en CMOS-variant.
Du kanske skall använda en 74HCT som är en TTL-variant?
Alltså, spänningsnivåerna kanske blir fel för Arduinon?
Jag kan dock inte så mycket om Arduino så det är bara en gissning.
Du kanske skall använda en 74HCT som är en TTL-variant?
Alltså, spänningsnivåerna kanske blir fel för Arduinon?

Jag kan dock inte så mycket om Arduino så det är bara en gissning.