100% au considerat acest document util (1 vot)
300 vizualizări26 pagini

Proiect UC

Acest proiect prezintă construirea unui termometru digital folosind un microcontroler Atmega32 și un senzor de temperatură LM35. Microcontrolerul citește tensiunea de la senzor și o convertește în grade Celsius, afișând valorile pe un display LCD. Sunt prezentate atât partea hardware cât și cea de software.

Încărcat de

Damian Stefan
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
100% au considerat acest document util (1 vot)
300 vizualizări26 pagini

Proiect UC

Acest proiect prezintă construirea unui termometru digital folosind un microcontroler Atmega32 și un senzor de temperatură LM35. Microcontrolerul citește tensiunea de la senzor și o convertește în grade Celsius, afișând valorile pe un display LCD. Sunt prezentate atât partea hardware cât și cea de software.

Încărcat de

Damian Stefan
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

PROIECT MICROCONTROLER

TERMOMETRUL

GRUPA 8314
Studenti: Simion Costinel
Nenu Razvan
Damian Stefan
PROFESOR COORDONATOR: Cormos Ciprian
CUPRINS :
1. Descrierea proiectului
2. Proiectare hardware
2.1. Schema bloc
2.2. Prezentarea general a modulelor
2.3. Schema electric, lista de componente si proiectarea PCB+3D
3. Proiectare software
3.1. Schema logic i descrierea modului de funcionare
3.2. Listarea programului propriu-zis
4. Bibliografie
1.Descrierea proiectului

n acest proiect vom arata modul de funcionare al unui termometru folosind temperatura
masurat cu ajutorul unui senzor LM35. Totul se realizeaz folosind doua microcontrolre
Atmega32, cele doua vor fi conectate prin intermediul unei mufe RS232. In primul se va scrie
programul care va citi tensiunea senzorului si o va converti in grade C. Cel de-al doilea
microcontrolr va afisa valorile temperaturii pe un LCD 16x2.
Senzorul de temperatur LM35 scoate la iesire 10mv/ C, iar aceast valoare va fi convertit
intr-un numr binar de catre convertorul AD al microcontroller-ului utilizat, dupa care va fi
afisat pe LCD.
Acest proiect include proiectarea hardware(schema bloc i schema electric ) i proiectarea
software(programul ).

2.Proiectarea hardware

2.1. Schema bloc


2.2. Prezentarea general a modulelor

