Progetti realicon ARDUINO
Introduzione alla scheda Arduino (parte 5ª)
gennaio 2015 – Giorgio CarpignanoI.I.S. PRIMO LEVI
C.so Unione Sovietica 490 (TO)Materiale didattico:
www.istitutoprimolevi.gov.it
Servomotori per radiocomandi• Può essere posizionato con
una rotazione dell’alberocompreso tra 0° e 180º
• Un circuito di feedback interno(controreazione) e ingranaggisi prende cura di mantenerela posizione corretta
• Facile da utilizzare e collegare:utilizza solo 3 fili dicollegamento conalimentazione a 5V.
• In generale, il "servomotore" è un motore conun meccanismo di feedback (composto dasensore di posizionamento e sua logica dicontrollo) che permette di inviare comandi diposizione allo stesso senza che sia necessarioeffettuare la lettura di posizione per verificare lacorretta posizione.
I servomotori dove si utilizzano?
• In robotica, negli effetti cinematografici, neipresepi e nei teatrini dei burattini si usanoestensivamente.
• Ogni volta che avete bisogno di effettuareun piccolo controllo, un movimentoripetibile più volte.
• La rotazione dell’alberino può esseretrasformata in un movimento lineare conun semplice circuito meccanico.
I servomotori Sono disponibili in molte dimensioni Dai modelli più piccoli (9 grammi) A quelli più grandi per le auto (157 grammi) TUTTI però possiedono solo 3 cavi di
collegamento. La frequenza di aggiornamento del PWM è di 50
Hz (ogni 20 msec.) L’impulso varia da 1 a 2 msec. 1 msec = posizione dell’alberino completamente
ruotata con senso antiorario 2 msec = posizione dell’alberino completamente
ruotata con senso orario
Movimento dei servomotori Per posizionare il servomotore occorre trasmettere
una serie di impulsi della durata da 1 a 2 msec. Per mantenere la posizione occorre ripetere
periodicamente la trasmissione dell’impulso. E’ necessario un certo tempo per ruotare. Se gli
impulsi sono troppo veloci l’alberino non si sposta.Ricorda 1 msec. = 1000 sec.
Buzzer piezoelettrico
La parola “piezein” in greco significa "spremere"
Alcuni cristalli, quando sono sottoposti ad una
forte pressione, creano una scintilla.
Si è scoperto che il processo è reversibile, cioè va
anche nel senso opposto quando viene sottoposto
ad una tensione ai suoi capi si flette per emettere
il suono (flettere qualcosa avanti e indietro
permette di muovere l’aria circostante emettendo
un suono)
Buzzer piezoelettrici e altoparlanti Collegamento tramite 2 conduttori. Basta applicare una tensione oscillante
per ottenere un suono Il buzzer supporta l'elemento piezoelettrico ed
ha una cavità risonante per il suono.Occorre applicare una tensione fluttuante
perché se vien utilizzata solo un livello costante“high” oppure “low” non funzionerà.
Allarme DIN-DONper apertura cassetto o frigorifero
Si richiede l’implementazione di un software in grado di:Generare due note (din-don con uscita digitale ad onda
quadra) tramite buzzer o altoparlante quando vieneilluminata dalla luce ambiente la fotoresistenza
Alla
rme
DIN
-DO
Npe
r ape
rtur
a ca
sset
to o
frig
orife
ro
allarme_DIN_DON.ino
Visto di sotto dal lato terminali
Low CostSensore tipo LM35 Precision Centigrade Temperature Sensors
Range di temperatura: da −55 a +150°C (contenitoreplastico tipo TO-92)
Accuratezza: ±3⁄4°C su tutta la scala, ±1/2°C ambiente)Bassa impedenza di uscita (0.1 Ω per 1 mA carico)Uscita in tensione lineare +10.0 mV/°CAlimentazione tra 4 ÷ 30V
Misura della temperatura – LM35
Misura della temperatura con LM35
Sensore_Temperatura_LM35.ino
Misura della temperatura – DS18B20 Sensore tipo DS18B20 (1-Wire Digital Thermometer) Range di temperatura: da −55 a +125°C (contenitore
waterproof completamente isolato) Risoluzione: programmabile da 9 a 12 bit, accuratezza ±1/2°C
ambiente Uscita digitale: livello TTL compatibile con lettura fino a 32
sensori differenti collegati sulla stessa linea Alimentazione tra 3,3 ÷ 5V Tempo di conversione della temperatura:
750 msec. max. a 12 bitvalori compresi tra 0÷4095.
Misura della temperatura – DS18B20
Sensore_Temperatura_DS18B20.ino
Parte 1ª
Misura della temperatura – DS18B20
Sensore_Temperatura_DS18B20.ino
Parte 2ª
Come definizione un termistore di tipo NTC(Negative Temperature Coefficient) è unresistore metallico sensibile alla temperatura chefornisce una diminuzione del valore resistivonominale in conseguenza di un incremento dellatemperatura.
Con un valore compreso tra – 2%/K a – 6%/K, siha un coefficiente negativo della temperatura dicirca 10 volte maggiore degli altri metalli.
L’elevata sensibilità dei termistori NTC è idealenelle applicazioni di misura della temperatura incui si richiede un basso costo.
I sensori NTC vengono utilizzati generalmenteentro un range di misura della temperaturacompreso tra –40 e +300 °C.
Misura della temperatura conTermistori NTC
Misura della temperatura con Termistori NTC
NTC.ino - 1ª parte
Misura della temperatura con Termistori NTCNTC.ino - 2ª parte
Misura della accelerazione con sensoreMMA7361L su 3 assi X, Y e Z
Sensibilità regolabile a ±1.5g (porrel’input g-Select = LOW = 0V) oppure a±6g (g-Select = HIGH = 3,3V)
Vdd = +3,3VVss = GNDXout = uscita analogica in mV relativaall’accelerazione dell’asse XYout = uscita analogica in mV relativaall’accelerazione dell’asse YZout = uscita analogica in mV relativaall’accelerazione dell’asse Z
Sensore MMA7361L collegamentiCon la sensibilità impostata a ±1.5g (porre l’input g-Select =LOW = 0V) l’accelerazione si può misurarla come variazionedei mV sui singoli pin di out il cui valore varia di 800 mV adogni variazione di 1g (g = accelerazione di gravità).
Se la sensibilità è impostata a ±6g (g-Select = HIGH = 3,3V)la variazione ad ogni g è di soli 206 mV.
COLLEGAMENTIaccelerometro MMA7361L Arduino
3,3V 3,3VGND GNDXout A0Yout A1Zout A2g-Select GND / 3,3VSleep 3,3V
3.3V su AREF
Misura della accelerazione con sensoreMMA7361L su 3 assi X, Y e Z
Il datasheet dell’accelerometro MMA7361L indica la direzione diogni asse rispetto all’integrato per aiutarci a comprendere ad ognimovimento gli assi corrispondenti che vengono modificati.
Sensore MMA7361L software
Accelerometro_3_assi_MMA7361L.ino
SOFTWARE E SCHEMI ELETTRICI
CON INPUT / OUTPUT
DA COLLEGARE
ALLA SCHEDA ARDUINO
Gestione dei segnalatori ottici (led) con Arduino
VCC=+5V
D3
LED
1 2
D1
LED
12
PIN13
PIN13
ILED(D1)=40mA
ILED(D3)=40mA
LED D1 ACCESO --> PIN13 LOW (GND)
LED D1 SPENTO --> PIN13 HIGH (+5V)
LED D3 ACCESO --> PIN13 HIGH (+5V)
LED D3 SPENTO --> PIN13 LOW (GND)
Versione sconsigliata! (manca la R di limitazione della corrente chescorre nel led, quindi si avrà: ID1 = ID3 = 40mA)
Schema elettrico con 1 led collegato al pin 13 (versione a katodo a massa eanodo al pin 13 senza resistore)
Schema elettrico con 1 led collegato al pin 13 (versione a katodo al pin 13 eanodo a Vcc senza resistore)
Gestione dei segnalatori ottici (led) con Arduino
VCC=+5V
R2
330
D2
LED
12
D4
LED
1 2
R1
330
PIN13
PIN13
R1=(VCC-VD2)/ILEDD2=(5-1,8)/0,01=320ohm=330ohm
dove VCC=5V; VD2=1,8V; ILED(D2)=10mA
LED D2 ACCESO --> PIN13 LOW (GND)
LED D2 SPENTO --> PIN13 HIGH (+5V)
LED D4 ACCESO --> PIN13 HIGH (+5V)
LED D4 SPENTO --> PIN13 LOW (GND)
R2=(VCC-VD4)/ILEDD4=(5-1,8)/0,01=320ohm=330ohm
dove VCC=5V; VD4=1,8V; ILED(D4)=10mA
Schema elettrico con 1 led collegato al pin 13 (versione a katodo a massa eanodo al pin 13 con resistore)
Schema elettrico con 1 led collegato al pin 13 (versione a katodo al pin 13 eanodo a Vcc con resistore)
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico diun collegamento aled con anodo aVCC=+5V
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico diun collegamento aled con catodo aGND=0V
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico con 1 led e un transistor NPN (Vcc=5V)
VCC=+5V
R6
3.9K
D5
LED
12
Q2BC1071
3
2
R4
270
PIN13
LED D5 ACCESO --> PIN13 HIGH (+5V)
LED D5 SPENTO --> PIN13 LOW (GND)
R4=(VCC-VD5-VCEQ2)/ILEDD5=(5-1,8-0,2)/0,01=300ohm=270ohm
R6=(VCC-VBEQ2)/IBQ2=(5-0,6)/0,001=4400ohm=3900ohm
dove IBQ2=ILEDD5/hFE=0,01/100=0,0001Aper sicurezza di saturare Q2 si avrà IBQ2=0,001A
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico con 1 led e un transistor PNP (Vcc=5V)
VCC=+5VR3
3.9K
D6
LED
12
Q12N2907
R5270
PIN13
LED D6 ACCESO --> PIN13 LOW (GND)
LED D6 SPENTO --> PIN13 HIGH (+5V)
R5=(VCC-VCEQ1-VD6)/ILEDD6=(5-0,2-1,8)/0,01=300ohm=270ohm
R3=(VCC-VBEQ1)/IBQ1=(5-0,6)/0,001=4400ohm=3900ohm
dove IBQ1=ILEDD6/hFE=0,01/100=0,0001Aper sicurezza di saturare Q1 si avrà IBQ1=0,001A
Gestione dei segnalatori ottici (led) con Arduino
Sche
ma
elet
tric
o co
n 3
led
e un
tran
sist
or N
PN (V
cc=1
2V)
VCC=+12VR7680
Q5BC1071
3
2
D11
LED
12
R11
3.9K
D9
LED
12
D7
LED
12
PIN13
LED D7,D9,D11 SPENTO --> PIN13 LOW (GND)
LED D7,D9,D11 ACCESO --> PIN13 HIGH (+5V)
R7=(VCC-VD7-VD9-VD11-VCEQ5)/ILED=(12-1,8-1,8-1,8-0,2)/0,01=640ohm=680ohm
R11=(VCC-VBEQ5)/IBQ5=(5-0,6)/0,001=4400ohm=3900ohm
dove IBQ5=ILED/hFE=0,01/100=0,0001Aper sicurezza di saturare Q5 si avràIBQ5=0,001A
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico con 4 led e un transistor NPN+PNP (Vcc=12V)
VCC=+12V
Q4BC107
13
2
R9
680
Q32N2907
D12
LED
12
R8
12K
D8
LED
12
D10
LED
12
R10
3.9KPIN13
LED D8,D10,D12 SPENTO --> PIN13 LOW (GND)
LED D8,D10,D12 ACCESO --> PIN13 HIGH (+5V)
R9=(VCC-VCEQ3-VD8-VD10-VD12)/ILED=(12-0,2-1,8-1,8-1,8)/0,01=640ohm=680ohm
R8=(VCC-VBEQ3-VCEQ4)/IBQ3=(12-0,6-0,2)/0,001=11200ohm=12000ohm
dove IBQ3=ILED/hFE=0,01/100=0,0001Aper sicurezza di saturare Q3 si avrà IBQ3=0,001Adove IBQ3 corrisponde a ICQ4
R10=(VCC-VBEQ4)/IBQ4=(5-0,6)/0,001=4400ohm=3900ohm
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico di una matrice 2 x 2 led(con anodi sulle colonne a sinistra oppure con katodi sulle colonne a destra)
D3
LED
12
D5
LED
12
D6
LED
12
D2
LED
12
D1
LED
12
D7
LED
12
D8
LED
12
D4
LED
12
COL1
ROW0
ROW1
COL0 COL1
ROW1
ROW0
COL0
MATRICE 2x2 LEDCON ANODI SULLE COLONNE
MATRICE 2x2 LEDCON KATODI SULLE COLONNE
Gestione dei segnalatori ottici (led) con Arduino
Schemaelettrico di unamatrice 2 x 2 led(con anodi sullecolonnealimentata aVDD=+5V) in cuiviene effettuatauna scansioneper righe
VDD=+5V
D11LED
12
D12LED
12
D16LED
12
D15LED
12R13
56
R9
56
Q10BC107
32
1
Q8BC107
32
1
Q5
2N29073
21 R6
2.2K
R5
2.2K
Q6
2N29073
21
R14
2.2K
R10
2.2K
COL1
ROW0
ROW1
COL0
PIN10-R1
PIN9-R0
PIN11-C0 PIN12-C1
MATRICE 2x2 LEDSCANSIONE PER RIGHEVDD = +5V
CALCOLO R9 E R13VDD=VCEQ5+VD11+VR9+VCEQ8;SOSTITUISCO I VALORI NOTIDOVE ILED = ID11 = 50 mA = 0,05A5=0,2+1,8+R9*0,05+0,2;R9=(VDD-VCEQ5-VD11-VCEQ8)/ILED;R9 = (5-0,2-1,8-0,2)/0,05 = 56 OHM
CALCOLO R5 E R6VDD=VBEQ5+VR5;SOSTITUISCO I VALORI NOTIDOVE IBQ5=ILED/hFE=0,05/50=0,001;A GARANZIA DI UNA OTTIMA SATURAZIONE DI Q5RADDOPPIO LA IBQ5=0,001*2=0,002A;R5=(VDD-VBEQ5)/IBQ5;R5= (5-0,6)/0,002 = 2200 OHM
CALCOLO R10 E R14VCC=VBEQ8+VR10SOSTITUISCO I VALORI NOTIDOVE IBQ8=ILED/hFE=0,05/50=0,001;A GARANZIA DI UNA OTTIMA SATURAZIONE DI Q8RADDOPPIO LA IBQ8=0,001*2=0,002A;R10=(VCC-VBEQ8)/IBQ8;R10= (5-0,6)/0,002 = 2200 OHM
SI NOTI CHE LA CORRENTE CHE SCORRE NEI SINGOLI LEDE' STATA IMPOSTA A 50mA = 0,05A (E NON 20mA COME DADATASHEET DEL COMPONENTE) IN QUANTO OCCORRE EFFETTUAREUNA SCANSIONE PER RIGA
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico diuna matrice 2 x 2 led(con anodi sullecolonne alimentata aVDD=+12V) in cuiviene effettuata unascansione per righe
VDD=+12V
D14LED
12
Q7BC107
32
1
D9LED
12
D10LED
12
D13LED
12
Q1
2N29073
21
R11
180
R7
180
Q9BC107
32
1
R8
2.2K
R25.6K
R15.6K
Q2
2N29073
21
R12
2.2K
R3
12K
Q3
BC107
32
1
R4
12K
Q4
BC107
32
1
COL1COL0
ROW1
ROW0
PIN10-R1
PIN9-R0
PIN11-C0 PIN12-C1
MATRICE 2x2 LEDSCANSIONE PER RIGHEVDD = +12V
CALCOLO R7 E R11VDD=VCEQ1+VD9+VR7+VCEQ7;SOSTITUISCO I VALORI NOTIDOVE ILED = ID9 = 50 mA = 0,05A12=0,2+1,8+R7*0,05+0,2;R7=(VDD-VCEQ1-VD9-VCEQ7)/ILED;R7 = (12-0,2-1,8-0,2)/0,05 = 196 OHM = 180 OHM
CALCOLO R8 E R12VCC=VBEQ7+VR8SOSTITUISCO I VALORI NOTIDOVE IBQ87=ILED/hFE=0,05/50=0,001;A GARANZIA DI UNA OTTIMA SATURAZIONE DI Q7RADDOPPIO LA IBQ7=0,001*2=0,002A;R8=(VCC-VBEQ7)/IBQ7;R8= (5-0,6)/0,002 = 2200 OHM
CALCOLO R1 E R2VDD=VBEQ1+VR5+VCEQ3;SOSTITUISCO I VALORI NOTIDOVE IBQ1=ILED/hFE=0,05/50=0,001;A GARANZIA DI UNA OTTIMA SATURAZIONE DI Q1RADDOPPIO LA IBQ1=0,001*2=0,002A;R1=(VDD-VBEQ1-VCEQ3)/IBQ1;R1= (12-0,6-0,2)/0,002 = 5600 OHM
CALCOLO R3 E R4VCC=VR3+VBEQ3;SOSTITUISCO I VALORI NOTIDOVE ICQ3 = IBQ1 = 0,002A5=R3*0,002+0,6;R3=(VCC-VBEQ3)/IBQ3;DOVE hFE=100 SI AVRA'IBQ3=ICQ3/hFE=0,002/100=0,00002ACHE DIVENTA IBQ3=0,0004A PER UNA GARANZIADI SATURAZIONER3 = (5-0,6)/0,0004 = 196 OHM = 11000 OHM = 12 KOHM
SI NOTI CHE LA CORRENTE CHE SCORRE NEI SINGOLI LEDE' STATA IMPOSTA A 50mA = 0,05A (E NON 20mA COME DADATASHEET DEL COMPONENTE) IN QUANTO OCCORRE EFFETTUAREUNA SCANSIONE PER RIGA
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico per il controllo di 6 led tramite 3 pincon il metodo CHARLIEPLEXING.
Led_Charlieplexing.ino
Gestione dei segnalatori ottici (led) con Arduino
Collegamenti interni ad un display a anodo comune (FND507)
Gestione dei segnalatori ottici (led) con Arduino
Collegamenti interni ad un display a catodo comune (FND500)
Gestione dei segnalatori ottici (led) con Arduino
Decodifica di un display a 7 segmenti con la scheda Arduino
disp
lay_
7_se
gmen
ti_an
odo_
com
une.
ino
Gestione dei segnalatori ottici (led) con Arduino
Decodifica da BCD a 7 segmenti con 7447A e scheda Arduino
Gestione dei segnalatori ottici (led) con Arduino
Schema elettrico di un display a 4 cifre con 7 segmenti ad anodo comune dacollegare alla scheda Arduino
display_7_segmenti_4_cifre_multiplexing.ino
Gestione dei segnalatori ottici (led) con Arduino
Decodifica di un display a 7 segmenti con integrato 74HC595 serial-to-parallel/decoder/latch collegato alla scheda Arduino
display_1_seriale_74HC595.ino
Gestione dei pulsanti con Arduino
Circuiti di controllo di un pulsante n.a. senza l’utilizzo della scheda Arduino
Gestione dei pulsanti con Arduino
Circuiti di controllo di un pulsante n.c. senza l’utilizzo della scheda Arduino
Gestione dei pulsanti con Arduino
Schema elettrico di una matrice di pulsanti n.a. formata da 2 righe per 2colonne senza diodi di protezione (fig. sinistra) e con diodi (fig. destra)
Keypad_matrix_2x2.ino
Gestione dei pulsanti con Arduino
Circuiti di controllo di una matrice di pulsanti n.a. formata da 2 righe per 2colonne con l’utilizzo dei diodi di protezione
Gestione deipulsanti conArduino
Schema elettrico di unamatrice di pulsanti n.a.formata da 4 righe per 3colonne
Keypad_3x4.ino
Gestione di una matrice dipulsanti
Schema elettrico di una matrice di pulsanti n.a.formata da 4 righe per 3 colonne gestita con unsolo ingresso analogico della scheda Arduino
Keypad_3x4_analogico.ino
Fine lavori.Per ora!
Top Related