Ciao a tutti, ho realizzato un "cubo" in 2D in previsione della realizzazione di un cubo 5x5x5
I LED hanno l'anodo in comune per colonne e il catodo in comune per livelli.
I due anodi passando dalle rispettive resistenze vanno ai PIN 6e7 I due catodi passando da transistor BC337 NPN vanno a massa e ai PIN 2e3
So che si può programmare in modi diversi per ottenere lo stesso risultato.
Per fare un gioco di luci "a rotazione" ho scritto questo programma:
int LED1 = 7;
int LED2 = 6;
int LED3 = 5;
int LED4 = 4;
int TRA1 = 3;
int TRA2 = 2;
void setup (){
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
pinMode (LED3, OUTPUT);
pinMode (LED4, OUTPUT);
pinMode(TRA1, OUTPUT);
pinMode(TRA1, OUTPUT);
Serial.begin (9600);
}
void loop (){
Serial.println ();
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (150);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (150);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (150);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (150);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (150);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (150);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (150);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (150);
// PRIMA VELOCITÁ CICLO X2 (1200)
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (100);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (100);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (100);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (100);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (100);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (100);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (100);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (100);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (100);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (100);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (100);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (100);
// SECONDA VELOCITÁ CICLO X2,5 (1200)
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (50);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (50);
// TERZA VELOCITÁ CICLO X 6 (1200)
}
So per certo che potrei ovviare tutta la pappardella della ripetione del primo gioco mettendo una variabile e facendola arrivare a "0" ma non riesco... ho provato con "if"
int LED1 = 7;
int LED2 = 6;
int LED3 = 5;
int LED4 = 4;
int TRA1 = 3;
int TRA2 = 2;
void setup (){
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
pinMode (LED3, OUTPUT);
pinMode (LED4, OUTPUT);
pinMode(TRA1, OUTPUT);
pinMode(TRA1, OUTPUT);
Serial.begin (9600);
}
void loop (){
Serial.println ();
int repeat=3
if (repeat; repeat=repeat-1);
if (repeat<0);
digitalWrite (seconda velocità) ----//ovviamente questo è quello che vorrei scrivere ma non riesco a tradurlo in C++
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (150);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, HIGH);
digitalWrite (TRA1, LOW);
delay (150);
digitalWrite (LED1, LOW);
digitalWrite (LED2, HIGH);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (150);
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
digitalWrite (TRA2, LOW);
digitalWrite (TRA1, HIGH);
delay (150);
}
Consigli?