Sono sempre io che vi scoccio con una delle mie domande sempre stupide XD
Volevo provare ad accendere un led con un pulsante, una cosa banale direste voi, .... ma mi sn reso conto che nn so quale resistenza ci voglia e soprattutto su quale pin mettere gnd su quale 5v e su quale leggo il valore digitale... Grazie
Cominciamo col dire che gli input sono normalmente tutti tri-state, parola magica che significa che in assenza di segnale non assumono un livello logico HIGH o LOW, ma, appunto, indeterminato.
In queste condizioni, devono per forza essere polarizzati mediante un resistore: di pull up se connesso ai +5V oppure di pull down se connesso a ground. Il valore di tale resistore è in genere piuttosto alto dai 10k in sù.
Fortunatamente all'interno del micro sono presenti per ogni linea di ingresso dei resistori di pull up da 20k che possono essere attivati mediante l'istruzione (da inserire nel setup) pinMode(Pin, INPUT_PULLUP): con questa istruzione non solo si dichiara il pin come ingresso, ma ad esso viene "collegato" il resistore di pull up da 20k.
A questo punto all'ingresso si può collegare un pulsante collegato verso ground: quando aperto lo stato del pin sarà HIGH (grazie al resistore), mentre quando chiuso sarà LOW (pulsante premuto).
Ci sono poi altre importanti questioni da tener presenti come ad esempio il "rimbalzo" del contatto del pulsante che richiede un circuito di "debouncing" (anti rimbalzo): ti consiglio di studiare la questione con l'esempio sull'IDE.
Ettore Massimo Albani
non pensavo che usare un pulsante fosse così difficile xD, cmq grazie mille mi sei stato di molto aiuto ma posso chiederti un ulteriore favore?
In web ho trovato 100 diverse immagini di un possibile circuito XD mi potresti postare l'immagine giusta? xD
Grazie
Anche il sito di Arduino ha degli esempi:
Oppure uno completo di spiegazioni e ben fatto è su Adafruit:
http://www.ladyada.net/learn/arduino/lesson5.html
leo72:
Anche il sito di Arduino ha degli esempi:
http://arduino.cc/en/Tutorial/Button
Questo esempio, a differenza della spiegazione di cyberhs, usa una pull-down esterna. Lui invece la pull-up interna di Arduino.
In base alla logica di programmazione, pulsante chiuso e segnale HIGH o LOW, si sceglie o l'una o l'altra soluzione.