Differenze tra le versioni di "Arduino e sensori digitali"

Da GolemWiki.
(Creata pagina con 'Impostando i piedini digitali in lettura (INPUT), si possono collegare dei sensori e leggerne lo stato: se sul piedino è presente una tensione compresa fra ''2.5 e 5 V'' v…')
 
m (linkate correttamente immagini)
 
Riga 1: Riga 1:
 +
{{Guide
 +
|immagine=Pulsante-arduino.gif
 +
|guida=Arduino
 +
|precedente=Arduino,_led_e_resistenze
 +
|indice=Elettronica_Opensource
 +
|successiva=Arduino_e_sensori_analogici}}
 
Impostando i piedini digitali in lettura (INPUT), si possono collegare dei sensori e leggerne lo stato: se sul piedino &egrave; presente una tensione compresa fra ''2.5 e 5 V'' viene letto '''HIGH''', se la tensione &egrave; inferiore invece '''LOW'''.<br />
 
Impostando i piedini digitali in lettura (INPUT), si possono collegare dei sensori e leggerne lo stato: se sul piedino &egrave; presente una tensione compresa fra ''2.5 e 5 V'' viene letto '''HIGH''', se la tensione &egrave; inferiore invece '''LOW'''.<br />
 
Il bottone, o '''pushbutton''', &egrave; uno dei sensori pi&ugrave; semplici: premendolo i suoi piedini entrano in conduzione, altrimenti rimangono isolati. Una volta inserito nella breadboard, collegalo come nello schema sotto:
 
Il bottone, o '''pushbutton''', &egrave; uno dei sensori pi&ugrave; semplici: premendolo i suoi piedini entrano in conduzione, altrimenti rimangono isolati. Una volta inserito nella breadboard, collegalo come nello schema sotto:
[[File:bottone.gif | 500px | center]]
+
[[File:Arduino-bottone-schema.gif | 500px | center]]
 
==Come funziona?==
 
==Come funziona?==
 
I collegamenti dovrebbero essere chiari: il bottone &egrave; collegato a 5v da una parte e al piedino digitale dall'altra. Se lo premi, Arduino legge HIGH, altrimenti LOW. Ma allora a cosa serve la '''resistenza'''? Quando il bottone non &egrave; premuto non è detto che venga letto LOW, perch&eacute; il piedino è scollegato e qualsiasi corrente elettrostatica, come una scintilla che si scarica dalla nostra mano sul filo, pu&ograve; "sporcare" il segnale rendendolo fluttuante. Con la resistenza, invece, il piedino rileva una piccola corrente da massa, tanto quanto basta per tenere stabile il segnale a LOW: siccome tiene basso il segnale la resistenza è detta di '''pull-down'''. Quando invece il pulsante &egrave; premuto il piedino rileva lo stato HIGH e la resistenza evita un corto circuito.
 
I collegamenti dovrebbero essere chiari: il bottone &egrave; collegato a 5v da una parte e al piedino digitale dall'altra. Se lo premi, Arduino legge HIGH, altrimenti LOW. Ma allora a cosa serve la '''resistenza'''? Quando il bottone non &egrave; premuto non è detto che venga letto LOW, perch&eacute; il piedino è scollegato e qualsiasi corrente elettrostatica, come una scintilla che si scarica dalla nostra mano sul filo, pu&ograve; "sporcare" il segnale rendendolo fluttuante. Con la resistenza, invece, il piedino rileva una piccola corrente da massa, tanto quanto basta per tenere stabile il segnale a LOW: siccome tiene basso il segnale la resistenza è detta di '''pull-down'''. Quando invece il pulsante &egrave; premuto il piedino rileva lo stato HIGH e la resistenza evita un corto circuito.
  
[[File:pullup.gif]]
+
[[File:Arduino-pullup-schema.gif | right | 50px]]
 
Se c'è la resistenza di pull-down, ci sarà anche la resistenza di '''pull-up''': è collegata alla tensione positiva invece che a massa. Di conseguenza l'altro piedino del bottone sar&agrave; collegato a massa.
 
Se c'è la resistenza di pull-down, ci sarà anche la resistenza di '''pull-up''': è collegata alla tensione positiva invece che a massa. Di conseguenza l'altro piedino del bottone sar&agrave; collegato a massa.
  
 
  Di solito le resistenze di pull-up e pull-down hanno valore alto, circa '''1K&#8486;-10K&#8486;'''.
 
  Di solito le resistenze di pull-up e pull-down hanno valore alto, circa '''1K&#8486;-10K&#8486;'''.
 
