Buongiorno a tutti, ho un problema:
ho creato un codice per un dado digitale e ho utilizzato la funzione random(1,6) ma come risultato esce sempre 3.
A seguire metterò il codice e se qualcuno mi può aiutare grazie in anticipo.
#define LED_A 5
#define LED_B 6
#define LED_C 7
#define LED_D 8
#define LED_E 9
#define LED_F 10
#define LED_G 11
#define DP 12
int ran;
void setup ()
{
Serial.begin(9600);
//indiriziamo i led in uscita e il pulsante di start
pinMode(LED_A, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(LED_C, OUTPUT);
pinMode(LED_D, OUTPUT);
pinMode(LED_E, OUTPUT);
pinMode(LED_F, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(DP, OUTPUT);
}
void loop()
{
AZZERA(); //azzera
ran = random(1,6);
Serial.println(ran);
//specifichiamo i casi possibili (da 1 a 6)
switch(ran) {
case 1:
UNO();
break;
case 2:
DUE();
break;
case 3:
TRE();
break;
case 4:
QUATTRO();
break;
case 5:
CINQUE();
break;
case 6:
SEI();
break;
default:
break;
}
delay(100000000);
}
void UNO()
{
digitalWrite(LED_B, HIGH);
digitalWrite(LED_C, HIGH);
}
void DUE()
{
digitalWrite(LED_A, HIGH);
digitalWrite(LED_B, HIGH);
digitalWrite(LED_D, HIGH);
digitalWrite(LED_E, HIGH);
digitalWrite(LED_G, HIGH);
}
void TRE()
{
digitalWrite(LED_A, HIGH);
digitalWrite(LED_B, HIGH);
digitalWrite(LED_D, HIGH);
digitalWrite(LED_C, HIGH);
digitalWrite(LED_G, HIGH);
}
void QUATTRO()
{
digitalWrite(LED_B, HIGH);
digitalWrite(LED_C, HIGH);
digitalWrite(LED_F, HIGH);
digitalWrite(LED_G, HIGH);
}
void CINQUE()
{
digitalWrite(LED_A, HIGH);
digitalWrite(LED_C, HIGH);
digitalWrite(LED_D, HIGH);
digitalWrite(LED_F, HIGH);
digitalWrite(LED_G, HIGH);
}
void SEI()
{
digitalWrite(LED_A, HIGH);
digitalWrite(LED_C, HIGH);
digitalWrite(LED_D, HIGH);
digitalWrite(LED_E, HIGH);
digitalWrite(LED_F, HIGH);
digitalWrite(LED_G, HIGH);
}
void AZZERA()
{
// spegne tutti i led
digitalWrite(LED_A, LOW);
digitalWrite(LED_B, LOW);
digitalWrite(LED_C, LOW);
digitalWrite(LED_D, LOW);
digitalWrite(LED_E, LOW);
digitalWrite(LED_F, LOW);
digitalWrite(LED_G, LOW);
}