led e pulsante

Salve a tutti! Sono da poco entrato a far parte del mondo Arduino! Ho cominciato a fare qualche piccolo esperimento ma mi sono bloccato su una cosa semplicissima. Ho realizzato un circuito nel quale spingendo un bottone si accende un led e se ne spegne un altro ed al rilascio avviene il contrario

Vi posto il codice: const int buttonPin = 2; const int led1Pin = 13; const int led2Pin = 12

int buttonState = 0;

void setup() {

pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT);

pinMode(buttonPin, INPUT); }

void loop(){

buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {

digitalWrite(led1Pin, HIGH); digitalWrite(led2Pin, LOW);

} else {

digitalWrite(led1Pin, LOW); digitalWrite(led2Pin, HIGH); } }

Per il led1 la cosa funziona ma per il led2 no. Qualcuno mi può aiutare???

Grazie

file:///C:/Documents%20and%20Settings/Loris/Desktop/primo.png

ciao Homer84 Il programma mi sembra a posto. Hai provato di invertire i 2 Pin 12 e 13 di arduino? Ciao Uwe

io farei piuttosto:

const int buttonPin = 2;
const int led1Pin =  13;
const int led2Pin =  12

int buttonState = 0;

void setup() {

 pinMode(led1Pin, OUTPUT);
 pinMode(led2Pin, OUTPUT);  

 pinMode(buttonPin, INPUT);    
}

void loop(){

 buttonState = digitalRead(buttonPin);

 while(buttonState == HIGH) {    

   digitalWrite(led1Pin, HIGH);
   digitalWrite(led2Pin, LOW);  
  buttonState = digitalRead(buttonPin);

 }
   
   digitalWrite(led1Pin, LOW);
   digitalWrite(led2Pin, HIGH);
}

Grazie per la tempestività...proverò subito!

anche a me il codice non mi sembra sbagliato...il secondo led è collegato giusto?

Ragazzi,succede una cosa stranissima! Ho seguito i vostri consigli ma il risultato è il medesimo. Ma ho scoperto un cosa...se tocco i pin con le dita di uno o dell'altro led allora funziona bene! Cosa potrebbe essere? Grazie di nuovo!

come hai collegato i led?

Federico,ti ho mandato una mail con il circuito disegnato! Cmq ho semplicemente messo una massa comune e l'altro terminale dei led l'ho collegati all'uscita 12 e 13 rispettivamente. Grazie

questa è l'immagine che mi hai mandato per email, ti ho fatto il favore di caricartela io, la prossima volta usa un sito di image hosting.

Il bottone collegalo così: http://arduino.cc/en/Tutorial/Button

collegato in questo modo il pin collegato al pulsante riceve 5V quando è premuto e 0V quando è rilasciato. Collegato come lo hai collegato tu invece, quando è rilasciato non ha nessun riferimento e non è detto che legga 0V.

Mentre per quanto riguarda i led sul pin 13 può andar bene così perchè c'è già la resistenza sulla scheda. Sul pin 12 invece non c'è e devi metterla tu, un valore che può andare bene è 1kOhm.

Visto che il comando è un pulsante, non sarebbe meglio utilizzare una routine di debounce? http://www.arduino.cc/en/Tutorial/Debounce :) giusto per evitare commutazioni indesiderate...

Grazieeeeeeeeeee,risolto! Siete stati tutti gentilissimi!

ciao brainbooster In questo caso il debounce non é necessario. I led farfalleranno un attimo ma visto che non fa comutare lo stato a ogni pressione del pulsante va bene. Ciao Uwe

mi pareva più istruttivo :) ::)

Sí hai ragione. :) :D 8-)