Proiectarea cu MicroprocesoareScurt exemplu de proiect
Universitatea POLITEHNICA Bucures,ti
Aprilie 2016
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 1/16
Introducere
I Am ales sa va facem un exemplu de proiect simpluI Vom vedea pas, ii prin care trebuie trecutI Implementarea lui dureaza sub o ora
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 2/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335
I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335
I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335
I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Termometru digital cu afis,aj LCD
I Vrem sa afis, am temperatura ın grade Celsius pe un LCD text
I Refresh la jumatate de secundaI Ce ne trebuie?
I Ecran LCD text, ca cel din laborator. Putem obt, ine rapid unulde pe oricare site de ocazii, pret, ∼20RON
I Un senzor de temperatura, vom alege cel mai simplu: LM335I Este un senzor analogic
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 3/16
Outline
Hardware
Software
Concluzii
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 5/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:
I Care este pinout-ul pentru capsula pe care am ales-o?I Cum se leaga piesa ın schema electrica?I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:I Care este pinout-ul pentru capsula pe care am ales-o?
I Cum se leaga piesa ın schema electrica?I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:I Care este pinout-ul pentru capsula pe care am ales-o?I Cum se leaga piesa ın schema electrica?
I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
I Gasim pe Farnell LM335Z/NOPB (cod 1564652)I Capsula este TO-92I Pret,ul este 4.32RON
I Gasim datasheet-ul la adresahttp://www.ti.com/lit/ds/symlink/lm235.pdf
I Cautam informat, ii din datasheet:I Care este pinout-ul pentru capsula pe care am ales-o?I Cum se leaga piesa ın schema electrica?I Cum se obt, in date de la senzor?
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 6/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Datele obt, inute din datasheet
I Schema simplificata e us,or de folositI Trebuie sa aflam ce valoare ne trebuie
pentru R1
I For optimum accuracy, R1 is picked suchthat 1 mA flows through the sensor
I I = V+−OUTPUTR1
→ R1 = V+−OUTPUTI
I Avem alimentare la 5V s, i temperaturamedie de 25
I R1 = 5V−(273.15+25)·10mV1mA ' 2018Ω
I Dintre valorile comune pentru rezistent,e,alegem 2K2
I Tensiunea pe OUTPUT este temperaturaın Kelvin ımpart, ita la 100 → pin ADC
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 7/16
Lista de piese - Milestone 3
Piesa Valoare Pret,
LCD text 20RONRezistent, a 1K Ω 0.16RONRezistent, a 10K Ω 0.24RONRezistent, a 2K Ω 0.24RONLM335 LM335A 4.32RON
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 8/16
Schema electrica - Milestone 4
I In EAGLE CAD, introducemurmatoarele componente:
I O rezistent, a:resistors/R-EU_-
/R0204/7I Ground: GNDI Conector bareta pini:
con_lstb/MA03-1I Senzor temperatura:
lm35/lm35 (gasimbiblioteca separata,cautam lm35 eagle lbr penet)
I Fizic, conectorul nostru SV1 va fi legat cu 3 fire la5V,PA0,GND
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 9/16
Outline
Hardware
Software
Concluzii
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 10/16
Considerente Software
I Trebuie sa facem o masurare de doua ori pe secunda → timercu ıntrerupere
I Trebuie sa adaptam codul de LCD text din laborator (pentruca nu avem aceeas, i pini ca placa de laborator)
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 11/16
Adaptare LCD text
// l c d . h// P i n i i de date a i LCD−u l u i#d e f i n e LcdD4 PC6#d e f i n e LcdD5 PC5#d e f i n e LcdD6 PC4#d e f i n e LcdD7 PC3
// Po r t u l pe ca r e conectam p i n i i de c o n t r o l a i LCD−u l u i#d e f i n e LcdCTRL DDR DDRA#de f i n e LcdCTRL PORT PORTA#de f i n e LcdCTRL PIN PINA
// P i n i i de c o n t r o l a i LCD−u l u i#d e f i n e LcdRS PA5#d e f i n e LcdRW PA6#d e f i n e LcdE PA7
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 12/16
Cod main
i n t main ( )
// i n i t i a l i z a r e LEDDDRD |= (1 << PD7) ;// i n i t i a l i z a r e t ime rOCR1A = 7812 ;TCCR1B = (1 << WGM12) | (5 << CS10 ) ;TIMSK1 |= (1 << OCIE1A) ;// i n i t i a l i z a r e ADCADMUX = (1 << REFS0) ;ADCSRB = (1 << ADEN) | (7 << ADPS0) ;
s e i ( ) ;
wh i l e (1 ) ;
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 13/16
Cod ISR
ISR (TIMER1 COMPA vect )
// s t a r t c o n v e r s i ePORTD |= (1 << PD7) ;ADCSRA |= (1 << ADSC) ;l o o p u n t i l b i t i s c l e a r (ADCSRA, ADSC) ;
// t e rm i n a r e c o n v e r s i ePORTD &= ˜(1 << PD7) ;
cha r s [ 1 0 ] ;// \xDF e s t e s imbo l u l pen t ru grades p r i n t f ( s , ”%7.2 f \xDF C” ,ADC ∗ 5 / 1023 .0 f ∗ 100 − 273 .15 f ) ;
LCD pr intAt (0 , s ) ;
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 14/16
Outline
Hardware
Software
Concluzii
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 15/16
Concluzii
I Variante ale codului
I while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)
I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADCcomplete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16
Concluzii
I Variante ale coduluiI while(1) cu _delay_ms (urat)I ADC cu auto-trigger pe Timer1 compare match, ISR pe ADC
complete (expert mode)
I Hardware-ul a fost us,or de conectat
I Modificarile software au fost minime
I DISCLAIMER:Consideram acest proiect ca fiind prea simplu,dar exemplifica bine workflow-ul proiectului PM
UPB Proiectarea cu Microprocesoare Scurt exemplu de proiect 16/16