Beginner hulp met IC 74HC595

Enkele weken terug voor het eerst begonnen met wat elektronica kennis op te doen met behulp van 'Elektronica voor dummies'. Ik had geen enkele voorgaande kennis mbt elektronica.
Ik heb mezelf een 100 in 1 kit aangekocht om de voorbeelden uit het boek te volgen, dus dat is ook het enigste materiaal dat ik heb.

Nu had ik graag een simpel LED aanstuur circuit met een 74HC595 gemaakt, maar deze weigert te werken.
Ik heb het circuit voorbeeld van de arduino website gevolgd in combinatie met die uit de datasheet van de 74hc595.
Maar in plaats van arduino gebruik ik push buttons.

https://www.arduino.cc/en/uploads/Tutorial/ShftOut_Schm1.jpg

Enkele foto's van mijn circuit:

https://i.imgur.com/lJRgTaem.jpg https://i.imgur.com/UCGs6mb.jpg
https://i.imgur.com/UCGs6mbm.jpg
https://i.imgur.com/UCGs6mb.jpg

Ik weet dat de lange kabels maken het wat onoverzichtelijk maken, maar heb de kleuren nog een beetje logisch proberen te houden.

Wat ik weet van de 74HC595:

- MR op 5V om waardes te behouden
- OE op GND om LEDs te laten branden
- Pin 16 aan 5V met condensator om dip in spanning op te vangen?
- pin 8 aan GND
- pin 1-7 is gekoppeld aan leds
- pin 15 heb ik even niet aangesloten
- pin 14 data pin: Hiermee kies ik LED aan of uit
- pin 11 clock pin: Deze meet de data pin op moment van indrukken en zal dus zo de waarde voor de LED opslaan
- pin 12 latch pin: Deze pin stuurt waardes van opslag/register naar de LEDs
- pin 9 niet gebruikt

Wat gebeurt er momenteel, wat helemeel niet te hoort:

- bij éénmaal drukken data pin + daarna latch pin, branden alle LEDS
- bij éénmaal drukken data pin + daarna clock pin, gaan LED per klik verder aan
- bij drukken clock pin en daarna latch pin, gaan LED niet uit

Wat kan er mis gaan:

- Ga ik over de maximum stroom die wordt voorgeschreven in datasheet? (Is me niet volledig duidelijk hoe ik dit moet uitrekenen? adhv van aangesloten LEDS en weerstanden?
- Verkeerde aansluiting in circuit?
- debounce effect van knopjes dat verkeerde resultaten geeft? Al lijkt me dit niet de rare combinaties van hierboven te verklaren?
- kapotte chip? (heb er meerdere geprobeerd)
- interferentie tussen kabels?

Hopelijk ziet iemand hier het probleem, want heb er al enkele uren aan besteed. :)
Als een webpagina of andere uitleg mijn probleem zou kunnen oplossen, mag je deze ook gewoon linken!

Arco

Special Member

- bij éénmaal drukken data pin + daarna latch pin, branden alle LEDS
- bij éénmaal drukken data pin + daarna clock pin, gaan LED per klik verder aan

Ik begrijp dat niet erg: op eerste regel gaan alle leds aan, en op tweede regel gaan 'leds verder aan'. Hoe kan er meer als alles aan gaan?
Om de leds uit te krijgen kun je MR laag maken. (of clocken met de datapin laag)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

TS, hoe heb je de schakelaars aangesloten? Ene kant 5V en andere kant naar de shifter? Verder nog iets hiervoor?
Ik vermoedt dat je de pull-down weerstanden niet hebt.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

@Arco, ik beschreef 2 situaties. Dus nadat ik alle LED terug heb uitgeset kan ik door eenmaal datapin te drukken en daarna meerdere malen clock pin alle LEDs laten branden.

@fliflop zo zijn ze inderdaad aangsloten, erna is er nog wel een weerstand met LED om te zien of de knop wordt ingedrukt. Is dit wat je met de pull down bedoeld?

