Vienkāršs modulārs maiņstrāvas voltmetrs uz PIC16F676. Vienkāršs iebūvēts ampēru voltmetrs uz PIC16F676 "dari pats" tīkla voltmetrs uz mikrokontrollera

Pagājušajā vasarā pēc drauga lūguma izstrādāju shēmu digitālajam voltmetram un ampērmetram. Saskaņā ar pieprasījumu šai mērierīcei jābūt ekonomiskai. Tāpēc par informācijas attēlošanas indikatoriem tika izvēlēts vienas līnijas šķidro kristālu displejs. Kopumā šis ampērvoltmetrs bija paredzēts, lai uzraudzītu automašīnas akumulatora izlādi. Un akumulators, kas darbojās uz neliela ūdens sūkņa motora, beidzās. Sūknis sūknēja ūdeni caur filtru un atkal pāri oļiem atgrieza to nelielā lauku mājas dīķī.

Vispār es neiedziļinājos šīs dīvainības detaļās. Pirms neilga laika šis voltmetrs atkal nonāca manās rokās, lai pabeigtu programmu. Viss darbojas kā paredzēts, bet ir vēl viens lūgums uzstādīt LED, kas norādītu uz mikrokontrollera darbību. Fakts ir tāds, ka kādu dienu iespiedshēmas plates defekta dēļ mikrokontrollerim pazuda jauda, ​​dabiski tas pārstāja darboties, un, tā kā LCD displejam ir savs kontrolieris, tajā iepriekš ielādētie dati, spriegums akumulators un sūkņa patērētā strāva palika indikatora ekrānā. Iepriekš nebiju domājis par tik nepatīkamu atgadījumu, tagad man šī lieta būs jāņem vērā ierīču un to shēmu programmā. Pretējā gadījumā jūs apbrīnosiet skaistos skaitļus displeja ekrānā, bet patiesībā viss jau sen ir izdedzis. Kopumā akumulators bija pilnībā izlādējies, kas, kā viņš teica, draugam toreiz bija ļoti slikti.
Ierīces shēma ar indikatora LED ir parādīta attēlā.

Ķēdes pamatā ir PIC16F676 mikrokontrolleris un LCD indikators. Tā kā tas viss darbojas tikai siltajā sezonā, indikatoru un kontrolieri var iegādāties vislētāk. Arī izvēlētais darbības pastiprinātājs bija piemērots - LM358N, lēts un ar darba temperatūras diapazonu no 0 līdz +70.
Lai pārveidotu analogās vērtības (digitalizētu) spriegumu un strāvu, tiek izvēlēts stabilizēts mikrokontrollera barošanas spriegums +5 V. Tas nozīmē, ka ar analogā signāla desmit bitu digitalizāciju katrs bits atbildīs - 5V = 5000 mV = 5000/1024 = 4,8828125 mV. Šī vērtība programmā tiek reizināta ar 2, un mēs iegūstam 9,765625 mV uz vienu binārā koda bitu. Un, lai LCD ekrānā pareizi parādītu informāciju, mums ir nepieciešams, lai viens cipars būtu vienāds ar 10 mV vai 0,01 V. Tāpēc ķēdē ir paredzētas mērogošanas shēmas. Spriegumam tas ir regulējams dalītājs, kas sastāv no rezistoriem R5 un R7. Lai labotu strāvas rādījumus, tiek izmantots mērogošanas pastiprinātājs, kas samontēts uz viena no DA1 - DA1.2 mikroshēmas darbības pastiprinātājiem. Šī pastiprinātāja pārraides koeficients tiek regulēts, izmantojot 33k rezistoru R3. Labāk, ja abi regulēšanas rezistori ir daudzpagriezienu. Tādējādi, izmantojot tieši +5 V spriegumu digitalizācijai, signālu tieša pieslēgšana mikrokontrollera ieejām ir aizliegta. Atlikušais darbības pastiprinātājs, kas savienots starp R5 un R7 un DD1 mikroshēmas RA1 ieeju, ir atkārtotājs. Kalpo, lai samazinātu trokšņu un impulsu traucējumu ietekmi uz digitalizāciju, pateicoties simtprocentīgai negatīvai, no frekvences neatkarīgai atgriezeniskajai saitei. Lai samazinātu troksni un traucējumus, pārveidojot pašreizējo vērtību, tiek izmantots U formas filtrs, kas sastāv no C1, C2 un R4. Vairumā gadījumu C2 nav jāinstalē.

