Proiectul presupune realizarea unui multimetru folosind convertorul analogic-digital al microcontrolerului ATMega16. Acest multimetru va putea să măsoare tensiuni în intervalele 0 - 5 V, 5 V - 50 V, 50 V - 500 V, intensităţi în intervalele 0 - 100 mA, 100 mA - 10 A şi rezistenţe în intervalele 0 - 200 Ω, 200 Ω - 2 kΩ, 2 kΩ - 20 kΩ, 20 kΩ - 200 kΩ. Tensiunile şi intensităţile vor fi măsurate doar în curent continuu.
Mai jos este prezentată schema bloc a proiectului.
Modulul de comutare este foarte important în cadrul acestui proiect. Se va vedea in capitolul următor că acesta este realizat cu ajutorul unor relee. Modulul de comutare este folosit atât pentru a comuta între diferitele funcţii ale multimetrului, între intervalele aceleiaşi funcţii cât şi pentru inversarea intrărilor în cazul unor tensiuni negative sau curenţi negativi (mai greu de făcut).
După modulul de comutare urmează modulele de măsurare, pentru tensiune se va face divizarea acesteia până se va aduce în intervalul 0 - 2,56 V, pentru curent se va măsura tensiunea pe o rezistenţă de valoare mică şi de putere (pentru intervalul 100 mA - 10 A) iar pentru rezistenţă se va genera un curent de valoare fixă după care se va măsura tensiunea căzută pe rezistenţă.
Toate cele trei module de măsurare vor fi conectate la convertorul analogic-digital al microcontrolerului. De asemenea la microcontroler vor mai fi legate şi releele de comutare, butonul pentru schimbarea funcţiei şi afişajul LCD.
Pentru realizarea proiectului sunt necesare următoarele piese:
Mai jos sunt prezentate schemele electrice pentru diversele părţi ale proiectului. Mai sus avem partea de comutare. Acest modul are rolul de stabili funcţia multimetrului, lucru comandat de microcontroler prin intermediul tranzistoarelor şi releelor. Pentru partea de tensiune şi intensitate, una dintre intrări va fi legată la masă, în timp ce pentru partea de măsurare rezistenţe va fi nevoie de ambele intrări. De asemenea primele doua relee (din stânga) sunt folosite pentru a schimba polaritatea în cazul unor tensiuni negative sau curenţi inverşi. Acest modul (de detectare a tensiunilor negative şi a curenţilor inverşi) va fi prezentat ulterior. Schema de mai sus reprezintă modulul de măsurare tensiune. După cum se poate observa, acest modul conţine două relee. Aceste relee sunt folosite pentru schimbarea între diferite nivele de tensiune. Aceste nivele de tensiune sunt:
Schimbarea între diferitele nivele va fi comandată de microcontroler. Pentru fiecare nivel de tensiune, este folosit câte un amplificator operaţional cu rol de repetor, pentru a permite măsurarea precisă şi rapidă a căderilor de tensiune. Aceasta este schema electrică pentru modulul de măsurare intensitate. Se poate observa că există trei niveluri pentru măsurare curent. În toate cazurile se va măsura căderea de tensiune pe o rezistenţă de 0,235Ω 10Watt. Cele trei niveluri sunt:
Ca şi la tensiune, comandarea releelor se va face de către microncontroler. Mai sus este schema electrică pentru modulul de măsurare rezistenţe. Aceasta foloseşte un amplificator operaţional împreună cu un tranzistor npn pentru a genera un curent constant. Valoarea acestui curent este rezulatul împărţirii tensiunii de intrare pe borna + a amplificatorului (am fixat-o la 1,25V printr-un divizor) la valoarea rezistenţei dintre borna - a amplificatorului şi masă. Se folosesc 3 relee pentru a schimba valoarea acestei rezistenţe, aceasta putând avea 4 valori : 100Ω, 1KΩ, 10kΩ şi 100kΩ. Astfel se obţin patru niveluri pentru măsurarea rezistenţelor :
În toate situaţiile se va măsura prin intermediul convertorului analogic digital căderea de tensiune pe rezistenţă, după ce această tensiune este calculată de amplificatorul operaţional în mod diferenţial. De asemenea a mai fost nevoie de un amplificator operaţional în mod repetor pentru a nu influenţa rezistenţa de măsurat. Mai sus este schema în care se leagă LCD-ul 2×16 la portul B al microcontrolerului. Acesta de mai sus este schema electrică în care se arată modul de conectare al tuturor modulelor la microcontroler, atât pentru partea de comandă (prin intermediul portului C) cât şi de măsurare (convertorul analogic digital). În plus faţă de acestea mai apare LCD-ul 2×16 legat la portul B împreună cu potenţiometrul pentru contrast şi un buton pentru selectarea funcţiei legat la PD6.
La schemele de mai sus se adaugă şi schemele electrice pentru realizarea plăcii de bază de aici.
Pentru realizarea codului aplicaţiei voi folosi limbajul C în mediul de dezvoltare AVR Studio 4. Biblioteci şi surse 3rd-party nu cred că voi folosi, poate voi avea nevoie pentru interfaţarea LDC-ului.
Proiectul nu necesită nişte algoritmi şi structuri de date speciali, soft-ul proiectului trebuie doar să schimbe între cele trei funcţii ale multimetrului la apăsarea unui buton, să îşi dea seama când valoarea unei tensiuni coboară sub pragul minim al nivelului curent şi să schimbe nivelul. Acelaşi lucru ar trebui să îl facă şi în momentul în care trece peste pragul maxim. Aş mai vrea să pot schimba din soft şi polaritatea la detecţia unei tensiuni negative sau a unui curent negativ. Practic, prin soft nu trebuie decât să activez convertorul analogic-digital, să setez funcţia, fac eşantionarea (eventual schimb nivelul şi refac eşantionarea) după care voi face afişarea pe LCD.
O mare parte din cod va fi codul pentru interfaţarea LCD din laboratorul 3. Probabil că o să mă inspir şi din codul pentru folosirea convertorului analogic-digital din laboratorul 4.
La sectiunea de Download se poate gasi codul in varianta finala.
Sursele se pot lua de aici.
Poză cu placa de bază, realizată în etapa I Poză cu afişajul LCD, potenţiometru pentru ajustarea contrastului şi buton pentru schimbarea funcţiei Poză cu releele pentru comutare, divizoarele de tensiune pentru măsurare tensiune, rezistenţele de putere pentru măsurare intensitate … Poze cu plăcile alăturate şi montate
În forma sa finală, proiectul este unul functional. El poate măsura tensiuni între 0 si 500 V, intensităţi între 10 mA - 10 A (teoretic, practic a fost testat pana la 1 A) şi rezistenţe între 1Ω şi 200kΩ. Pentru alimentarea multimetrului sunt necesare doua tensiuni : 5 V pentru partea logică, alimentarea releelor şi a unor amplificatoare operaţionale şi una mai mare de 7 V (am folosit una de 12 V) pentru alimentarea unui amplificator operaţional. Am fost nevoit sa folosesc două tensiuni deoarece un amplificator operaţional nu poate repeta tensiuni mai mare decât Vcc - 1.5V, astfel încât nu putea repeta 5V alimentat la Vcc.
Eventuale îmbunătăţiri care pot fi aduse multimetrului ar fi :
În concluzie, este un proiect usor de realizat, nu necesită cunoştinţe avansate de electronică sau programare microcontrolere, dar realizarea lui necesită timp destul de mult.
Majoritatea resurselor hardware folosite în acest proiect sunt proprii. Singurul lucrul inspirat de pe internet a fost schema generatorului de curent (evident împreună cu placa de bază) :
La capitolul resurse software :
La cele de mai sus se adaugă şi :