Salve, come inizio ho cercato qualche esempio in rete ho trovato "come accendere un led con pulsante" posto qui il codice:
int pinLed=2;
int bottone=5;
int statoLed=LOW;
void setup() {
pinMode(pinLed, OUTPUT);
pinMode(bottone, INPUT);
}
void loop() {
int leggiBottone=digitalRead(bottone);
if (leggiBottone == 1)
{
if (statoLed == LOW)
{
statoLed=HIGH;
digitalWrite(pinLed, statoLed);
delay(1000);
} else {
statoLed=LOW;
digitalWrite(pinLed, statoLed);
delay(1000);
}
}
}
il progetto e' realizzato e provato su Arduino Uno io possiedo Arduino Nano non so che versione non c'e' stampato, il problema sta che il led non si accende alla pressione del tasto, se riavvio Arduino Nano scollegandolo e ricollegandolo dalla usb può' rimanere sempre acceso o sempre spento, insomma non ne vuole sapere del pulsante (tramite tester ho controllato il pulsante ed e' funzionante).
il collegamento e' corretto, pin digitale D2 diodo led con negativo a massa, pin digitale D5 pulsante collegato come pull-up....
se aggiungo la siringa per poter utilizzare il monitor seriale :
alla pressione del pulsante trovo sempre il valore " 1 " o quando e' spendo sempre " 0 " ma non cambia alla pressione del pulsante.
e' possibile avere una spiegazione del problema??
ho provato a far lampeggiare il led senza utilizzo del pulsante e funziona regolarmente...
di seguito elenco la mia configurazione:
Scheda: Arduino Nano
Processore: ATmega328
Porta: COM10
Programmatore: AVRISP mkII
Driver intallato CH340
Sistema : Windows Seven Professional
gerrym30:
[...]
alla pressione del pulsante trovo sempre il valore " 1 " o quando e' spendo sempre " 0 " ma non cambia alla pressione del pulsante.
[...]
Non capisco questa frase... cambia o non cambia? Quando è che trovi 1 e quando è che trovi 0?
non cambia alla pressione del pulsante.... quando collego Arduino Nano alla presa usb il led puo' essere sempre spento o sempre acceso indifferentemente dalla pressione del pulsante, e nel Monitor seriale quando il led e' acceso (sempre) ho valore " 1 " mentre " 0 " quando e' sempre spento...
Se codice e collegamenti sono uguali sia con arduino uno che con arduino nano non ci dovrebbero essere problemi... potrebbe essere la scheda difettata.
>gerrym30: metti lo schema ESATTO dei TUOI collegamenti (... anche un semplice disegno a penna) ...
... vogli capire esattamente come sono collegati bottone e LED ... :
Hai praticamente violato le più basilari regole ... ed Uwe ci ha visto bene ... due su due ...
I pin in ingresso degli Atmega sono ad alta impedenza e NON vanno MAI lascati flottanti, ma va SEMPRE imposta una condizione logica stabile e fissa, tramite una resistenza di pull-up o di pull-down.
Nel tuo caso, visto che il bottone chiude a +5V, DEVI mettere una resistenza di pull-down (verso GND) connessa all'ingresso D5, così da tenerlo normalmente LOW e lascialo andare HIGH solo quando premi il pulsante.
Un LED NON va MAI collegato direttamente come hai fatto tu hai pin di uscita, ma occorre SEMPRE una resistenza che limiti la corrente che scorre in esso ...
... ti rammento che ogni pin di Arduino può dare al massimo, a Vcc, 40 mA (... ma quello è veramente un limite, nel normale funzionamento occorre stare al 60-70% di detto valore) ed inoltre la somma di tutti i pin e dell'assorbimento del chip, non deve superare al massimo i 200 mA (... e anche qui massimo va considerato come valore limite, ma nel normale funzionamento occorre stare al 60-70% di detto valore). Assorbimenti oltre detti limiti possono danneggiare irrimediabilmente il chip.