Buonasera a tutti, sono novizio...sto facendo delle prove con lo shiftregister usando la libreria di timodenk. Tenete conto che successivamente dovrò gestirci delle elettrovalvole, ora sto cercando di accendere una sequenza di led per prova e non ci riesco
Magari sarà una stupidaggine che sbaglio, tenete conto che non ho mai "trafficato" con componenti, questa è la prima volta.
Questo è il codice per accendere una serie di 4 led, accende primo lo spegne e accende secondo e così via.
Almeno nella mia idea, vi metto il video sotto di quello che succede;)
#include <ShiftRegister74HC595.h>
//int numberOfShiftRegisters = 1; // number of shift registers attached in series
//int serialDataPin = 0; // DS
//int clockPin = 1; // SHCP
//int latchPin = 2; // STCP
ShiftRegister74HC595<1> sr(0, 1, 2);
void setup() {
// put your setup code here, to run once:
}
void loop() {
for (int i = 0; i < 4; i++) {
sr.set(i, HIGH);//sr.setAllHigh();
delay(2000);
sr.set(i, LOW);
}
}
... considera sempre che i pin 0 ed 1, essendo i pin della porta Seriale, sono sempre e comunque connessi al convertitore Seriale <-> USB ... magari la cosa creava qualche problema ...
Era esattamente quello;) Sono veramente niubbo niubbo...
Se posso avrei un'altra domanda...
Nella sua wiki lui comanda e "accende" i pin partendo dallo 0. Io accendo il pin 0 solo tramite il comando sr.set(1,HIGH), li mi si accende il led connesso al primo pin dello shift (che lui indica come 0) e arrivo quindi ad accendere fino al 7. Se provo ad accendere tramite sr.set(0,HIGH), il primo led connesso al pin 0 non si accende.
Mi sono perso qualche cosa io (tipo aggiornamento della libreria e rispetto a quello che c'è scritto funziona in maniera diversa) o ho capito semplicemente male quello che c'è scritto ed è giusto che per chiamare il primo pin dello shift devo chiamare il numero 1?
Sempre che la libreria che usi sia questa, il commento sopra la funzione dice:
" // Set a specific pin to either HIGH (1) or LOW (0).
// The pin parameter is a positive, zero-based integer,
indicating which pin to set."
In sostanza regolati come per gli array in cui il primo elemento è zero.
@gpb01@Maurotec Si ho seguito la sua guida e collegato il tutto come dice lui.
Anche io avevo capito e continuo a capire che la chiamata del primo piedino corrisponda alla chiamata del pin 0, ma materialmente se chiamo il pin 0 non si accende il led, se chiamo il pin 1 si accende il led. Non saprei, però diciamo dall'1 al 7 li chiamo tutti e funzionano tutti correttamente....