==Altri interruttori==
 
==Altri interruttori==
[[File:reed-tilt.jpg]]
+
[[File:Arduino-reed-tilt.gif | left | 100px]]
 
Oltre ai pushbutton ci sono altri sensori simili, ad esempio il '''tilt''': un cilindretto metallico con una pallina all'interno e due piedini. Se lo si capovolge la pallina cortocircuita i piedini. Un altro sensore interessante &egrave; il '''reed''': una fialetta con all'interno due lamine metalliche molto vicine che entrano in contatto avvicinando una calamita al sensore.
 
Oltre ai pushbutton ci sono altri sensori simili, ad esempio il '''tilt''': un cilindretto metallico con una pallina all'interno e due piedini. Se lo si capovolge la pallina cortocircuita i piedini. Un altro sensore interessante &egrave; il '''reed''': una fialetta con all'interno due lamine metalliche molto vicine che entrano in contatto avvicinando una calamita al sensore.
  
Riga 105: Riga 111:
 
</div>
 
</div>
 
<br />-->
 
<br />-->
 +
[[Category:Howto]]

Versione attuale delle 21:12, 31 ott 2012


Impostando i piedini digitali in lettura (INPUT), si possono collegare dei sensori e leggerne lo stato: se sul piedino è presente una tensione compresa fra 2.5 e 5 V viene letto HIGH, se la tensione è inferiore invece LOW.
Il bottone, o pushbutton, è uno dei sensori più semplici: premendolo i suoi piedini entrano in conduzione, altrimenti rimangono isolati. Una volta inserito nella breadboard, collegalo come nello schema sotto:

Arduino-bottone-schema.gif

Come funziona?

I collegamenti dovrebbero essere chiari: il bottone è collegato a 5v da una parte e al piedino digitale dall'altra. Se lo premi, Arduino legge HIGH, altrimenti LOW. Ma allora a cosa serve la resistenza? Quando il bottone non è premuto non è detto che venga letto LOW, perché il piedino è scollegato e qualsiasi corrente elettrostatica, come una scintilla che si scarica dalla nostra mano sul filo, può "sporcare" il segnale rendendolo fluttuante. Con la resistenza, invece, il piedino rileva una piccola corrente da massa, tanto quanto basta per tenere stabile il segnale a LOW: siccome tiene basso il segnale la resistenza è detta di pull-down. Quando invece il pulsante è premuto il piedino rileva lo stato HIGH e la resistenza evita un corto circuito.

Arduino-pullup-schema.gif

Se c'è la resistenza di pull-down, ci sarà anche la resistenza di pull-up: è collegata alla tensione positiva invece che a massa. Di conseguenza l'altro piedino del bottone sarà collegato a massa.

Di solito le resistenze di pull-up e pull-down hanno valore alto, circa 1KΩ-10KΩ.

Altri interruttori

Arduino-reed-tilt.gif

Oltre ai pushbutton ci sono altri sensori simili, ad esempio il tilt: un cilindretto metallico con una pallina all'interno e due piedini. Se lo si capovolge la pallina cortocircuita i piedini. Un altro sensore interessante è il reed: una fialetta con all'interno due lamine metalliche molto vicine che entrano in contatto avvicinando una calamita al sensore.

Il programma

//bottone.ino
const short led2 = 13;
const short led1 = 12;
const short bottone = 2;
void setup() {
	pinMode(led1,OUTPUT);
	pinMode(led2,OUTPUT);
	pinMode(bottone,INPUT);
}
void loop() {
if (digitalRead(bottone) == HIGH) {
	digitalWrite(led1,HIGH);
	digitalWrite(led2,LOW);
	}
else {
	digitalWrite(led1,LOW);
	digitalWrite(led2,HIGH);
	}
}

Il listato è molto simile a quello dei due LED che si accendono e si spegnono: la differenza è che stavolta puoi controllare tu lo stato dei LED attraverso il bottone. Per poter leggere dal piedino 2 devi impostarlo nel setup() come input, con l'istruzione pinMode(bottone,INPUT). A questo punto, per leggere lo stato del piedino durante l'esecuzione del programma si utilizza la funzione digitalRead(bottone);. Se usi una resistenza di pull-down, premendo il bottone il LED sulla breadboard si accende e quello sulla scheda si spegne; se provi a cambiare lo schema usando quella di pull-up il programma funzionerà al contrario.