Kā strāvas sensors tiek izmantots rezistors R2, mājas rūpnīcas šunts 20A - 75ShSU3-20-0,5. Ja strāva plūst cauri 20A šuntam, pāri tam kritīsies 0,075 V spriegums (saskaņā ar šunta datu lapu). Tas nozīmē, ka, lai kontroliera ieejā būtu divi volti, pastiprinātāja pastiprinājumam jābūt aptuveni 2V/0,075 = 26. Aptuveni tas ir tāpēc, ka mūsu digitalizācijas izšķirtspēja ir nevis 0,01 V, bet 0,09765625 V. Protams, tā ir iespējams izmantot paštaisītus šuntus, regulējot DA1.2 pastiprinātāja pastiprinājumu. Šī pastiprinātāja pastiprinājums ir vienāds ar rezistoru R1 un R3 vērtību attiecību, Kus = R3/R1.
Un tāpēc, pamatojoties uz iepriekš minēto, voltmetra augšējā robeža ir 50 volti, un ampērmetram ir 20 ampēri, lai gan ar šuntu, kas paredzēts 50 ampēriem, tas mērīs 50 A. Tātad to var veiksmīgi instalēt citās ierīcēs.
Tagad par modifikāciju, kas ietver indikatora LED pievienošanu. Programmā ir veiktas nelielas izmaiņas, un tagad, kamēr kontrolleris darbojas, LED mirgo ar frekvenci aptuveni 2 Hz. Lai ietaupītu naudu, LED spīdēšanas laiks tika izvēlēts 25 ms. Displejā būtu bijis iespējams parādīt mirgojošu kursoru, taču viņi teica, ka ar LED tas būtu skaidrāk un efektīvāk. Izskatās, ka tas ir viss. Veiksmi. K.V.Yu.


.

Viena no iespējām gatavai ierīcei, ko ieviesis Aleksejs. Diemžēl uzvārdu nezinu. Paldies viņam par darbu un fotogrāfijām.


Šī ierīce ir ieviesta uz PIC16F676, izmantojot iebūvētu desmit bitu ADC. Voltmetrs var izmērīt spriegumu līdz 30 V līdzstrāvai, un to var izmantot galda barošanas blokos vai dažādos instrumentu paneļos.
Sprieguma attēlošanai tiek izmantoti trīs septiņu segmentu indikatori ar kopēju anodu. Informācija uz indikatoriem tiek parādīta dinamiski (multipleksēšana), atsvaidzes intensitāte ir aptuveni 50 Hz.

Voltmetra ķēde:

Dalītāja izejas spriegums
Pēc noklusējuma PIC mikrokontrollerī ADC atsauces spriegums ir iestatīts uz VCC (šajā gadījumā +5 V).
Ir nepieciešams izgatavot sprieguma dalītāju, kas samazinās spriegumu no 30 V līdz 5 V. Ir viegli aprēķināt Vin / 6 ==> 30/6 = 5, dalījuma koeficients ir 6. Tāpat dalītājam jābūt ar lielu pretestību, lai pēc iespējas mazāk ietekmētu izmērīto spriegumu.

Aprēķins
ADC — 10 bitu nozīmē, ka maksimālais paraugu skaits ir 1023.
Maksimālā sprieguma vērtība ir 5V, tad mēs iegūstam 5/1023 = 0,0048878 V/Count. Šajā gadījumā, ja ADC punktu skaits ir 188, tad ieejas spriegums ir 188 * 0,0048878 = 0,918 volti

Izmantojot sprieguma dalītāju, maksimālais spriegums ir 30 V, tad 30/1023 = 0,02932 V/Count.
Un, ja ADC punktu skaits ir 188, tad ieejas spriegums ir 188 * 0,02932 = 5,5 V.

0,1 uF kondensators padara ADC stabilāku, jo desmit bitu ADC ir diezgan jutīgi.
5.1V Zener diode ir paredzēta, lai aizsargātu ADC no pieļaujamā sprieguma pārsniegšanas.

Iespiedshēmas plate:

Gatavās ierīces fotoattēls:

Precizitāte un kalibrēšana
Ķēdes kopējā precizitāte ir diezgan augsta, tā pilnībā ir atkarīga no 47 kOhm un 10 kOhm rezistoru pretestības vērtībām, tāpēc, jo precīzāk tiks atlasīti komponenti, jo precīzāki būs rādījumi.
Voltmetrs ir kalibrēts, izmantojot 10 kOhm trimmera rezistoru; iestatiet pretestību uz aptuveni 7,5 kOhm un uzraugiet rādījumus ar citu ierīci.
Regulēšanai varat izmantot arī jebkuru stabilizētu 5 vai 12 voltu avotu; šajā gadījumā pagrieziet apgriešanas rezistoru, līdz displejā tiek parādīta pareizā vērtība.