Als je de knop indrukt komt er 5V op de input vd 595 te staan. Dat is een '1' en da's goed. Als je de knop los laat is het ongedefinieerd wat er op de input staat. Het is een open ingang met een zwevend touwtje eraan. Dat is dus geen '0', maar je weet niet wat wel. Om ook in die situatie een gedefinieerd nivo te hebben, moet je aan de input een weerstand naar gnd hebben zitten. Iets van 10k of zo. Die trekt de spanning naar 0V als je de knop niet indrukt.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Datasheet die ik hier heb (CD74HC595 van TI) zegt dat de '595 in wezen uit 2 registers bestaat. Een schuifregister, en een latch die toestand v/h schuifregister op commando kopieert. Da's toch geen klein detail. En maakt het lastiger om te zien wat er met dat schuifregister gebeurt.

Als je dan met pushbuttons gaat werken, komen zaken als zwevende ingangen en contactdender om de hoek kijken.

Voor echte beginners zou ik in dit geval zeggen: volg het Arduino voorbeeld (exact), of pak een simpeler bouwsteen zoals een "quad D-type flip-flop" of iets dergelijks.

Precies zoals flipflop al zegt.
Door de drukknop in te drukken wordt de ingang hoog. Na loslaten van de drukknop heb je de weerstand en een led in serie die samen de lijn weer laag maken.

Maar helaas, die leds hebben een bepaalde spanning nodig dus de lijn wordt niet helemaal laag. Die blijft zweven zo rond 2.5 a 3.2 Volt bij blauwe leds, en dan is de lijn nog niet echt laag. Dan weet je ook niet wat er gebeurt.

Als je rode leds gebruikt dan heb je al meer kans dat het werkt, want die trekken de spanning verder naar beneden, zo rond 1.6 volt.
Dus om het goed te doen moet je een weerstand toevoegen bij elke druk-toets naar GND. Dat heet dan een pull-down weerstand omdat die de lijn naar beneden trekt. Dat mag wel een hoge weerstand zijn van bijvoorbeeld 10K tot 100K.

En dan krijg je waarschijnlijk last van contact dender. Dat kun je dan weer oplossen met een condensatortje parallel aan die weerstand.
Maar feitelijk is die condensator alleen belangrijk voor de klok ingang, want dan kun je tgv dender meerdere klokpulsen krijgen en dan schuif je meer posities dan je zou willen. Op de Data en de Latch pinnen heeft contact-dender geen nadelig effect.

Contact dender ontstaat als je een drukknopje indrukt. Op het moment van schakelen schuiven de contacten over elkaar heen. Dan kan het zomaar gebeuren dat je gedurende korte tijd meerdere schakel momenten krijgt met wel contact, geen contact, wel contact etc.

Op 10 juni 2019 19:37:20 schreef deKees:
...Na loslaten van de drukknop heb je de weerstand en een led in serie die samen de lijn weer laag maken.

Huh, zit er een led op de ingangen? Dat maak ik uit z'n verhaal niet op, maar zo goed heb ik de fotos ook niet bekeken.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Op 10 juni 2019 17:57:21 schreef flipflop:
Als je de knop indrukt komt er 5V op de input vd 595 te staan. Dat is een '1' en da's goed. Als je de knop los laat is het ongedefinieerd wat er op de input staat. Het is een open ingang met een zwevend touwtje eraan. Dat is dus geen '0', maar je weet niet wat wel. Om ook in die situatie een gedefinieerd nivo te hebben, moet je aan de input een weerstand naar gnd hebben zitten. Iets van 10k of zo. Die trekt de spanning naar 0V als je de knop niet indrukt.

Op 10 juni 2019 19:37:20 schreef deKees:
Precies zoals flipflop al zegt.
Door de drukknop in te drukken wordt de ingang hoog. Na loslaten van de drukknop heb je de weerstand en een led in serie die samen de lijn weer laag maken.

