Shift register problém
Napsal: 10 srp 2017, 23:56
Hraji si s shift registerem 74HC595 a nerozumím úplně jeho chování. Ukázka:
Pin16 mám data, Pin1 mám clock, Pin2 mám latch. Na všech osm výstupů mám připojené diody. Pokračujeme v tomtéž kódu ...
... tímto si vynuluji všech osm pozic. Ani jedna dioda nesvítí. Pípnutím mám pro snazší ladění kódu.
... tímto si rozsvítím první diodu, pak šest pozic nic (šestkrát tikne clock s Pin16 na nule), pak si rozsvítím osmou diodu a aktivuji latch. Svítí to, jak má. Ale ...
Teď mi teoreticky má zůstat svítit jen první dioda, protože předtím po obsazení osmé pozice jsem dal latch a potom tiknul clock (Pin1) jen jednou, takže jednička se měla zapsat jen na první pozici.
Jenže mi svítí první a druhá dioda! A buď už večer špatně vidím, nebo ta druhá svítí malinkato slaběji.
Kde je chyba? Díky za tipy!
Kód: Vybrat vše
pins.digitalWritePin(DigitalPin.P16, 0)
pins.digitalWritePin(DigitalPin.P1, 0)
pins.digitalWritePin(DigitalPin.P2, 0)
Kód: Vybrat vše
pins.digitalWritePin(DigitalPin.P16, 0)
for (let index2 = 0; index2 <= 7; index2++) {
pins.digitalWritePin(DigitalPin.P1, 1)
pins.digitalWritePin(DigitalPin.P1, 0)
}
pins.digitalWritePin(DigitalPin.P2, 1)
pins.digitalWritePin(DigitalPin.P2, 0)
music.playTone(262, music.beat(BeatFraction.Whole))
basic.pause(500)
Kód: Vybrat vše
pins.digitalWritePin(DigitalPin.P16, 1)
pins.digitalWritePin(DigitalPin.P1, 1)
pins.digitalWritePin(DigitalPin.P1, 0)
pins.digitalWritePin(DigitalPin.P16, 0)
for (let index = 0; index <= 5; index++) {
pins.digitalWritePin(DigitalPin.P1, 1)
pins.digitalWritePin(DigitalPin.P1, 0)
}
pins.digitalWritePin(DigitalPin.P16, 1)
pins.digitalWritePin(DigitalPin.P1, 1)
pins.digitalWritePin(DigitalPin.P1, 0)
pins.digitalWritePin(DigitalPin.P2, 1)
pins.digitalWritePin(DigitalPin.P2, 0)
music.playTone(262, music.beat(BeatFraction.Whole))
basic.pause(500)
Kód: Vybrat vše
pins.digitalWritePin(DigitalPin.P16, 1)
pins.digitalWritePin(DigitalPin.P1, 1)
pins.digitalWritePin(DigitalPin.P1, 0)
pins.digitalWritePin(DigitalPin.P2, 1)
pins.digitalWritePin(DigitalPin.P2, 0)
Jenže mi svítí první a druhá dioda! A buď už večer špatně vidím, nebo ta druhá svítí malinkato slaběji.
Kde je chyba? Díky za tipy!