Projekts Proteusā:

Voltameter uz PIC16F676

Šis projekts ir līdzstrāvas ampēru voltmetrs (vai voltammetrs, ja vēlaties). Diapazons - līdz 99,9V un 9,9A (vai 99,9A, atkarībā no programmaparatūras).


Tā īpatnība ir tāda, ka tas ir veidots uz plaši izplatītā mikrokontrollera PIC16F676, tomēr, neskatoties uz to, tam ir iespēja vienlaicīgi parādīt izmērīto spriegumu un strāvu uz četru zīmju (vai trīs zīmju) septiņu segmentu indikatoriem, abiem ar kopēju anodu. un kopīgs katods (iestatiet vienu rezistoru). Izmantojot četru zīmju indikatoru, pēdējā segmentā tiek parādīts simbols "U" spriegumam un "A" strāvai. Ampervoltmetrs var darboties arī ar vienu indikatoru, un ar pogu “B” varat izvēlēties, kas uz tā tiks parādīts - spriegumu vai strāvu. Ja abi indikatori ir instalēti, varat izmantot šo pogu, lai apmainītu to uzdevumus. Poga "H" tiek izmantota, lai vajadzības gadījumā koriģētu ampērmetra rādījumus un izlīdzinātu šo rādījumu linearitāti.

līdz 2014. gada februārim: Tagad ar izstrādi var iepazīties:

Volamometra diagramma ir parādīta zemāk. Kā jau minēts, tas ir veidots uz plaši izplatītā mikrokontrollera PIC16F676, uz kura jo īpaši tiek montēti vienkārši voltmetri un ampērmetri.


Noklikšķiniet uz diagrammas, lai to palielinātu
Tā kā šim MK ir ierobežots tapu skaits, tika izmantots reģistrs 74HC595. Šai mikroshēmai nav analogu ar tādu pašu spraudni, taču tai nav deficīta, un to bieži izmanto līdzīgās shēmās, lai indikatorus savienotu ar MK. Lai aizsargātu MK izejas no pārslodzes un palielinātu indikatoru spilgtumu, tiek izmantoti tranzistoru slēdži. Lietojot indikatorus ar kopīgu katodu, nepieciešams izmantot citas struktūras tranzistorus, to kolektorus savienojot nevis ar +5V, bet gan ar zemi, savukārt rezistors pie mikrokontrollera 11. tapas jāpārvieto citā pozīcijā. Iespējams, jums būs jāizvēlas rezistori pie reģistra izejas un tranzistoru bāzēm, lai tie atbilstu jūsu indikatoriem un tranzistoriem.

Kā minēts iepriekš, poga “B” ļauj mainīt indikatoru mērķi, ja tie ir divi. Ja ir tikai viens indikators, tad ar šo pogu varat pārslēgties starp sprieguma un strāvas rādīšanu. Nospiežot pogu "H", indikatori sāks mirgot. Kamēr tie mirgo, varat izmantot pogas “B” un “H”, lai pielāgotu ampērmetra rādījumus. Pēc korekcijas mirgošana beigsies un korekcijas koeficients tiks ierakstīts nemainīgajā atmiņā. Displeja režīms, kas iestatīts ar pogu "B", tiek saglabāts arī nemainīgā atmiņā.

Pēc ieslēgšanas indikatori nesāk degt uzreiz, bet ar vairāku sekunžu nokavēšanos. Lasīšanas izmaiņu frekvence ir aptuveni 9 Hz.

Viena no iespiedshēmas plates iespējām četriem indikatoriem ar kopēju anodu. Nepieciešamie labojumi ir apvilkti attēlā: jums ir jānoņem džemperis, kas iet uz zemi, un jāpievieno viens mazs džemperis.


Faili projektam.


Mēs turpinām izprast voltmetra - ampērmetra ieviešanas iespējas, pamatojoties uz mikroprocesoru.
Neaizmirstiet arhīvu ar failiem, mums tie būs nepieciešami šodien.

Ja vēlaties uzstādīt lielus indikatorus, jums būs jāatrisina jautājums par strāvas patēriņa ierobežošanu caur MK portiem. Šajā gadījumā katram indikatora ciparam ir jāinstalē bufera tranzistori.

