Salve a tutti da nuovo possessore di Arduino uno R2 vi chiedo se è normale che caricando l'esempio button e inserendo un led sul pin out indicato nel programma, e non inserendo il tasto, quando avvicino la mano il led si accende (alla distanza di 10 cm anche 15cm senza ovviamente toccare ne il led ne la scheda)?
sembra magia non vorrei che fosse guasta, grazie mille a tutti per l'aiuto
Non è magia.
E' causato dal fatto che dichiarando un pin come input e non collegandoci nulla, questo resta agli occhi del micro in uno stato indefinito, né LOW né HIGH, per cui minime fluttuazioni della tensione letta possono dare queste letture. Una mano che si avvicina può creare queste oscillazioni nel campo intorno all'Arduino. Più evidente è se tocchi ad esempio sotto all'Arduino il pin direttamente: farai tu da interruttore ![]()
Ecco perché si usa sempre una resistenza di pull-up o di pull-down per dare uno stato ben definito al pin.
Grazie per la risposta eccellente, ma quando il tasto è aperto la resistenza che è in serie al tasto che effetti ha? ma se viene messa su gnd è di pull down? e su vcc è di pull up ? che differenze ci sono scusa per le tante domande ![]()
Si scrive pull ![]()
A parte gli scherzi, si usa una resistenza alta, il valore normalmente usato è 10K, per dare uno stato definito al pulsante.
A cosa devi attaccarla (+5 o GND) dipende ovviamente dallo stato che vuoi leggere.
Se devi leggere col pulsantino lo stato HIGH, la resistenza ti serve di pull-down e la colleghi a GND, se devi leggere alla pressione del pulsante lo stato LOW, la resistenza ti serve di pull-up e la colleghi a +5V. In entrambi i casi serve a dare un valore di lettura ben definito per lo stato a riposo del pulsantino così che la pressione dello stesso sia letta senza errori.
hehehe grazie!
appena arrivo a casa provo grazie sei stato molto paziente XD
Non inserire LED senza resistenza. Metti sempre una resistenza in serie. Valore da 330 a 1kOhm va bene.
Ciao Uwe