Go Down

Topic: multiplexing leds (Read 2 times) previous topic - next topic

leo72

Ma lo sketch lo hai scritto te oppure no?
Propendo per la seconda ipotesi, visto che dici di non capire "dato"...
Sono un po' contrario alle "pappe pronte" perché si risolvono i problemi senza capire il perché.

Comunque.... un byte è un elemento della memoria del computer capace di immagazzinare 8 bit. Ogni bit rappresenta un singolo elemento della memoria, una specie di "interruttore". Come ogni buon interruttore, il bit può assumere solo 2 stati: 0 o spento, e 1 o acceso. Uno shift register contiene un registro interno ad 8 bit, ognuno dei quali governa un pin esterno. Per mettere su HIGH un pin devi impostare il corrispondente bit a 1 (interruttore acceso) e viceversa per LOW.
Puoi spedire 1 singoli bit, che dovrai posizionare con tanti colpi di clock sul relativo pin finché non raggiunge la posizione voluta, e poi spedire lo stato del registro interno sui pin esterni mediante un segnale di latch, oppure usare la funzione shiftOut che spedisce 1 intero byte, bit per bit, dove ogni bit corrisponde allo stato dei pin.
Quindi se spedisci 00000001 metterai su HIGH solo il 1° pin, con 10101010 metterai su HIGH i pin pari ecc....

Subsea

ok, questo l'avevo capito. Non mi è chiaro come mai devo anteporre ai bit 0b...
p.s. Cos'è un segnale di latch :smiley-mr-green:

leo72


ok, questo l'avevo capito. Non mi è chiaro come mai devo anteporre ai bit 0b...

Indica al compilatore che il numero che segue deve essere trattato in forma binaria.


p.s. Cos'è un segnale di latch :smiley-mr-green:

"Latch" in inglese significa "paletto". In pratica è un segnale elettrico dato su un determinato pin che dice allo shift register di "spingere" (come si farebbe con un paletto che entra in una serratura) il valore dei bit del registro interno sui pin esterni. In questo modo l'1 diventa HIGH e lo 0 diventa LOW.


Ma lo sketch lo hai scritto te oppure no?

Subsea

#53
Dec 17, 2012, 10:37 pm Last Edit: Dec 17, 2012, 10:42 pm by SUBSEA Reason: 1
e come si fa ad usare questi segnali di latch? ci si può riuscire solo con la funzione Shiftout? Comunque grazie, non sapevo che 0b indicasse la forma binaria. Ci sono altri codici?
P.s. Lo sketch l'ho trovato su internet ma ci ho fatto amche qualcosa io. Non sei l'unico a cui non piace la "pappa pronta" :smiley-mr-green:

leo72

Ti rimetto il link che spiega come usare gli S/R:
http://www.arduino.cc/en/Tutorial/ShiftOut
Lì trovi come si usa il latch.

Go Up