Liela izmēra indikatori


Tātad iepriekš apspriestā shēma būs tāda, kā parādīts attēlā. 2. Katram indikatora ciparam tika pievienoti trīs bufera pakāpes tranzistori VT1-VT3. Uzstādītā bufera pakāpe invertē MK izejas signālu. Tāpēc ieejas spriegums, kas balstīts uz VT2, ir apgriezts attiecībā pret norādītā tranzistora kolektoru un tāpēc ir piemērots komatu veidojošas izejas padevei izejai. Tas ļauj noņemt tranzistoru VT1, kas iepriekš bija ķēdē attēlā. 1, aizstājot pēdējo ar atdalīšanas rezistoru R12. Neaizmirstiet, ka ir mainījušās arī rezistoru vērtības tranzistoru VT1-VT3 bāzes ķēdēs.
Ja vēlaties uzstādīt indikatorus ar netradicionāli lieliem izmēriem, norādīto tranzistoru kolektoru ķēdē būs jāinstalē zemas pretestības (1 - 10 omi) rezistori, lai ierobežotu strāvas pārspriegumu, kad tie tiek ieslēgti.

Šīs opcijas MK darbības loģika prasa tikai nelielas izmaiņas programmā, lai apgrieztu izejas signālu bitu, proti, portu RA0, RA1, RA5, vadīšanai.
Apsvērsim tikai to, kas mainīsies, proti, mums jau zināmā apakšprogramma ar koda nosaukumu “Dinamiskās indikācijas ģenerēšanas funkcija” Saraksts Nr.2(skat. mapi “tr_OE_30V” arhīvā vai raksta pirmajā daļā):

