GINGARDU:
con questo puoi accendere spegnere 9 led
se vui pui accederli tutti e 19
basta che dichiari gli altri pin restanti ,
se metti uno si accende il led al pin uno se metti 101 si spegne
se metti 2 si accende il led al pin 2 se metti 102 si spegne,
pui specificare tu che numero mettere per accendere/spegnere il led che vuoi solo numeri da 1 a 99999999
long vet[9] = {
-2, -2, -2, -2, -2, -2, -2, -2, -2 };
long cont = 0;
long x = 0;
void setup()
{
Serial.begin(9600);
pinMode (0, OUTPUT);
pinMode (1, OUTPUT);
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (13, OUTPUT);
digitalWrite (1,LOW);
digitalWrite (2,LOW);
digitalWrite (3,LOW);
digitalWrite (4,LOW);
digitalWrite (5,LOW);
digitalWrite (6,LOW);
digitalWrite (7,LOW);
digitalWrite (8,LOW);
digitalWrite (9,LOW);
digitalWrite (13,LOW);
}
void loop()
{
while (Serial.available() > 0)
{
vet[cont] = Serial.read()-48;
cont++;
delay(60);
}
if (vet[0] < -2 || vet[1] < -2 || vet[2] < -2 || vet[3] < -2 || vet[4] < -2 || vet[5] < -2 || vet[6] < -2 || vet[7] < -2 || vet[8] < -2)
Serial.println(" ATTENZIONE DEVI INSERIRE SOLO NUMERI DA 1 A 999999999 ");
if (vet[0] > 9 || vet[1] > 9 || vet[2] > 9 || vet[3] > 9 || vet[4] > 9 || vet[5] > 9 || vet[6] > 9 || vet[7] > 9 || vet[8] > 9)
Serial.println(" ATTENZIONE DEVI INSERIRE SOLO NUMERI DA 1 A 999999999 ");
if(cont > 0)
{
cont = 0;
if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 && vet[3] == -2 && vet[2] == -2 && vet[1] == -2 )
{
x = vet[0];
}
else
if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 && vet[3] == -2 && vet[2] == -2 ) //
{
x = (vet[0]* 10 + vet[1] );
}
else
if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 && vet[3] == -2 ) //
{
x = (vet[0] * 100 + vet[1]* 10+ vet[2]);
}
else
if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 )
{
x = (vet[0] * 1000 + vet[1] * 100 + vet[2]* 10 + vet[3]);
}
else
if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 )
{
x = (vet[0] * 10000 + vet[1] * 1000 + vet[2]* 100 + vet[3]* 10 + vet[4]);
}
else
if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 )
{
x = (vet[0] * 100000 + vet[1] * 10000 + vet[2]* 1000 + vet[3]* 100 + vet[4]* 10 + vet[5]);
}
else
if (vet[8] == -2 && vet[7] == -2 )
{
x = (vet[0] * 1000000 + vet[1] * 100000 + vet[2]* 10000 + vet[3]* 1000 + vet[4]* 100 + vet[5]* 10+ vet[6]);
}
else
if (vet[8] == -2 )
{
x = (vet[0] * 10000000 + vet[1] * 1000000 + vet[2]* 100000 + vet[3]* 10000 + vet[4]* 1000 + vet[5]* 100 + vet[6]* 10+ vet[6]);
}
else
x = (vet[0] * 100000000 + vet[1] * 10000000 + vet[2]* 1000000 + vet[3]* 100000 + vet[4]* 10000 + vet[5]* 1000 + vet[6]* 100 + vet[7] * 10 + vet[8]);
if (vet[0] < -2 || vet[1] < -2 || vet[2] < -2 || vet[3] < -2 || vet[4] < -2 || vet[5] < -2 || vet[6] < -2 || vet[7] < -2 || vet[8] < -2 ) x = 0;
if (vet[0] > 9 || vet[1] > 9 || vet[2] > 9 || vet[3] > 9 || vet[4] > 9 || vet[5] > 9 || vet[6] > 9 || vet[7] > 9 || vet[8] > 9) x = 0;
if (x == -2 || x== -1) x=0;
Serial.println( vet[0]);
Serial.println( vet[1]);
Serial.println( vet[2]);
Serial.println( vet[3]);
Serial.println( vet[4]);
Serial.println( vet[5]);
Serial.println( vet[6]);
Serial.println( vet[7]);
Serial.println( vet[8]);
if (vet[0] >= -2 && vet[1] >= -2 && vet[2] >= -2 && vet[3] >= -2 && vet[4] >= -2 && vet[5] >= -2 && vet[6] >= -2 && vet[7] >= -2 && vet[8] >= -2 &&
vet[0] <= 9 && vet[1] <= 9 && vet[2] <= 9 && vet[3] <= 9 && vet[4] <= 9 && vet[5] <= 9 && vet[6] <= 9 && vet[7] <= 9 && vet[8] <= 9 )
Serial.println(" NUMERO INSERITO "), Serial.println(x);
if (x == 0) Serial.println(" REINSERISCI UN NUMERO DA 1 A 999999999 ") ;
vet[0] = -2;
vet[1] = -2;
vet[2] = -2;
vet[3] = -2;
vet[4] = -2;
vet[5] = -2;
vet[6] = -2;
vet[7] = -2;
vet[8] = -2;
}
if (x == 1) digitalWrite (1, HIGH);
if (x == 101) digitalWrite (1,LOW);
if (x == 2) digitalWrite (2, HIGH);
if (x == 102) digitalWrite (2,LOW);
if (x == 3) digitalWrite (3, HIGH);
if (x == 103) digitalWrite (3,LOW);
if (x == 4) digitalWrite (4, HIGH);
if (x == 104) digitalWrite (4,LOW);
if (x == 5) digitalWrite (5, HIGH);
if (x == 105) digitalWrite (5,LOW);
if (x == 6) digitalWrite (6, HIGH);
if (x == 106) digitalWrite (6,LOW);
if (x == 7) digitalWrite (7, HIGH);
if (x == 107) digitalWrite (7,LOW);
if (x == 8) digitalWrite (8, HIGH);
if (x == 108) digitalWrite (8,LOW);
if (x == 9) digitalWrite (9, HIGH);
if (x == 109) digitalWrite (9,LOW);
}
grazie ma ho risolto da solo, dovevo scrivere case '1' con '' e funziona ecco il codice corretto
int e=5;
int d=6;
int c=7;
int r=8;
int a;
int h=3;
void setup()
{
pinMode(e, OUTPUT);
pinMode(d, OUTPUT);
pinMode(c, OUTPUT);
pinMode(r, OUTPUT);
pinMode(h, OUTPUT);
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0) {
a = Serial.read();
switch(a){
case '1':
digitalWrite(e, HIGH);
break;
case '2':
digitalWrite(e, LOW);
break;
case '3':
digitalWrite(d, HIGH);
break;
case '4':
digitalWrite(d, LOW);
break;
case '5':
digitalWrite(c, HIGH);
break;
case '6':
digitalWrite(c, LOW);
break;
case '7':
digitalWrite(r, HIGH);
break;
case '8':
digitalWrite(r, LOW);
break;
default:
digitalWrite(h, LOW);
break;
}
}
}