Documente Academic
Documente Profesional
Documente Cultură
Termostat digital
Sa se proiecteze un sistem de masurare a temperaturii comandat de un microcontroler tip
Atmega128. Sistemul va comanda un agregat de racire in cazul in care temperatura ambianta
este mai mare decat o temperatura presetata + 0.5 °C, sau un agregat de incalzire atunci cand
temperatura scade sub Tset – 0.5.
Sistemul are urmatoarele caracteristici:
• gama de temperaturi masurate si reglate intre 0 – 100 °C
• temperatura afisata pe un afisaj cu leduri pe 3 digiti
• 2 butoane de reglare a temperaturii cu posibilitatea modificarii temperaturii setate: la
apasarea unuia dintre butoane aparatul intra in modul de setare. Daca timp de 5
secunde nu se apasa nici un buton se revine la temperatura reala.
Afisajul contine de asemenea 2 leduri ce indica modul de afisare(real sau setare).
Se vor folosi :
1. afisaje cu leduri cu anod sau catod comun.
2. microcontroler Atmega128
3. traductori de temperatura LM335
Temperaturile se vor afisa in grade C.
6
1 2
4 7
5
3
8
Senzorul de temperatura
Adaptorul de semnal
+5V LT1013
3 V+ +5V
+
1 5 +
OUT +
2 7 Ai (i=1..3)
- OUT
V- 6
-
R6 - R3 Rv 2
+5V R4 Rv 3
36k 33k 1k
2k4
0k5 R5 R2
2k 10k
Afisajul
Se vor folosi 3 afisaje cu leduri de 7 segmente pentru afisarea temperaturii in gama 0 - 100°C.
Acestea vor fi alimentate prin 3 tranzistoare npn care au rolul de intrerupatoare polarizate in
baza de pinii portului A al microcontrolerului. De asemenea la portul A vor fi conectate 4
leduri ce vor semnala modul de afisare real/setare si comanda de racire/incalzire.
Selectia segmentelor celor 3 digiti se va face prin portul B conectand cele 3 afisaje la o
magistrale, aceasta avand avantajul economiei de curent.
Pentru a aprinde un segment pinul corespunzator al portului B va trece pe nivelul 0. Punctul
din coltul dreapta jos va fi conectat la pinul cel mai semnificativ al portului, el nefiind folosit.
a
f b
g
e c
d
Descrierea porturilor:
Port A:
• PIN0…PIN2 comanda tranzistoarelor
• PIN3 ledul de setare a temperaturii
• PIN4 ledul de afisare a temperaturii ambiante
• PIN5 ledul ce semnaleaza comanda de racire
• PIN6 ledul ce semnaleaza comanda de incalzire
Port B:
• PIN0…PIN7 selectia segmentelor afisajului
Port C:
• PIN0 butonul de crestere a temperaturii cu o unitate
• PIN1 butonul de scadere a temperaturii cu o unitate
Port D:
• PIN0 comanda racirea
• PIN1 comanda incalzirea
Temperatura setata se inregistreaza in EEPROM pentru persistenta. Programul are o
dimensiune de 5778 octeti ce ocupa 4.4% din memoria de program. Programul a fost compilat
cu AVR-GCC 3.4.6 si simulat cu AVR Studio 4.12 SP2 utilizand WinAVR(GNU-gdb 6.4.0)
ca debugger si builder extern.
Vcc=5V
0
100nF L1
10uH
52
21
ATmega128 1k*3
25 51 2N1069 2N1069 2N1069
VCC
VCC
26 (SCL/INT0) PD0 PA0 (AD0) 50
27 (SDA/INT1) PD1 PA1 (AD1) 49
28 (RxD1/INT2) PD2 PA2 (AD2) 48
29 (TxD1/INT3) PD3 PA3 (AD3) 47 0
1 30 (IC1) PD4 PA4 (AD4) 46
LM335 31 (XCK1) PD5 PA5 (AD5) 45 0
R9 R9 32 (T1) PD6 PA6 (AD6) 44
0 (T2) PD7 PA7 (AD7) 220*4 0
100 100 Incalzire
2 10 0
3 (RxD0/PDI) PE0 PB0 (SS) 11
Racire (TxD0/PDO) PE1 PB1 (SCK) 150*8
10k 4 12
5 (XCL0/AIN0) PE2 PB2 (MOSI) 13
6 (OC3A/AIN1) PE3 PB3 (MISO) 14 sute zeci unitati
4
8
LT1013A 7 (OC3B/INT4) PE4 PB4 (OC0) 15
3 8 (OC3C/INT5) PE5 PB5 (OC1A) 16
+ (T3/INT6) PE6 PB6 (OC1B)
1 9 17
2 (IC3/INT7) PE7 PB7 (OC2/OC1C)
SW2 -
61 35
(ADC0) PF0 PC0 (A8)
13
SW1 60 36
59 (ADC1) PF1 PC1 (A9) 37
58 (ADC2) PF2 PC2 (A10) 38
57 (ADC3) PF3 PC3 (A11) 39
0 (TCK/ADC4) PF4 PC4 (A12)
56 40
55 (TMS/ADC5) PF5 PC5 (A13) 41
54 (TDO/ADC6) PF6 PC6 (A14) 42
(TDI/ADC7) PF7 PC7 (A15)
R8 R10 64 20
4.7k 4.7k AVCC RESET
62 1 10k
AREF PEN
33 24
34 (WR) PG0 XTAL1
43 (RD) PG1 4MHz Y 1
18 (ALE) PG2
19 (TOSC2) PG3 23
0 (TOSC1) PG4 XTAL2
GND
GND
GND
C3 C2
27pF 27pF
63
53
22
000 0