16. void Indikators ()( 17. while (show_digit< 3) { 18. portc = 0b111111; // 1 ->C 19. if (rādīt_ciparu == 2)( delay_ms(1); ) 20. porta = 0b100111; 21. rādīt_cipars = rādīt_cipars + 1; 22. slēdzis (rādīt_ciparu) ( 23. 1. gadījums: ( 24. if (digit1 == 0) ( ) else ( 25. Cod_to_PORT(DIGIT1); 26. PORTA &= (~(1)<<0)); //0 ->A0 27. ) pārtraukums;) 28. 2. gadījums: ( 29. Cod_to_PORT(DIGIT2); 30. PORTA &= (~(1)<<1)); //0 ->A1 31. pārtraukums;) 32. gadījums 3: ( 33. Cod_to_PORT(DIGIT3); 34. PORTA &= (~(1)<<5)); //0 ->A5 35. pārtraukums;) ) 36. Delay_ms(6); 37. ja (RA2_bit==0) (PORTA |= (1<<2);// 1 ->A2 38. Delay_ms(1);) 39. if ((rādīt_ciparu >= 3)!= 0) pārtraukums; 40. ) rādīt_ciparu = 0;)


Salīdziniet abas iespējas. Signāla inversija RA portā (2. saraksta 20. rinda) ir viegli nolasāma, jo tā ir rakstīta binārā formā. Pietiek apvienot MK un binārā skaitļa izejas. 19. un 37. rindā parādījās nedaudz dīvaini apstākļi, kuru sākumā nebija. Pirmajā gadījumā: "aizkavējiet loģiskās nulles signālu pie porta RA1 otrā cipara indikācijas laikā." Otrajā: "ja portā RA2 ir loģiska nulle, inversija." Kompilējot programmas galīgo versiju, tās var noņemt, taču simulācijai PROTEUS tie ir nepieciešami. Bez tiem komats un segments “G” netiks rādīti normāli.
Kāpēc? - tu jautā, jo pirmais variants darbojās lieliski.

Nobeigumā atceries kalēja vārdus no filmas “Mīlestības formula”: “...ja viens to uzbūvēja, cits vienmēr var izjaukt!”
Veiksmi!

Lasītāju balsojums

Rakstu apstiprināja 27 lasītāji.

Lai piedalītos balsošanā, reģistrējieties un piesakieties vietnē ar savu lietotājvārdu un paroli.

Šeit parādītā ierīce noderēs, ja jums ir barošanas avots ar izejas spriegumu 0-10 V. Šīs ir mērījumu robežas, kas ir “integrētas” attēlā redzamajā shēmā. Tā pamatā ir Atmega8 (U1) mikrokontrolleris standarta DIP pakotnē. Tas var šķist apgrūtinoši, taču tika izvēlēts tā plašās popularitātes dēļ, kā arī tāpēc, ka šī mikrokontrollera programmētāji ir ļoti izplatīti. Atmega8 izmanto lielākā daļa radioamatieru, un internetā var atrast daudzas shēmas ar šo mikrokontrolleri. Tāpēc, ja jums nepatīk šis voltmetrs, Atmega8 nepaliks dīkstāvē.

Digitālais voltmetrs uz Atmega8. Shēma ir pamata.

Voltmetra mērījums tiks parādīts digitālā septiņu segmentu trīsciparu indikatorā (DISP1). Es jums sniegšu informāciju par to.

7 segmentu digitālais LED indikators ir indikators, kas sastāv no septiņām gaismas diodēm, kas uzstādītas cipara 8 formā. Ieslēdzot vai izslēdzot atbilstošās gaismas diodes (segmentus), var attēlot ciparus no nulles līdz deviņiem, kā arī dažus burtus. Parasti daudzciparu skaitļu izveidošanai tiek izmantoti vairāki digitālie indikatori - šim nolūkam indikatori ir aprīkoti ar komata (punkta) segmentu - dp. Rezultātā vienam indikatoram ir 8 segmenti, lai gan tos sauc par 7 segmentiem, pamatojoties uz digitālo segmentu skaitu.

Katrs indikatora segments ir atsevišķa gaismas diode, kuru var ieslēgt (deg) vai izslēgt (nedeg) atkarībā no tiem piegādātā sprieguma polaritātes. Indikatori ir pieejami gan ar kopējo katodu, gan ar kopējo anodu. Mēs runājam par visu gaismas diožu (segmentu) kopīgo savienojumu. Turklāt indikatori var saturēt vairākus ciparus, un tādā gadījumā katru ciparu sauc par ciparu vai zīmi. Piemēram, trīsciparu (trīsciparu) septiņu segmentu indikators satur trīs ciparus. Tas ir tieši tāds indikators, kas jums būs nepieciešams šai ierīcei.


Dizainā izmantots sarkans spīduma indikators GNT-2831BD-11 ar kopēju anodu. Rezistori R1-R8 nosaka strāvu indikatorā un līdz ar to tā spilgtumu. To pretestība nedrīkst pārsniegt maksimālo izejas strāvu (40 mA), pat ja vienlaikus iedegas visas 8 gaismas diodes. Ķēdē tiek izmantots viena gala 10 bitu ADC (analogs-digitāls pārveidotājs), kas atrodas AVR. Izvades vērtību diapazons ir no 0 līdz 999. Sasniedzot šo vērtību robežu, parādīsies simbols "---".

Voltmetra ieejā (in) ir uzstādīts sprieguma dalītājs no rezistoriem R9, R10 un R11, nodrošinot mērījumu diapazonu līdz 10 V ar kļūdu 0,01 V. Mikrokontrollera U1 kontaktā 23 dalītājs ģenerē spriegums, kas nedrīkst pārsniegt 2,5 V. Ieejas pretestības voltmetrs ir tuvu 1 mOhm. Lai kalibrētu voltmetru, pievienojiet precīzi zināmu spriegumu tā ieejai un, pārvietojot apgriešanas rezistoru R11, sasniedziet tādus pašus indikatora rādījumus.

Voltmetra atjaunināšanas ātrums ir aptuveni 4 Hz. Ķēde tiek darbināta no stabilizēta 5 V avota.Ierīces strāvas patēriņš ir aptuveni 25 mA (lielākā daļa patēriņa ir indikatorā). Novietojiet komponentus C1 un C2 pēc iespējas tuvāk mikrokontrolleram.

Pareizi iestatītie biti ir parādīti attēlā zemāk.


Ja jums ir nepieciešami mērījumu ierobežojumi līdz 100 V, mainiet vērtību R10 uz 9,1 mOhm un R11 vērtību uz 2,2 mOhm. Tad jūs iegūsit vēlamo mērījumu diapazonu ar kļūdu 0,1 V un ieejas pretestību aptuveni 10 mOhm. Šajā gadījumā jums būs jāmaina indikatora punkta atrašanās vieta, lai tas tiktu parādīts aiz diviem simboliem, nevis aiz pirmā, kā parādīts diagrammā. Lai to izdarītu, atstājiet U1 mikroshēmas tapu 28 brīvu un pievienojiet kontaktdakšu 27 ar kopējo vadu. Tagad rakstzīmju vietā 0.00 formātā tiks parādīta 00.0.

Notiek ielāde...Notiek ielāde...