Ciao a tutti,
essendo in procinto di utilizzare Arduino a livello hobbystico, un amico mi ha indicato questo forum e mi sono registrato da poco perchè ho già un problema
con uno sketch che semplicemente mette in relazione led e pulsanti.
In pratica, ho Arduino Uno che alimento con un alimentatore esterno a 5V , da cui ho prelevato i 5V e la massa, messi rispettivamente su Vin e uno dei due Gnd della sezione Power, quindi sono passato al collegamento di 5 led L0, L1, L2, L3, L4 con rispettive resistenze, connessi ai pin digitali da D2 a D6 (ho tralasciato D0 e D1 perchè ho letto che a volte ci possono essere conflitti vari ecc...) e quindi ho collegato i 5 pulsanti P0, P1, P2, P3, P4 agli ingressi analogici da A0 ad A4. Allego immagine dello schema che ho seguito.
Bene, se premo P0 o P4, i leds L0 e L4 si accendono correttamente ma non capisco perchè premendo
P2 raramente si accende L2, infatti quasi sempre e in modo random si accendono L1 o L3, poi...se tengo premuto P2 succede che L1, L2 ed L3 sono intermittenti, se tengo premuto P1 sono intermittenti L1 e L2 e se tengo premuto P3 sono intermittenti L2 ed L3. Io penso che lo sketch che ho messo su, non sia adeguato allo scopo infatti ho controllato più volte i collegamenti di resistenze, led e pulsanti e non mi sembra che ci siano delle stranezze. Allego il codice e lo schema :
int pulsante[] = {A0,A1,A2,A3,A4};
int leds[] = {2,3,4,5,6};
void setup()
{
for (int i=0; i<5; i++)
{
pinMode(pulsante[i],INPUT); // definisce input e output
pinMode(leds[i],OUTPUT);
}
for (int i=0; i<5; i++) digitalWrite(leds[i],LOW); // spegne tutti i Led
}
void loop()
{
for (int i=0; i<5; i++) // check quale pulsante viene premuto
{
if (digitalRead(pulsante[i])==HIGH)
{
for (int i=0; i<5; i++) digitalWrite(leds[i],LOW); // spegni tutti i led
digitalWrite(leds[i],HIGH); // accendi il led corrispondente al pulsante premuto
delay(50); // anti rimbalzo
}
}
}
Ciao ciao

