Pages: [1]   Go Down
Author Topic: Problema sull'uso di un pulsante.  (Read 742 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, sono nuovo sia nel forum che nel mondo di arduino, infatti a quanto pare ho cominciato già a far danni  smiley-razz. Allora vi espongo il mio problema, ho acquistato un arduino Mega 256 r3 da poco, dopo aver provato ad a far lampeggiare un led (quello del pin 13) ho deciso di provare ad accenderlo con un pulsante, il problema è che essendo elettricista a intuito ho collegato il pin dei 5v tramite il pulsante al pin 7 digitale, ho dato qualche impulso ma niente, credevo che se non premo è 0 se premo e riceve i 5v è 1 smiley-lol. Ma a quanto pare non è così infatti nn ha funzionato, e per giunta cercando in rete oltre a trovare il modo giusto per usare un pulsante cn arduino ho letto anche che il modo usato da me è sbagliatissimo, ora vorrei sapere da voi cosa ho combinato in realtà a livello hardware, se ho bruciato qualcosa... anche se la scheda continua a funzionare e a vederlo il pin non sembrerebbe bruciato inoltre l'ho riprovato col giusto collegamento e funziona. Vi prego toglietemi questo dubbio!!! Grazie in anticipo.
Logged

Offline Offline
Sr. Member
****
Karma: 8
Posts: 293
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, sono nuovo sia nel forum che nel mondo di arduino, infatti a quanto pare ho cominciato già a far danni  smiley-razz. Allora vi espongo il mio problema, ho acquistato un arduino Mega 256 r3 da poco, dopo aver provato ad a far lampeggiare un led (quello del pin 13) ho deciso di provare ad accenderlo con un pulsante, il problema è che essendo elettricista a intuito ho collegato il pin dei 5v tramite il pulsante al pin 7 digitale, ho dato qualche impulso ma niente, credevo che se non premo è 0 se premo e riceve i 5v è 1 smiley-lol. Ma a quanto pare non è così infatti nn ha funzionato, e per giunta cercando in rete oltre a trovare il modo giusto per usare un pulsante cn arduino ho letto anche che il modo usato da me è sbagliatissimo, ora vorrei sapere da voi cosa ho combinato in realtà a livello hardware, se ho bruciato qualcosa... anche se la scheda continua a funzionare e a vederlo il pin non sembrerebbe bruciato inoltre l'ho riprovato col giusto collegamento e funziona. Vi prego toglietemi questo dubbio!!! Grazie in anticipo.



cerca di essere ottimista non credo che tu l'abbia bruciato smiley
...semplicemente non funziona bene perchè ci sono correnti parassite: se tocchi il pin, non avendo una resistenza di pulldown che ti scarica a massa lui vede 1 anche se è 0... comunque non dovrebbe bruciare nulla perchè dentro hanno messo anche un diodino zener che eventualmente scarica l'eccesso se non si esagera.
a livello di sorgente dovresti assicurarti di non aver dichiarato il pin dell'interruttore come output: l'ideale sarebbe dichiararlo come input  ma se lo lasci da dichiarare (istruzione pinmode) dovrebbe di standard prendere l'input...
penso che tu abbia capito cosa devi fare: una resistenza tra pin e massa per scaricare a terra le spurie o l'uso della resistenza interna attivabile via software (che però funziona contraria)
http://arduino.cc/en/Tutorial/Button
http://arduino.cc/en/Tutorial/DigitalPins   

Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 252
Posts: 21283
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se colleghi un entrata tramite un pulsant a +5V  hai 5V sull'entrata quando azioni il pulsante ma niente di definito quando non lo premi. Puoi dare un valore definito all'entrata collegando una resistenza tra entrata e massa. Se il pulsante non é premuto la resistenza lo porta a LOW. Se premi il pulsante quello la porta a HIGH e (circola una corrente attraverso la resistenza). La resistenza in questo caso viene chiamata pulldown. Se metti il pulsante a massa e la resistenza a +5V ottieni valori invertiti come stato del pulsante e la resistenza si chiama Pullup.
Arduino ha delle resistenze interne pullup che attivi scrivendo digitalWrite(pin,HIGH) al pin precedentemente desso come entrata. Con digitalWrite(pin,LOW) lo spegni.

Ciao Uwe
Logged

Offline Offline
Sr. Member
****
Karma: 1
Posts: 467
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uwe ma la resistenza non ė solo sul piu 13?
Logged

Marche
Offline Offline
Edison Member
*
Karma: 33
Posts: 2261
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le resistenze interne che dice Uwe stanno integrate dentro l'atmega, quella del pin 13 che dici tu è un'altra cosa, serve solo per limitare la corrente al led montato sull'arduino
Logged

Offline Offline
Sr. Member
****
Karma: 1
Posts: 467
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah ok,
Ma il principio ė lo stesso no?
Solo che ė fatto a livello di micro, giusto?
Logged

Marche
Offline Offline
Edison Member
*
Karma: 33
Posts: 2261
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sono resistenze di pullup, quindi collegate al pin e all'alimentazione.
Non si possono usare per limitare la corrente di led o altro
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 252
Posts: 21283
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Uwe ma la resistenza non ė solo sul piu 13?
Se intendi la resistenza per poter collegare un LED direttamente al pin 13: non esiste piú dalla versione Arduno NG.
Gli Arduini fino al 2009 compreso hanno un LED collegato con una resistenza su pin 13. L'Arduino UNO ha anche un amplificatore operationale per disacoppiare il LED dal pin e percui il LED non carica il pin.
Ciao Uwe
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

L'Arduino UNO ha anche un amplificatore operationale per disacoppiare il LED dal pin e percui il LED non carica il pin.
Questo dal modello R3, i precedenti hanno ancora la linea con resistenza e LED parallela al pin D13 .
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 10
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok raga ora mi è tutto chiaro...solo che dovevo informarmi prima anzichè fare di testa mia  smiley-lol!! Quindi ricapitolando, il fatto che io abbia mandato col pulsante 5v direttamente sul pin digitale 7 (con digitalWrite, INPUT) senza alcuna resistenza, e dato che i pin digitali possono assorbire massimo 40mA in teoria avrei danneggiato qualcosa?? Perchè in pratica sembrerebbe di no... Poi avrei un'altra curiosità, nella maggior parte dei tutorial sui pulsanti sia in pull-up che in pull-down trovo sempre una resistenza da 10k, è un caso o c'è una regola da rispettare?? Come mai si usa una da 10k? Grazie per la vostra consulenza...  smiley
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok raga ora mi è tutto chiaro...solo che dovevo informarmi prima anzichè fare di testa mia  smiley-lol!! Quindi ricapitolando, il fatto che io abbia mandato col pulsante 5v direttamente sul pin digitale 7 (con digitalWrite, INPUT) senza alcuna resistenza, e dato che i pin digitali possono assorbire massimo 40mA in teoria avrei danneggiato qualcosa?? Perchè in pratica sembrerebbe di no... Poi avrei un'altra curiosità, nella maggior parte dei tutorial sui pulsanti sia in pull-up che in pull-down trovo sempre una resistenza da 10k, è un caso o c'è una regola da rispettare?? Come mai si usa una da 10k? Grazie per la vostra consulenza...  smiley

1) i pin sono fatti per lavorare a 5V per cui se colleghi 5V ad un pin non fai nessun danno.
2) i 40 mA sono riferiti alla corrente che un pin può EROGARE
3) è il valore minimo per dare il segnale a pin non collegato senza che passi eccessiva corrente. Valori corretti sono sui 10/20/30K.
Logged


Pages: [1]   Go Up
Jump to: