Go Down

Topic: Problema con button (Read 744 times) previous topic - next topic

Subsea

Ciao a tutti. ho da poco ricevuto il mio arduino uno, ed ho subito provato ad caricarci sopra uqalche esempio. quando sono arrivato all'esempio "Button", è successo qualcosa di molto strano: il led si accende quando mi avvicino al'arduino, e non risente per niente dell'input ricevuto dal pulsantino. Cosa devo fare? Farmelo sostituire?

ratto93

Hai collegato correttamente bottone e resistenza all'arduino ?
Se corri veloce come un fulmine, ti schianterai come un tuono.

Subsea

#2
Aug 30, 2011, 03:26 pm Last Edit: Aug 30, 2011, 03:31 pm by SUBSEA Reason: 1
Perchè ci voleva anche la resistenza? :smiley-red: :smiley-red: :smiley-red:

ratto93

Si da 10Kohm :)
guarda qui.....
http://arduino.cc/en/Tutorial/Button

;)
Se corri veloce come un fulmine, ti schianterai come un tuono.

Subsea

e se non ce la ho messa cosa succede?

Subsea


lesto

si, corri il rischio, anche se in pratica l'arduino può reggere per breve tempo anche cacchiate peggiori (parlo per esperienza :smiley-mr-green:).
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72

Intanto pubblica lo schema di come hai collegato il pulsantino e del codice che hai usato.
Fatto questo, la resistenza da 10K non serve a proteggere dalla fusione l'Arduino o il pulsantino ma a dare uno stato preciso (HIGH o LOW, a seconda) al pulsantino non premuto perché altrimenti l'Arduino legge anche le minime fluttuazioni elettromagnetiche indotte da corpi (compresi quello umano...  :smiley-eek: ) nelle vicinanze.  XD

Subsea

#8
Aug 30, 2011, 03:51 pm Last Edit: Aug 30, 2011, 03:55 pm by SUBSEA Reason: 1
è vero, LEO 72, è proprio quello che mi era successo!!! Appena avvicinavo la mano  si accendeva il led. Quindi non si è fuso? Anche se all'inizio avevo messo il più nel pin 2al posto del meno???

leo72

Se si parla di 5V non è successo nulla. I pin di Arduino sono strutturati per accettare in ingresso fino a 6V.
Cmq... segui lo schema del link che ti hanno postato. Quella è una configurazione con resistenza di PULL-DOWN. La pressione dà un segnale HIGH mentre quando il pulsantino è libero avrai un LOW fisso e stabile.

BrainBooster

a pulsante aperto l'entrata resta fluttuate senza resistenza di pull e il software legge quello che c'è :)

leo72


a pulsante aperto l'entrata resta fluttuate senza resistenza di pull e il software legge quello che c'è :)


E io che ho detto?  XD
Quote
la resistenza da 10K non serve (...) a dare uno stato preciso (HIGH o LOW, a seconda) al pulsantino non premuto perché altrimenti l'Arduino legge anche le minime fluttuazioni elettromagnetiche

Subsea

Grazie mille a tutti! Ho risolto il problema con la resistenza. Ora rimane però il dilemma più grande: Come imparare la programmazione di arduino?  :smiley-mr-green: XD avete qualche link, guide o toutorial per un neofita molto interessato?
p.s. se per voi è meglio aprire un nuovo topic scrivetelo, non esiterò a farlo.
Grazie

leo72

Consiglio n° 1: leggiti tutto il Reference sul sito principale di Arduino.
Consiglio n° 2: fatto questo, guarda gli esempi disponibili con l'IDE
Consiglio n° 3: inzia a scrivere.  XD Nulla insegna meglio della pratica  ;)

uwefed

#14
Aug 31, 2011, 12:29 am Last Edit: Aug 31, 2011, 09:59 am by uwefed Reason: 1
Per imparare:
* Un libro su Arduino
* oppure il tutorial: http://arduino.cc/en/Tutorial/HomePage
e con l' aiuto di http://arduino.cc/en/Reference/HomePage (come dice leo72) e http://arduino.cc/en/Reference/Libraries per le librerie.
Trovi anche dei tutorial su Youtube con Massimo Banzi.
http://www.youtube.com/watch?v=L7WppPbaOSw&playnext=1&list=PLADBA1D53A358D570
http://www.youtube.com/watch?v=_GWaKpUHB7s

Poi qualche tutorial su C per controllare alcune funzioni e sopratutto capire BENE i puntatori.

Informazione addizinale riguardante il pulsante.
Il controller del Arduino ha delle resistenze integrate (che portano l' uscita a +5V)
si attivano scrivendo su un pin che era messo come uscita entrata
pinMode(pin Input);
un valore H
digitalWrite(pin, HIGH);
per spegnerla:
digitalWrite(pin, LOW);

Ciao Uwe

Go Up