Driva LEDs med 74HC595 shift register

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
tobiasger
Inlägg: 26
Blev medlem: 1 augusti 2019, 20:51:25

Re: Driva LEDs med 74HC595 shift register

Inlägg av tobiasger »

Har nu testat att vända LEDsen med 1K motstånd till +5V, men är samma beteende på LEDsen. Har nu vänt tillbaka som det var innan då jag inte upplevde någon skillnad. Som nämnt tidigare så är det inte natt och dag mellan en tänd LED och åtta tända, syns knappt när jag testar att filma. Tror inte man hade tänkt på det om man successivt tända eller släckte en LED åt gången, men går man snabbt mellan en och åtta tända så syns det.

Testade även att inte använda något bibliotek för att interagera med shift registret (använder något som heter Shifty (https://github.com/johnnyb/Shifty)) och istället göra det med shiftOut() såhär:

Kod: Markera allt

void loop()
{
  digitalWrite(LatchPin, LOW);
  shiftOut(DataPin, ClockPin, MSBFIRST, 1);
  digitalWrite(LatchPin, HIGH);
  delay(500);
  digitalWrite(LatchPin, LOW);
  shiftOut(DataPin, ClockPin, MSBFIRST, 0xFF);
  digitalWrite(LatchPin, HIGH);
  delay(500);
}
Tänkte om det var något med biblioteket som jag hade missförstått, att det skickades flera bits på samma gång eller något annat sjukt, men jag får samma beteende även med denna metod, så verkar inte vara något med koden.

Testade även för skojs skull att ha ännu mer resistans och kopplade 220R i serie med 1K. Lägre ljusstyrka såklart, men upplever fortfarande samma skillnad mellan alla tända och en tänd. Kanske blir till att testa 2N7000 eller BC547 då.
Mindmapper
Inlägg: 6466
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Re: Driva LEDs med 74HC595 shift register

Inlägg av Mindmapper »

Är det en bestående minskning? Eller suckar det bara till en kort stund när du går från en till åtta tända.
Är det en kortare minskning av intensitet kan det vara matningsspänningen som suckar. Då kan det enkelt avhjälpas med en ellyt kondensator mellan + och - i närheten av IC-kretsen. 10 till 100 uF kan du prova med.

Det är ett grovt handikapp att du inte mäter matningsspänningarna och spänning på utgångarna.
tobiasger
Inlägg: 26
Blev medlem: 1 augusti 2019, 20:51:25

Re: Driva LEDs med 74HC595 shift register

Inlägg av tobiasger »

Mindmapper skrev: 7 maj 2024, 22:55:48 Är det en bestående minskning? Eller suckar det bara till en kort stund när du går från en till åtta tända.
Det är bestående och väldigt omedelbar.
Mindmapper skrev: 7 maj 2024, 22:55:48 Det är ett grovt handikapp att du inte mäter matningsspänningarna och spänning på utgångarna.
Haha, yes jag förstår det. Jag har en multimeter, vilka punkter ska jag mäta mellan och i vilket läge?

Har beställt böcker om grunderna så hoppas kunna vara mindre hopplös här när jag börjat förstå mer. Nu är det mycket så att jag känner att jag har rätt bra koll på programmeringen och har en klar vision för vad jag vill göra, men att själva elläran är väldigt haltande. Men superinspirerande och kul att testa sig fram och lära sig med er hjälp, så uppskattar verkligen ert tålamod!
Användarvisningsbild
pi314
Inlägg: 5987
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: Driva LEDs med 74HC595 shift register

Inlägg av pi314 »

Dessa punkter skulle jag mäta mellan.

Över en LED + motsvarande R, dels när bara den är tänd och dels när alla är tända.

Om du inte kan mäta någon skillnad så är det en diagnos.

Om du ser skillad så är nästa steg att mäta hur mycket det skiljar ut från IC-kretsen. Mät mellan IC-kretsens jord och en utgång.
Om du ser en skillnad där kan den ha tre orsaker.
1. IC-kretsen.
2. Dålig jord fram till IC-kretsen.
3. Dålig 5-volt fram till IC-kretsen.

Mät mellan strömförsörjnngens jord och IC-kretsens jord med dels ingen LED tänd och dels alla LEDar tända. Det ska inte vara någon spänning alls där. Möjilgen någon millivolt. Både med släckta och med tända LEDar.

Mät mellan strömförsörjnngens 5-volt och IC-kretsens 5-volt med dels ingen LED tänd och dels alla LEDar tända. Det ska inte vara någån spänning alls där heller. Möjilgen någon millivolt. Både med släckta och med tända LEDar.

Jag vet inte hur mycket skillnad i ström genom en LED det måste vara för att du ska kunna se ljusskilladen, men jag gissar att enstaka procent är svåra att se. Att en skillnad som du kan se orsakas av en ganska stor skillnad i ström.

Väg in Webers lag.
https://en.wikipedia.org/wiki/Weber–Fechner_law

Som i korthet säger att om du kan se en skillnad så är det en ganska stor skillnad.
Såvida inte den upplevda skillnaden beror på något som händer i dig när du tittar på flera lysdioder samtidigt.
Risken för att det är så kan du utesluta genom att göra så att du bara kan se en LED.

Mindmapper
Inlägg: 6466
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Re: Driva LEDs med 74HC595 shift register

Inlägg av Mindmapper »

tobiasger skrev: 7 maj 2024, 23:18:55
Mindmapper skrev: 7 maj 2024, 22:55:48 Är det en bestående minskning? Eller suckar det bara till en kort stund när du går från en till åtta tända.
Det är bestående och väldigt omedelbar.
Mindmapper skrev: 7 maj 2024, 22:55:48 Det är ett grovt handikapp att du inte mäter matningsspänningarna och spänning på utgångarna.
Haha, yes jag förstår det. Jag har en multimeter, vilka punkter ska jag mäta mellan och i vilket läge?

Har beställt böcker om grunderna så hoppas kunna vara mindre hopplös här när jag börjat förstå mer. Nu är det mycket så att jag känner att jag har rätt bra koll på programmeringen och har en klar vision för vad jag vill göra, men att själva elläran är väldigt haltande. Men superinspirerande och kul att testa sig fram och lära sig med er hjälp, så uppskattar verkligen ert tålamod!
Pi har gett bra beskrivning på vad du ska mäta. Mät spänningen i DC-läge.
Tänk på att inte kortssluta några pinnar på IC-kretsen. Halkar du där räcker det bara kortslutning en millisekund så kan du vara utan IC-krets. Mät i närheten av IC-kretsen i stället för på IC-kretsen så har du mindre chans att kortsluta.
tobiasger
Inlägg: 26
Blev medlem: 1 augusti 2019, 20:51:25

Re: Driva LEDs med 74HC595 shift register

Inlägg av tobiasger »

pi314 skrev: 8 maj 2024, 06:44:03 Dessa punkter skulle jag mäta mellan.

Över en LED + motsvarande R, dels när bara den är tänd och dels när alla är tända.
Är det mellan dessa punkter? Den gula sladden går direkt från QG på shift registret. Såg att det tidigare frågades kring exakt vilken modell det är. Det är SN74HC595N från Texas Instruments.
Och ignorera IDC-flatkabeln som ligger där, den är superlimmad till breadboarden eftersom jag tidigare använde det för att labba med modulärsynt-projekt, men den är inte kopplad till något i denna krets. Däremot skymtar man några gamla kondensatorer där i bakgrunden som hör till en annan del av projektet, nämligen en encoder och två taktila switchar. Skulle dessa kunna påverka varför V droppar i shift registret på något sätt? Kan dela kopplingsschema för den delen av kretsen om det är relevant.
Bild

Mätte under tiden mellan GND på IC och första utgången (QA). Tände sedan från 1-8 LEDs och kollade V mellan samma två punkter och fick följande:

1 led = 5.012V
2 led = 4,987V
3 led = 4,965V
4 led = 4,941V
5 led = 4,918V
6 led = 4,897V
7 led = 4,875V
8 led = 4,855V

Så spänningen verkar sjunka med 0,025-ish V för varje LED som tänds.
tobiasger
Inlägg: 26
Blev medlem: 1 augusti 2019, 20:51:25

Re: Driva LEDs med 74HC595 shift register

Inlägg av tobiasger »

pi314 skrev: 8 maj 2024, 06:44:03 Mät mellan strömförsörjnngens jord och IC-kretsens jord med dels ingen LED tänd och dels alla LEDar tända. Det ska inte vara någon spänning alls där. Möjilgen någon millivolt. Både med släckta och med tända LEDar.
Här får jag:

8 LED = -0V
0 LED = 0V
pi314 skrev: 8 maj 2024, 06:44:03 Mät mellan strömförsörjnngens 5-volt och IC-kretsens 5-volt med dels ingen LED tänd och dels alla LEDar tända. Det ska inte vara någån spänning alls där heller. Möjilgen någon millivolt. Både med släckta och med tända LEDar.
Här får jag:

8 LED = 0.012V
0 LED = 0V
Användarvisningsbild
pi314
Inlägg: 5987
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: Driva LEDs med 74HC595 shift register

Inlägg av pi314 »

Jag ser inte vilka motstånd du har, om det är dom på bilden du har när du mäter.

Jag har inte testat det du gör, men det överraskade mig lite att du tydligt ser så pass små skillnader i spänning, dvs ström, genom lysdioderna.

5,012 volt till 4,855 volt är tydligen med god marginal en skillnad som du ser. När det går från en tänd till åtta tända lysdioder.
Det är en spänningsskillnad på 0,157 volt, ca 3%. Lite mer i ström, kanske 5%, eftersom spänningsfallet över lysdioderna är nära konstant. Huvuvdelen av skillnaden är över motståndet.

Om du inte vill se skillnaden i intensitet så behöver du, som föreslagits tidigare, en separat drivkrets till lysdioderna. Emitterföljare hjälper inte, eftersom spänningsskillnaden följer med från bas till emitter.
Däremot ULN2003 eller liknande eller t.o.m. någon OC (open collector) inverterare, t.ex. 7405 eller något nyare, borde lösa problemet. Du behöver två eftersom det bara är sex drivare i varje.
Åtta transistorer och åtta motstånd fungerar också, men det är väl enklare med två DIL-kapslar?

OC-kretsarna driver mot jord. Då är du tillbaka till det jag rekommenderar, dvs. moståndet till +5 volt och lysdiodens katod mot utgången på kretsen. :)

Elektrokit har ULN2003A DIP-16. SN7405 såg dagens ljus första gången under mitten av 1960-talet, så den är väl lite histrorisk idag? Det är ju ändå snart 60 år sedan... :) Mouser och Digikey Norge verkar ha SN7405N.

Någonstans har jag sett att man inte ska ta mer än 4 mA från en 74HC-utgång. Det kan kanske vara förklaringen till varför du behöver en drivkrets om du ska driva lysdioder (med mer än 3 mA)?



Edit: ULN2803 eller någon annan ULN280x är ett bättre alternativ än t.ex. ULN2003 eftersom 280x har åtta drivare i en 18-pinnars DIL-kapsel.
Senast redigerad av pi314 8 maj 2024, 19:34:45, redigerad totalt 2 gånger.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4699
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Driva LEDs med 74HC595 shift register

Inlägg av Swech »

Byt diod till en med mer drag i, alltså mer ljus per mA.

Swech
Skriv svar