Re: Driva LEDs med 74HC595 shift register
Postat: 7 maj 2024, 22:30:51
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:
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å.
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);
}
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å.