Atmega32
ATmega 32 este un un microcontroller CMOS de mic putere, de 8 bii,bazat pe arhitectura
RISC AVR mbuntit. Contine 32 de registre de uz general i 64 de registre speciale pentru
modulele I/O. Aceste registre sunt mapate la adrese din memoria RAM cuprinse intre 0000h i
005Fh.
Caracteristicile principale ale acestuia sunt:
-32KB de memorie Flash reinscriptibil pentru stocarea codului
-2KB de memorie Ram
-1KB de memorie EEPROM
-2 numaratoare/temporizatoare de 8 bii
-un numrator/temporizator de 16 bii
-conine un convertor analog-digital cu intrari multiple
-conine un comparator analogic
-contine un modul USART pentru comunicaie serial-dispune de oscilator intern-ofer 32 de
linii I/O organizate n 4 porturi
Calculatorul(PC)
Reprezint componenta harware din care alimentm microcontrolrul Atmega32 i cu ajutorul
programelor atmel studio (n care scriem programul de instruciuni) i avrflash(trasmitem
programul

Senzor de temperatura LM35


Descriere: Senzori de temperatura LM35 sunt circuite de precizie, a cror tensiune de ieire este
direct proporional cu temperature in grade Celsius.
Caracteristici:
-Calibrare directa n grade Celsius (C). Precizie garantata de 0,5 C la +25 C.
-Gama de masurare de la -55 la +150 C.
-Potrivit pentru aplicaiile de la distan.
-Tensiune de alimentare de la 4V la 30 V. Curentul consumat 60 A.
-Auto-nclzire in timpul functionarii 0.08 C(capsula aflata n aer) .
-Impedan de ieire sczut, 0,1 Ohm pentru 1 sarcin mA.
LM35 are astfel un avantaj fata de senzori de temperatur liniari calibrati n gradeKelvin(K),
deoarece utilizatorul nu mai este nevoit sa foloseaca constante pentru a obine o scalare
convenabila in grade Celsius. LM35 nu necesita calibrare externa pentru a furniza o precizie de
0.25C la temperatura de 25C si de 0.75C pe tot domeniul de temperatura. Impedan de
ieire scazuta, ieire liniar i calibrarea interna face din LM35 un circuit usor de interfatat cu
alte circuite de citire sau de control . Acesta poate fi alimentat la surse monoalternanta(+V,0V),
sau surse dubla-alternanta (+V,0V,V). Consumul de curent foarte scazut al lui LM35 este de 60
A atrage dupa sine o auto-incalzire de mai putin de 0,1 C n aer.

LCD
Dup cum tim cu toii LCD (Liquid Crystal Display) este un afiaj electronic care este
frecvent utilizat n prezent n aplicaii, cum ar fi calculatoare, laptop-uri, tablete, telefoane
mobile etc. LCD 162 caractere este un modul de baz, care este utilizat n mod obinuit prin
mijloace electronice i este folosit n mai multe dispozitive electronice i de proiect. Se poate
afia 2 linii de 16 caractere i fiecare caracter este afiat folosind matrice de 5 7 sau 5 10
pixeli.
LCD 162 poate fi interfaat cu un microcontroler n 8 bii sau modul 4 Bit. Aceste difer n
modul n care datele i comenzile sunt trimise la LCD. n datele cu caracter modul de 8 bii (ca 8
bii ASCII) i comanda LCD sunt trimise prin liniile de date D0 la D7
Max232
MAX232 este un circuit integrat creat pentru prima dat n 1987 de ctre Maxim Integrated
Products, care convertete semnalele de la un TIA-232 (RS-232), port serial la semnalele
adecvate pentru a fi utilizate n circuite logice digitale compatibile TTL. MAX232 este un dual
emitor / receptor dubl, care de obicei este folosit pentru a converti RX, TX, CTS, semnalele
RTS. MAX232 (A) are dou receptoare care convertesc la RS-232 la niveluri de tensiune TTL, i
doi conductori auto care convertesc la logica TTL la nivelele de tensiune RS-232. Ca rezultat,
doar dou din toate semnalele RS-232 pot fi convertite n fiecare direcie. De obicei, prima
pereche driver / receptor al MAX232 este utilizat pentru semnale TX i RX, iar al doilea pentru
semnale CTS i RTS.
Mufa RS232
Convertorul RS232 to USB alimenteaza un periferic care in mod normal functioneaza pe
USB.
Acesta foloseste un protocol pentru a scoate semnale spre USB pentru a comanda un periferic
din motiv ca perifericul nu dispune de o interfata RS232.Softul care vine cu acest convertor face
programarea microcontrolerului din convertor. Convertorul nu stie sa scoata semnale +si- fata de
masa. El doar poate sa accepte aceste semnale si sa le converteasca pentru USB. In mod invers
face doar un aknowledge de confirmare daca perifericul a inteles sau nu , stop daca datele sunt
prea multe sau start pentru noi date spre iesire.
Push-button
Starea logic a tuturor intrrilor unui microcontroller pot fi modificate utiliznd PUSH-
BUTTONS. Prin comutatoarele cu 3 stri se poate selecta ce stare logic vom aplica pinilor
microcontrolerului prin apsarea butoanelor. PUSH-BUTTON-este un simplu mecanism
comutator pentru controlul anumitor aspecte al unei maini sau a unui proces.

2.3. Schema electric, lista de componente si proiectarea PCB+3D


Lista de componente
- 2 module ATMEGA32
- 1 senzor LM35
- LCD 16x2
- 2 module MAX232
- 2 mufe RS232
- 2 Push-button care vor avea rolul de a initializa semnalul de
RESET
- 2 rezistente 10Kohm pentru alcatuirea circuitului de reset
- 2 condensatori 10nF care intra in structura circuitului de reset
- 10 condesatori electrolitici de 1uF
- 1 potentiometru pentru reglarea luminozitatii LCD-ului
PCB(Printed circuit board)- prima parte a circuitului
PCB- a doua parte a circuitului
Vizualizare 3D
3. Proiectare software

3.1. Schema logic i descrierea modului de funcionare

Programul va citi valoarea in milivolti data de catre senzor si o va converti conform graficului
prezentat mai jos, urmand ca valoarea in grade Celsius sa fie afisata pe LCD.

3.2. Programul propriu-zis:


sbit LCD_RS at PORTA2_bit;
sbit LCD_EN at PORTD6_bit;
sbit LCD_D4 at PORTC4_bit;
sbit LCD_D5 at PORTC5_bit;
sbit LCD_D6 at PORTC6_bit;
sbit LCD_D7 at PORTC7_bit;

sbit LCD_RS_Direction at DDA2_bit;


sbit LCD_EN_Direction at DDD6_bit;
sbit LCD_D4_Direction at DDC4_bit;
sbit LCD_D5_Direction at DDC5_bit;
sbit LCD_D6_Direction at DDC6_bit;
sbit LCD_D7_Direction at DDC7_bit;

const unsigned short VREF = 5.00;

unsigned int temp_res = 0;


float temp;
char txt[15];

void main() {
DDA7_bit = 0; // Configure PA7 pin as input

ADC_Init(); // Initialize ADC

Lcd_Init(); // Initialize LCD


Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off

Lcd_Out(1, 1, "Temperature :");


Lcd_Chr(2,8,223); // Different LCD displays have different
// char code for degree
Lcd_Chr(2,9,'C'); // Display "C" for Celsius

temp_res = 0;
do {
temp_res = ADC_Get_Sample(7); // Get 10-bit results of AD conversion
temp = (temp_res * VREF)/10.240; // Calculate temperature in Celsius
// change Vref constant according
// to the power supply voltage
FloatToStr(temp, txt); // Convert temperature to string
txt[4] = 0;
Lcd_Out(2,3,txt); // Write string in second row
Delay_ms(300);
} while(1);
}
5. Bibliografie

S-ar putea să vă placă și