salve a tutti ho acquistato la scheda arduino 2009 e vorrei accendere 7 led con 7 pulsanti differenti premendo per 2 secondi e rilasciando attivo un led e rimpremendo per 2 sec. si spenge come posso fare per fare il codice sono propio alle prime armi e sinceramente ancora non riesco a capire la programmazione ho fatto gia tutti i test basilari ma se vado a moltiplicare dei codici mi da errore mi potete dare una mano
grazie infinite a tutti
emanuele, usando il tasto a forma di cancelletto ( # ) ed inserendo il tuo codice all'interno, che ne dici di postarci il tuo codice e di commentarlo insieme?
I 7 LED e 7 pulsanti a quali pin li hai connessi?
nathanvi, grazie della risposta il codice lo trovado sempre su internet e lo provato e funziona ma adesso come dicevo nell'altro post vorrei aggiungere altri pulsanti da 0 a 6 volevo mettere i pulsanti e da 7 a 13 i led. il codice e questo,
e questo mi da solo la possibilita' di 1 pulsante e 1 led e non riesco ad andare avanti ed aggiungere altri comandi
int led_pin = 8;
int btn_pin = 2;
int stato = LOW;
void setup() {
pinMode(led_pin, OUTPUT);
pinMode(btn_pin, INPUT);
}
void loop()
{
int in = digitalRead(btn_pin);
if (in == HIGH)
{
if (stato == LOW)
{
stato = HIGH;
}
else
{
stato = LOW;
}
}
digitalWrite(led_pin, stato);
}
grazie ancora
Puoi facilmente "aumentare" il codice aggiungendo dei numeri alle variabili.
Segue esempio con due pulsanti/led.
Da li a 7 dovrebbe essere semplice:
int led1_pin = 8;
int btn1_pin = 2;
int stato1 = LOW;
int led2_pin = 9;
int btn2_pin = 3;
int stato2=LOW;
void setup() {
pinMode(led1_pin, OUTPUT);
pinMode(btn1_pin, INPUT);
pinMode(led2_pin, OUTPUT);
pinMode(btn2_pin, INPUT);
}
void loop()
{
int in1 = digitalRead(btn1_pin);
int in2 = digitalRead(btn2_pin);
if (in1 == HIGH){
stato1=!stato1;
digitalWrite(led1_pin, stato1);
}
if (in2 == HIGH){
stato2=!stato2;
digitalWrite(led2_pin, stato2);
}
delay(2000);
}
Da provare.
Spero non dia errori ma la strada dovrebbe essere questa.
GRAZIE mille, ho provato cosi ma mi accende due insiemeqmc e un passo avanti
int led1_pin = 8;
int btn1_pin = 2;
int stato1 = LOW;
int led2_pin = 9;
int btn2_pin = 3;
int stato2=LOW;
int led3_pin = 10;
int btn3_pin = 4;
int stato3=LOW;
void setup() {
pinMode(led1_pin, OUTPUT);
pinMode(btn1_pin, INPUT);
pinMode(led2_pin, OUTPUT);
pinMode(btn2_pin, INPUT);
pinMode(led3_pin, OUTPUT);
pinMode(btn3_pin, INPUT);
}
void loop()
{
int in1 = digitalRead(btn1_pin);
int in2 = digitalRead(btn2_pin);
int in3 = digitalRead(btn3_pin);
if (in1 == HIGH){
stato1=!stato1;
digitalWrite(led1_pin, stato1);
}
if (in2 == HIGH){
stato2=!stato2;
digitalWrite(led2_pin, stato2);
}
if (in3 == HIGH){
stato3=!stato3;
digitalWrite(led3_pin, stato3);
}
delay(2000);
}
Ma il pulsante che premi è soltanto uno vero?
E... hai messo le resistenze in parallelo sul pulsante? E' importante.
Il codice, l'ho ricontrollato e mi sembra corretto.
Se schiacci un pulsante per volta dovrebbe fare una azione per volta...
si scusami funziona perfettamente e stata una mia svista non avevo messo la resistenza e va benissimo grazie ancora per il tempo che mi hai deticato