Ciao a tutti ,
sto imparando ovviamente, quindi mi scuso per le banalità che scriverò.
Vorrei fare una lampada da notte con 9 led. tipo lato unico di un cubo e creare delle sequenze di accensione
a mio piacimento.
Quindi ho messo due shift register in cascata pensando di poter inviare byte personalizzati e provare ad accendere solo uno alla volta
quindi nello scenario ho 8 led sul primo shift e 1(led n9) led nel secondo.
Però ora il led n9 mi si accende insieme al led 1 del primo shift.
Quindi penso che metterli in cascata non sia la cosa giusta da fare!
Ho intuito due cose (in teoria) , un led lo piloto senza shift , quindi direttamente da arduino. Oppure metto i shift su arduino gestiti separatamente.
Ma si può lasciare in cascata 2 o più shift e pilotare tramite byte i led in modo indipendente?
Ho usato come esempio questo sketch tentando di modificarlo per non fare un assoluto copia e incolla senza capirci nulla . (quindi prima di creare cose folli , vorrei accendere un led alla volta senza cicli o sequenze)
Come faccio ad accendere solo il led 9?
//Connesso al Pin DS del 74HC595
int clock = 10;
//Connesso al Pin ST_CP del 74HC595
int latch = 9;
//Connesso al Pin SH_CP del 74HC595
int data = 8;
byte pattern[]=
{
B00000001,
B00000010,
B00000100,
B00001000,
B00010000,
B00100000,
B01000000,
B10000000,
B01000000,
B00100000,
B00010000,
B00001000,
B00000100,
B00000010
};
int index =0; //legge la riga del disegno
int count=sizeof(pattern); //grandezza dell'array
void setup()
{
pinMode(clock,OUTPUT);
pinMode(latch,OUTPUT);
pinMode(data,OUTPUT);
}
void loop()
{
digitalWrite(latch,LOW); //chiude il latch
shiftOut(data,clock,MSBFIRST,pattern[index]); //LSBFIRST MSBFIRST//scrive la sequenza
digitalWrite(latch,HIGH); //apre l'uscita
delay(500); //tempo di accenzione
//index++; //incrementa la lettua tolto per leggere solo la prima riga
if(index>=count) //azzera l'index
index=0;
}
grazie
P.s. altro quesito , perchè in vari esempi trovo le resistenze sull'anodo e in altri sul catodo ?