Bilius Toma 433AProiect BSADTermostat digitalSa 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.Sistemu are urmatoarele caracteristici:gama de temperaturi masurate si reglate intre 0 100 Ctemperatura afisata pe un afisaj cu leduri pe 3 digiti2 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 LM335Temperaturile se vor afisa in grade C.Caracteristici generale Atmega128:1.microcontroler pe 8 biti cu arhitectura RISC2.Tensiuni de operare in gama 4.5-5.5 V3.Convertor analog-digital4.32x8 registre de uz general5.128 kb memorie flash reprogramabila6.4k EEPROM7.4k SRAM intern8.2 timere pe 8 biti si 2 timere extinse pe 16 biti9.133 instructiuni cu durata intre 1-3 cicli.Schema bloc1.Senzor de temperatura LM3352.Amplificator3.Taste4.Convertor analog-digital cu conversii succesive5.Microcontroler Atmega1286.Afisaj cu leduri cu 3 digiti + indicatori de comanda si modul de afisare(Tset/Treal)7.Agregat de racire8.Agregat de incalzireSenzorul de temperaturaAcest senzor functioneaza intre temperaturile -40oC si 100oC pastrandu-si liniaritatea si impedanta scazuta. Din cele 3 forme disponibile s-a ales SO-8 cu montare pe suprafata, avand o rezistenta termica scazuta fata de celelalte variante. Circuitul are o impedanta dinamica mai mica de 1? si functioneaza intre 0.45mA si 5mA fara degradari ale perfomantelor. Calibrat la 25C LM335 are o eroare mai mica de 1C la o variatie a temperaturii de 100C (tipic 0.5C). Are o iesire liniara in tensiune care variaza in functie de tempeatura cu 10mV/K.Rezistenta R7 este folosita pentru calibrarea la 25oC trebuind sa asigure la iesiere tensiunea de 2.982V pentru aceasta temperatura.Legea de variatie: , unde T este temperatura in grade Kelvin.Rezulta Tensiune de iesire la +100C: 3.732VTensiune de iesire la -40C: 2.332VAdaptorul de semnalAmplificatorul LT1013 este primul AO dual de precizie cu 8 pini. Poate fi alimentat de la o singur surs de 5V. Gama intrrii de mod comun poate include si masa. Ieirea poate oscila in limita a civa mV de la masa.Deoarece traductorul de temperatura LM335 are o panta de 10mV/oK rezulta ca, la capetele de scala ale termometrului (-40oC si 100oC) tensiunile de iesire vor avea valorile +2.332V (pt -40oC) si 3.732V (pt100oC) asadar excursia de tensiune va fi de 1.400V.Acest adaptor are rolul de a mari excursia tensiunii de la iesire de la 1.4V la 5V deoarece intrarea analogica a convertorului este cuprinsa intre valorile 0...5V. Amplificarea acestui adaptor trebuie sa fie A=?Uf/?Ui=5/1.4=3.5714 pe fiecare grad Celsius. Amplificarea este: A=(R3+Rv2)/R2R6?R3+Rv2. Pentru R2=10k? avem: R3+Rv2=35.714k rezulta ca R3=33K, iar Rv2=5K Se alege R6=36k. Convertorul analog-digitalConvertorul analog-digital oferit de Atmega128 are urmatoarele caracteristici:rezolutie de 10 bitiprecizie de 2 LSBtimp de conversie intre 13-260s8 canale de intrare multiplexateposibilitatea de ajustare stanga a rezultatului din registrul ADCexcursia de tensiune 0-VCCmoduri "Free-Running" sau conversie unicaintrerupere la terminarea unei conversiiAcesta primeste pe intrarea ADC0 o tensiune Vin?(0..5V) si este alimentat la Vref=5V.Rezultatul conversiei pentru un nivel de tensiune de 0V este ADC = 0x00 iar pentru 5V 0xFF.Pentru a activa ADC-ul se seteaza bitul ADEN din registrul ADCSRA. Implicit rezultatul va fi aliniat la dreapta (ADCL apoi ADCH). Pentru a incepe o conversie se seteaza ADSC. Acesta va fi resetat automat la finalizare cand ADIF = 1.Circuitul prezinta un multiplexor de selectie a canalului de intrare ce va fi setat in registrul ADMUX.Ultimii 3 biti din ADCSRA sunt destinati setarii frecventei de esantionare(pre-scale). Circuitul de aproximatii succesive necesita o frecventa intre 50 kHz si 200 kHz iar introducerea unei frecvente mai mari duce la scaderea preciziei. In acest caz s-a ales un factor de pre-scale de 32 (ck/32 = 125 kHz).AfisajulSe vor folosi 3 afisaje cu leduri de 7 segmente pentru afisarea temperaturii in gama 0 - 100C. 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.Descrierea porturilor:Port A: PIN0PIN2 comanda tranzistoarelorPIN3 ledul de setare a temperaturiiPIN4 ledul de afisare a temperaturii ambiantePIN5 ledul ce semnaleaza comanda de racirePIN6 ledul ce semnaleaza comanda de incalzirePort B:PIN0PIN7 selectia segmentelor afisajuluiPort C:PIN0 butonul de crestere a temperaturii cu o unitatePIN1 butonul de scadere a temperaturii cu o unitatePort D:PIN0 comanda racireaPIN1 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.
Referat Fizica. Termostat digital
label Referate calendar_month 12 Mai 2007, 00:00 autorenew 29 Sep 2025, 16:56 history_edu Gabi Dobocan
Noutati











