Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul constă într-un aparat care poate măsura:
- tensiuni
- curenți
- rezistențe
Pentru a realiza măsurătorile se folosesc pinii de ADC ai microcontroller-ului Atmega324PA. Afișarea informațiilor se face prin intermediul unui LCD.
Schema Bloc:
Lista de componente:
- shield LCD 16×2
- switch – uri
- fire
- pin headere
- rezistențe de diferite valori
- tranzistori NMOS și PMOS
- amplificator operațional MCP601
- sonde de multimetru
- stripboard
- placa de bază
Cele 3 module pentru măsurarea diferitelor mărimi sunt împărțite astfel:
1. modulul de tensiune care poate măsura între 0 și 12 V. Pentru a putea face aceste măsurători de tensiune, intrarea va trece printr-un divizor rezistiv (rezistență de 1Mohm, două rezistențe în serie pentru a obține 220Kohmi).
2. modulul de curent prin care voi încerca să măsor curenți între 0 și 250mA.
3. modulul pentru măsurarea rezistențelor în intervalul 0 – 10 Kohmi. Rezistența care urmează a fi măsurată va face parte dintr-un divizor de tensiune alimentat la 5V. Cealaltă rezistență va avea o valoare cunoscută (10kohmi pentru intervalul 500 ohmi – 10k ohmi și 167 ohmi pentru măsurarea rezistențelor mai mici de 500 ohmi - 1 kohm în paralel cu 200 ohmi; cei 200 de ohmi s-au obținut prin înserierea a 4 rezistențe de 50 ohmi fiecare).
Schemă electrică:
Output-ul multimetrului este afișat cu ajutorul LCD-ului, iar conexiunea acestuia cu microcontroller-ul o voi face 4 bit mode.
Pinii DB4, DB5, DB6 și DB7 ai LCD vor fi conectați printr-un header la portul C.
Pentru calculul rezistenței folosesc formula de la divizorul rezistiv și sin ecuatia obtinuta scot rezistenta necunoscuta.
De asemenea, comutarea între cele 3 module pentru măsurare se va face cu ajutorul unor butoane (activând în acest fel și unul din canalele convertorului analog digital). Tensiunea de referință pentru ADC-ul microcontroller-ului va fi 2.5V; range-ul fiind 0V-20V va trebui să micșorez tensiunea de 9 ori pentru a mă încadra între 0 și 2.5 (am ales sa micșorez de 9 ori deoarece divizorul este format dintr-o rezistență de 1M și o rezistență de 120K, astfel că pentru 20V obțin 2.14V E (0, 2.5)V).
Funcțiile pentru LCD-ul 16×2 au fost cel din laboratorul 4.
Am implementat funcții separate pentru inițializarea ADC-ului, citirea valorii măsurate pe ADC și pentru realizarea calculelor/conversiilor în cazul fiecărui modul.
Verific starea pinilor pe care am conectat butoanele pentru a vedea ce modul se folosește la un moment dat.
Eroarea pe care o aveam atunci când măsuram ADC-ul, am încercat să o compensez printr-o calibrare a acestuia, folosind două puncte (practic, două valori de intrare și două valori măsurate) pentru a calcula parametrii dreptei pe care ar trebui să se afle punctele respective.
Trecerea de pe o scară pe alta a modulului de rezistențe se face verificând ADC-ul măsurat (în funcție de praguri, trec pe cealaltă scară: overflow, underflow).
Proiectul este funcțional.
Am obținut rezultatul final:
Acest proiect a fost unul provocator din punctul meu de vedere.
Cea mai mare parte a timpului am petrecut-o calibrând ADC-ul pentru a obține niște valori cât mai aproape de realitate, ceea ce s-a și întâmplat în cele din urmă.
1. https://www.draw.io - realizare schemă bloc
2. https://en.wikipedia.org/wiki/Multimeter
3. 3364.general_adc_calibration.pdf
4. http://www.atmel.com/images/Atmel-8272-8-bit-AVR-microcontroller-ATmega164A_PA-324A_PA-644A_PA-1284_P_datasheet.pdf