Maar helaas, die leds hebben een bepaalde spanning nodig dus de lijn wordt niet helemaal laag. Die blijft zweven zo rond 2.5 a 3.2 Volt bij blauwe leds, en dan is de lijn nog niet echt laag. Dan weet je ook niet wat er gebeurt.

Als je rode leds gebruikt dan heb je al meer kans dat het werkt, want die trekken de spanning verder naar beneden, zo rond 1.6 volt.
Dus om het goed te doen moet je een weerstand toevoegen bij elke druk-toets naar GND. Dat heet dan een pull-down weerstand omdat die de lijn naar beneden trekt. Dat mag wel een hoge weerstand zijn van bijvoorbeeld 10K tot 100K.

En dan krijg je waarschijnlijk last van contact dender. Dat kun je dan weer oplossen met een condensatortje parallel aan die weerstand.
Maar feitelijk is die condensator alleen belangrijk voor de klok ingang, want dan kun je tgv dender meerdere klokpulsen krijgen en dan schuif je meer posities dan je zou willen. Op de Data en de Latch pinnen heeft contact-dender geen nadelig effect.

Contact dender ontstaat als je een drukknopje indrukt. Op het moment van schakelen schuiven de contacten over elkaar heen. Dan kan het zomaar gebeuren dat je gedurende korte tijd meerdere schakel momenten krijgt met wel contact, geen contact, wel contact etc.

Hartelijk dank voor deze duidelijke en eenvoudige uitleg (Dit kan ik volgen :) )! Ik ga dus eens proberen met zo'n pull down weerstand.
De meeste voorbeelden gebruiken een arduino als input, ik vermoed dat er dit geval geen pull down weerstand moet worden gebruikt?
Ik rapporteer hier een van de dagen terug!

Op 10 juni 2019 20:06:06 schreef flipflop:
[...]
Huh, zit er een led op de ingangen? Dat maak ik uit z'n verhaal niet op, maar zo goed heb ik de fotos ook niet bekeken.

Ik had LEDs aangesloten op de ingang om zo te kunnen zien of de druk geregistreerd werd.

Op 10 juni 2019 22:08:41 schreef MaximPP
De meeste voorbeelden gebruiken een arduino als input, ik vermoed dat er dit geval geen pull down weerstand moet worden gebruikt?

/hoeft/! Er hoeft dan geen pulldown gebruikt te woden. Kan wel.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Een Arduino stuurt normaal actief naar '1' of naar '0' dus dan is die pull niet nodig. Het gaat erom dat er in beide gevallen iets is wat het nivo bepaald. Zweven mag niet. En iets aannemen trouwens ook niet, hehe.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Vanavond de feedback verwerkt en wonderbaar nu werkt het perfect!! :) Hartelijk dank voor de hulp!

In eerste instantie had ik de weerstand volgens paarse manier geinstalleerd, maar dan werkte het niet en lichtte alle LED op bij het drukken. Daarna via een rode manier en dan lukte het wel. Zou dit niet identiek moeten zijn? Of was dit 'lekkage' van het breadboard?

Edit: Weerstanden waren 2 vakjes lager gezet dan op foto.

Ik kan uit je foto geen schema herleiden. Er is bv niet te zien waar de voeding op staat. "Paarse manier" zegt mij ook niks. Misschien handiger om via schemas te communiceren. Dat kan iedereen hier lezen.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Soms zit de fout ook in de bedrading op het breadboard. Dus naast het schema een foto van de werkelijke opstelling is ook nuttig. Maar inderdaad, ik kon ook van deze foto even geen kaas maken.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Even een snelle tekening gemaakt. Is dit deel van het circuit voldoende?

Eerst was de pulldown weerstand volgens 1 geinstalleerd en werkte het circuit niet nauwkeurig.
Nadien volgens 2 en werkte alles prima. Maar dit zou toch gelijk moeten zijn.

Arco

Special Member

In situatie 1 zit de weerstand van boven nergens aan vast...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com