Voltmetru pe PIC16F676 - un articol în care voi vorbi despre auto-asamblarea unui voltmetru digital DC cu o limită de 0-50V. Articolul oferă un circuit voltmetru pe PIC16F676, precum și o placă de circuit imprimat și firmware. Voltmetrul folosit pentru a organiza indicația în.
Specificatiile voltmetrului:
- Rezoluția de afișare a rezultatului măsurării este de 0,1 V;
- Eroare 0,1 ... 0,2V;
- Tensiunea de alimentare a voltmetrului este de 7 ... 20V.
- Consum mediu de curent 20mA
Designul se bazează pe schema autorului N. Zayets din articolul „Milivoltmetru”. Autorul însuși este foarte generos și împărtășește de bunăvoie dezvoltările sale, atât tehnice, cât și software. Cu toate acestea, unul dintre dezavantajele semnificative ale designului său (în opinia mea) este baza elementului învechit. A cărui utilizare, în prezent, nu este pe deplin rezonabilă.
Figura 1 prezintă o diagramă schematică a versiunii autorului.
Voi trece pe scurt peste nodurile principale ale circuitului. Chip DA1 este un regulator de tensiune reglabil, a cărui tensiune de ieșire este reglată de un rezistor reglat R4. Această soluție nu este foarte bună, deoarece este necesară o sursă separată de 8V DC pentru funcționarea normală a voltmetrului. Și această tensiune trebuie să fie constantă. Dacă tensiunea de intrare se modifică, atunci tensiunea de ieșire se va schimba, iar acest lucru nu este acceptabil. În practica mea, o astfel de schimbare a dus la epuizarea microcontrolerului PIC16F676.
Rezistoarele R5-R6 este un divizor al tensiunii de intrare (măsurată). DD1 - microcontroler, HG1-HG3 - trei indicatoare separate cu șapte segmente, care sunt asamblate într-o singură magistrală de informații. Utilizarea indicatoarelor separate cu șapte segmente complică foarte mult placa de circuit imprimat. Nici această soluție nu este foarte bună. Da, iar consumul lui ALS324A este decent.
Figura 2 prezintă o diagramă a circuitului voltmetrului digital reproiectată.
Figura 2 - Schema schematică a unui voltmetru DC.
Acum luați în considerare ce modificări au fost aduse schemei.
În locul unui stabilizator integrat reglabil KR142EN12A, s-a decis să se utilizeze un stabilizator integral LM7805 cu o tensiune de ieșire constantă de + 5V. Astfel, a fost posibilă stabilizarea fiabilă a tensiunii de funcționare a microcontrolerului. Un alt plus al acestei soluții este posibilitatea de a utiliza tensiunea de intrare (măsurată) pentru alimentarea circuitului. Dacă, desigur, această tensiune este mai mare de 6V, dar mai mică de 30V. Pentru a vă conecta la tensiunea de intrare, trebuie doar să închideți jumperul (jamper). Dacă stabilizatorul în sine este foarte fierbinte, acesta trebuie instalat pe un radiator.
Pentru a proteja intrarea ADC de supratensiune, la circuit a fost adăugată o diodă Zener VD1.
Rezistorul R4 împreună cu condensatorul C3 sunt recomandate de producător pentru o resetare fiabilă a microcontrolerului.
În loc de trei indicatori separați cu șapte segmente, a fost utilizat un indicator comun.
Pentru a descărca picioarele individuale ale microcontrolerului, au fost adăugate trei tranzistoare.
În tabelul 1, puteți găsi întreaga listă de piese și posibila înlocuire a acestora cu un analog.
Desemnarea poziției | Nume | Analogic/de înlocuire |
C1 | Condensator electrolitic - 470mkFh35V | |
C2 | Condensator electrolitic - 1000uFx10V | |
C3 | Condensator electrolitic - 10mkFh25V | |
C4 | Condensator ceramic - 0.1mkFx50V | |
DA1 | Stabilizator integral L7805 | |
DD1 | Microcontroler PIC16F676 | |
HG1 | Indicator LED cu 7 segmente KEM-5631-ASR (OK) | Orice altă putere mică pentru indicație dinamică și potrivită pentru conectare. |
R1* | Rezistor 0,125W 91 kOhm | Dimensiunea SMD 0805 |
R2* | Rezistor 0,125 W 4,7 kOhm | Dimensiunea SMD 0805 |
R3 | Rezistor 0,125 W 5,1 ohmi | Dimensiunea SMD 0805 |
R4 | Rezistor 0,125W 10 kOhm | Dimensiunea SMD 0805 |
R5-R12 | Rezistor 0.125W 330 Ohm | Dimensiunea SMD 0805 |
R13-R15 | Rezistor 0,125 W 4,3 kOhm | Dimensiunea SMD 0805 |
VD1 | Dioda Zener BZV85C5V1 | 1N4733 |
VT1-VT3 | Tranzistor BC546B | KT3102 |
XP1-XP2 | Fixați antetul pe panou | |
XT1 | Bloc de borne pentru 4 contacte. |
Figura 3 - Placă de voltmetru imprimată pe PIC16F676 (partea conductorilor).
Figura 4 - partea plăcii de circuit imprimat a plasării pieselor.
Figura 4 - Partea imprimată a amplasării pieselor (tabla din figură nu este la scară).
În ceea ce privește firmware-ul, modificările nu au fost semnificative:
- S-a adăugat dezactivarea cifrei nesemnificative;
- Timpul pentru emiterea rezultatului la indicatorul LED cu șapte segmente a fost mărit.
Un voltmetru asamblat din piese de lucru cunoscute începe să funcționeze imediat și nu necesită ajustare. În unele cazuri, devine necesară ajustarea preciziei măsurătorii selectând rezistențele R1 și R2.
Aspectul voltmetrului este prezentat în figurile 5-6.
Figura 5 - Aspectul voltmetrului.
Figura 6 - Aspectul voltmetrului.
Voltmetrul considerat în articol a fost testat cu succes acasă, a fost testat într-o mașină alimentată de o rețea de bord. Nu au fost accidente. Poate fi grozav pentru utilizare pe termen lung.
Videoclip interesant
Lasă-mă să rezum. După toate modificările, sa dovedit deloc un voltmetru digital DC prost pe microcontrolerul PIC16F676, cu o limită de măsurare de 0-50V. Tuturor celor care vor repeta acest voltmetru, le doresc componente reparabile și mult succes în producție!
Ampervoltmetrul este proiectat pentru a măsura curentul 0-9.99A și tensiunea 0-100V cu o rezoluție de 0.01A și, respectiv, 0.1V.
Amplificatorul operațional poate fi înlocuit cu LM2904, afișajul LCD trebuie să fie pe controlerul HD44780. Numărul de caractere este 2x8... Puteți utiliza și un afișaj de 2x16 caractere, dar în acest caz cea mai mare parte a afișajului va rămâne nefolosit. Într-o astfel de situație, în dispozitivul în care va fi încorporat ampervoltmetrul, se recomandă tăierea unei ferestre numai sub partea de lucru a afișajului pe care vor fi afișate informații. Important! Direct pe afișaje, de regulă, un rezistor de limitare a curentului este instalat în circuitul de alimentare cu iluminare de fundal. Dacă nu există nicio rezistență, atunci trebuie să-l instalați singur în circuitul deschis, mergând la LED +. Rezistența rezistenței 6 ... 100 Ohm, în funcție de luminozitatea dorită a luminii de fundal ...
Configurarea dispozitivului este simplă: mai întâi, cu rezistorul „contrast”, setăm contrastul de afișare necesar, iar cu rezistențele „set U” și „set I”, ajustăm precizia citirilor voltmetrului și ampermetrului. Este de dorit să se efectueze reglajul la limitele superioare ale citirilor voltmetrului și ampermetrului. Dacă după reglare ampermetrul fără sarcină afișează vreo valoare de curent, selectăm amplificatorul operațional astfel încât valoarea curentului să fie de 0,00A fără sarcină!
Dispozitiv foto!
Conectarea ampermetrului la sursa de alimentare.
Lista elementelor radio
Desemnare | Tip | Denumirea | Cantitate | Notă | Magazin | Blocnotesul meu |
---|---|---|---|---|---|---|
MK PIC pe 8 biți | PIC12F675 | 1 | La blocnotes | |||
Registrul de deplasare | CD74HC164 | 1 | La blocnotes | |||
Amplificator operațional | LM358 | 1 | Înlocuire: LM2904 | La blocnotes | ||
Regulator liniar | LM7805CT | 1 | La blocnotes | |||
Ecran LCD | HD44780 | 1 | 8x2 | La blocnotes | ||
C1, C2, C4, C5 | Condensator | 0,1 uF | 4 | La blocnotes | ||
C3 | condensator electrolitic | 100uF | 1 | La blocnotes | ||
Rezistor | 100 ohmi | 2 | La blocnotes | |||
Rezistor | 91 kOhm | 1 | La blocnotes | |||
Rezistor | 5,1 kOhmi | 1 | La blocnotes | |||
Rezistor | 680 ohmi | 1 | La blocnotes | |||
Rezistor | 0,01 ohmi | 1 |
Schema cablajului voltmetrului
Schema schematică a unui voltmetru pe MK
Schema schematică a unui voltmetru pe PIC16F676 - a doua opțiune
PP voltmetru pe PIC16F676
Acesta este un voltmetru simplu de până la 30 de volți bazat pe PIC16F676 microcontroler cu ADC de 10 biți și trei indicatori LED cu 7 segmente. Puteți utiliza acest circuit pentru a măsura până la 30VDC. PIC16F676 sta la baza acestei scheme. ADC intern al microcontrolerului cu rezistențe divizor de tensiune este utilizat pentru a măsura tensiunea de intrare. Apoi, afișajul cu 7 segmente a anodului de comunicație cu 3 cifre este utilizat pentru a afișa tensiunea finală convertită. Pentru a reduce consumul de curent, în circuit este utilizată indicația dinamică. Puteți descărca firmware pentru diferiți indicatori aici.
Funcționarea instrumentului
Un divizor de tensiune este asamblat pe rezistențele R1 și R2, un rezistor de construcție cu mai multe ture R3 servește la calibrarea voltmetrului. Condensatorul C1 protejează voltmetrul de zgomotul tranzitoriu și netezește semnalul de intrare. Dioda Zener VD1 servește la limitarea tensiunii de intrare la intrarea microcontrolerului, astfel încât intrarea controlerului să nu se ardă atunci când tensiunea de intrare este depășită. Citirea calculelor
Un ADC de 10 biți vă permite să obțineți numărul maxim de 1023. Deci cu 5 volți obținem 5/1023 = 0,0048878 V / D, ceea ce înseamnă că dacă valoarea este 188, atunci tensiunea de intrare este: 188 x 0,0048878 = 0,918 volți. Cu un divizor de tensiune, tensiunea maximă este de 30V, deci toate calculele vor fi 30/1023 = 0,02932 volți/div. Deci, dacă acum obținem 188, atunci 188 x 0,02932 = 5,5 volți. Puteți simplifica și mai mult și reduce costul circuitului prin înlocuirea indicatorilor ALS cu unul simplu. Voltametru pe PIC16F676
Acest proiect este un ampermetru de curent continuu (sau voltampermetru dacă preferați). Interval - până la 99,9 V și 9,9 A (sau 99,9 A, în funcție de firmware).
Particularitatea sa constă în faptul că este construit pe un microcontroler comun PIC16F676, cu toate acestea, în ciuda acestui fapt, are capacitatea de a afișa simultan tensiunea și curentul măsurat pe indicatoare cu șapte segmente de patru caractere (sau trei caractere), ambele cu un anod comun și cu un catod comun (setați un rezistor). Când utilizați un afișaj cu patru caractere, ultimul segment afișează caracterul „U” pentru tensiune și „A” pentru curent. Ampervoltmetrul poate funcționa cu un singur indicator, în timp ce folosind butonul „B” puteți alege ce va fi afișat pe el - tensiune sau curent. În cazul în care ambii indicatori sunt setați, acest buton poate fi folosit pentru a le schimba atribuirea. Butonul „H” este folosit pentru a corecta citirile ampermetrului și pentru a alinia liniaritatea acestor citiri, dacă este necesar.
până în februarie 2014: Dezvoltarea poate fi găsită acum la:
Diagrama voltametrului este prezentată mai jos. După cum sa menționat deja, este construit pe microcontrolerul comun PIC16F676, pe care, în special, sunt asamblate voltmetre și ampermetre simple.
Faceți clic pe diagramă pentru a mări
Având în vedere numărul limitat de pini pentru acest MK, este utilizat registrul 74HC595. Acest microcircuit nu are analogi cu același pinout, dar nu este rar și este adesea folosit în astfel de circuite pentru a conecta indicatoarele la MK. Pentru a proteja ieșirile MK de suprasarcină și pentru a crește luminozitatea indicatoarelor, se folosesc comutatoare pe tranzistoare. Când se utilizează indicatoare cu un catod comun, este necesar să se utilizeze tranzistori cu o structură diferită, conectându-le colectorii nu la + 5V, ci la masă, în timp ce rezistorul de la pinul 11 al microcontrolerului trebuie rearanjat într-o poziție diferită. Este posibil să fie nevoie să potriviți rezistențele la ieșirea registrului și în bazele tranzistorilor pentru a se potrivi indicatorii și tranzistoarele dvs.
După cum am menționat mai devreme, butonul „B” vă permite să schimbați alocarea indicatorilor în cazul în care există doi dintre ei. Dacă există un singur indicator, atunci acest buton poate alterna afișarea tensiunii și curentului. Când apăsați butonul „H”, indicatoarele vor clipi. În timp ce acestea clipesc, puteți folosi butoanele „B” și „H” pentru a corecta citirile ampermetrului. După corecție, clipirea se va opri și factorul de corecție va fi scris în memoria nevolatilă. Modul de afișare setat cu butonul „B” este, de asemenea, stocat în memoria nevolatilă.
După pornire, indicatoarele nu încep să lumineze imediat, ci după o întârziere de câteva secunde. Frecvența de schimbare a indicațiilor este de aproximativ 9 Hz.
Una dintre opțiunile plăcii de circuit imprimat pentru patru indicatoare cu un anod comun. În figură, cercurile sunt încercuite în jurul corecțiilor necesare: trebuie să eliminați jumperul care merge la pământ și să adăugați un jumper mic.
fișiere pentru proiect.
Dispozitivul prezentat aici este util dacă aveți o sursă de alimentare cu o tensiune de ieșire de 0-10 V. Aceste limite de măsurare sunt „încorporate” în circuitul prezentat în figură. Se bazează pe un microcontroler Atmega8 (U1) într-un pachet DIP standard. Poate părea greoaie, dar a fost ales datorită popularității sale mari și, de asemenea, pentru că programatorii pentru acest microcontroler sunt foarte des întâlniți. Atmega8 este folosit de majoritatea radioamatorilor și puteți găsi multe circuite cu acest microcontroler pe Internet. Prin urmare, dacă nu vă place acest voltmetru, Atmega8 nu va rămâne inactiv.
Voltmetru digital pe Atmega8. Schema este de bază.
Măsurătorile voltmetrului vor fi afișate pe un indicator digital cu șapte segmente și trei cifre (DISP1). Lasă-mă să-ți dau câteva informații despre asta.
Display digital LED cu 7 segmente
este un indicator format din șapte LED-uri dispuse în forma numărului 8. Prin pornirea sau oprirea LED-urilor (segmentelor) corespunzătoare, puteți afișa numere de la zero la nouă, precum și unele litere. De obicei, mai mulți indicatori digitali sunt utilizați pentru a crea numere cu mai multe cifre - pentru aceasta, indicatorii sunt prevăzuți cu un segment sub formă de virgulă (punct) - dp. Drept urmare, un indicator are 8 segmente, deși sunt numite 7 segmente după numărul de segmente digitale.Fiecare segment al indicatorului este un LED separat care poate fi aprins (aprins) sau stins (neaprins) în funcție de polaritatea tensiunii aplicate acestora. Indicatorii vin atât cu un catod comun, cât și cu un anod comun. Aceasta este o conexiune comună a tuturor LED-urilor (segmentelor). În plus, indicatorii pot conține mai multe cifre, caz în care fiecare cifră este numită cifră sau semn. De exemplu, un indicator cu trei cifre (trei cifre) și șapte segmente conține trei cifre. Este un astfel de indicator care este necesar pentru acest dispozitiv.
Designul folosește un indicator de strălucire roșu GNT-2831BD-11 cu un anod comun. Rezistoarele R1-R8 determină curentul din indicator și, în consecință, luminozitatea acestuia. Rezistența acestora nu trebuie să depășească curentul maxim de ieșire (40 mA), chiar și atunci când toate cele 8 LED-uri sunt aprinse simultan. Circuitul folosește un ADC cu un singur capăt de 10 biți (convertor analog-digital) găsit în AVR. Intervalul valorii de ieșire este 0-999. Când limita acestor valori este atinsă, va apărea simbolul „---”.
Un divizor de tensiune al rezistențelor R9, R10 și R11 este instalat la intrarea voltmetrului (in), oferind un domeniu de măsurare de până la 10 V cu o eroare de 0,01 V. La pinul 23 al microcontrolerului U1, divizorul generează un tensiune care nu trebuie să depășească 2,5 V. Voltmetru de rezistență de intrare aproape de 1mΩ. Pentru a calibra voltmetrul, aplicați o tensiune cunoscută cu precizie la intrarea acestuia și, prin mișcarea rezistenței de reglare R11, obțineți aceleași citiri pe indicator.
Rata de actualizare a voltmetrului este de aproximativ 4 Hz. Circuitul este alimentat de o sursă stabilizată de 5 V. Consumul de curent al dispozitivului este de aproximativ 25 mA (majoritatea consumului cade pe indicator). Plasați componentele C1 și C2 cât mai aproape posibil de microcontroler.
Biții setați corect sunt prezentați în figura de mai jos.
Dacă aveți nevoie de limite de măsurare de până la 100 V, modificați valoarea lui R10 la 9,1 mΩ și R11 la 2,2 mΩ. Apoi veți obține domeniul de măsurare dorit cu o eroare de 0,1 V și o rezistență de intrare de aproximativ 10 mΩ. În acest caz, va trebui, de asemenea, să schimbați locația punctului indicator, astfel încât să fie afișat în spatele a două caractere, și nu în spatele primului, ca în diagramă. Pentru a face acest lucru, lăsați pinul 28 al cipului U1 liber și conectați pinul 27 la firul comun. Acum, în loc de caractere sub forma 0.00, vor fi afișate 00.0.