Vi fortsetter å håndtere implementeringsalternativene for et voltmeter - et amperemeter basert på en mikroprosessor.
Ikke glem arkivet med filene, vi trenger dem i dag.
Hvis du vil sette store indikatorer, må du løse problemet med å begrense dagens forbruk gjennom MK-portene. I dette tilfellet er det nødvendig å sette buffertransistorer på hver bit av indikatoren.
Store indikatorer
Så ordningen som ble vurdert tidligere vil ha formen vist i fig. 2. Tre transistorer VT1-VT3 i buffertrinnet ble lagt til for hver bit av indikatoren. Det installerte buffertrinnet inverterer utgangssignalet til MK. Følgelig er inngangsspenningen basert på VT2 invers i forhold til kollektoren til den spesifiserte transistoren, noe som betyr at den er egnet for å gi komma til utgangen. Dette gjør det mulig å fjerne transistoren VT1, som tidligere var i kretsen i fig. 1, og erstatter sistnevnte med en avkoblingsmotstand R12. Ikke glem at verdiene til motstandene i basiskretsene til transistorene VT1-VT3 også har endret seg.
Hvis du vil sette indikatorer med ukonvensjonelt store dimensjoner, må du sette lavmotstandsmotstander (1 - 10 Ohm) i kollektorkretsen til disse transistorene for å begrense strømstøt når de slås på.
Logikken til MK for dette alternativet trenger bare en liten endring i programmet når det gjelder å invertere utgangssignalet til bitkontrollen, nemlig portene RA0, RA1, RA5.
La oss bare vurdere hva som vil endre seg, nemlig subrutinen som allerede er kjent for oss under det betingede navnet "Dynamic Display Formation Function" i Oppføring #2(se mappen "tr_OE_30V" i arkivet eller første del av artikkelen):
16. void Indicator ()( 17. while (show_digit< 3) { 18. portc = 0b111111; // 1 ->C 19. if (vis_siffer == 2)( forsinkelse_ms(1); ) 20. porta = 0b100111; 21. vis_siffer = vis_siffer + 1; 22. bryter (vis_siffer) ( 23. tilfelle 1: ( 24. hvis (siffer1 == 0) ( ) annet ( 25. Cod_to_PORT(DIGIT1); 26. PORTA &= (~(1)<<0)); //0 ->A0 27. ) pause;) 28. tilfelle 2: ( 29. Cod_to_PORT(DIGIT2); 30. PORTA &= (~(1)<<1)); //0 ->A1 31. pause;) 32. tilfelle 3: ( 33. Cod_to_PORT(DIGIT3); 34. PORTA &= (~(1)<<5)); //0 ->A5 35. pause;) ) 36. Delay_ms(6); 37. if (RA2_bit==0) (PORTA |= (1<<2);// 1 ->A2 38. Delay_ms(1);) 39. if ((vis_siffer >= 3)!= 0) pause; 40.) vis_siffer = 0;)
Sammenlign begge alternativene. Signalinversjonen på port RA (linje 20 i oppføring #2) er lett å lese fordi den er skrevet i binær form. Det er nok å kombinere konklusjonene til MK og det binære tallet. På linje 19 og 37 dukket det opp litt rare forhold som ikke var der i starten. I det første tilfellet: "utsett det logiske nullsignalet på RA1-porten under indikasjonen av den andre biten." I den andre: "hvis RA2-porten har en logisk null, inversjon." Når du kompilerer den endelige versjonen av programmet, kan du fjerne dem, men de trengs for simulering i PROTEUS. Uten dem vil ikke kommaet og "G"-segmentet vises normalt.
Hvorfor? – spør du, for det første alternativet fungerte utmerket.
Avslutningsvis, husk ordene til smeden fra filmen "Formula of Love": "... hvis en person har bygget, kan en annen alltid ta den fra hverandre!".
Lykke til!
Leserens stemme
Artikkelen ble godkjent av 27 lesere.
For å delta i avstemningen, registrer deg og gå inn på siden med brukernavn og passord.I denne enheten brukte forfatteren den originale metoden for å kontrollere en firesifret syv-elements LED-indikator med signaler fra bare fire mikrokontrollerpinner. Mikrokontrollerprogrammet sørger for automatisk kalibrering av voltmeteret.
Den tradisjonelle tilkoblingen av en LED digital indikator med en mikrokontroller gjennom en seriell-til-parallell omformer 74HC595 krever bruk av tre utganger på mikrokontrolleren for å kontrollere kodekonverteren og en utgang til for hvert siffer i indikatoren. Derfor krever en firesifret indikator syv pinner. Dette gjør det umulig å bruke slike indikatorer med mikrokontrollere med lav effekt, for eksempel med PIC12F675, som bare har seks pinner (ikke medregnet strømpinnene).
På det andre trinnet omskriver den stigende nivåforskjellen ved pinne 12 på 74HC595-brikken nullinnholdet i skiftregisteret inn i holderegisteret. Dette slukker indikatoren fullstendig.
På det tredje trinnet blir informasjon lastet inn i skiftregisteret til 74HC595-mikrokretsen med en seriekode generert av mikrokontrolleren ved pinne 14 på mikrokretsen. Dens utgang 11 mottar klokkepulser.
På det fjerde trinnet, med en økende nivåforskjell ved pinne 12 på 74HC595-mikrokretsen, kommer informasjon fra skiftregisteret inn i lagringsregisteret, og på grunn av de høye nivåene ved katodene forblir indikatorutladningene slukket.
På det femte trinnet, på den vanlige katoden til utladningen, som den parallelle kodeutgangen til utgangene til mikrokretsen 74HC595 er beregnet på, setter programmet et lavt nivå, og slår på elementene i samsvar med denne koden. Dette fullfører avbruddsbehandlingen, og den innstilte indikatortilstanden forblir uendret til neste avbrudd.
For å kontrollere en åttesifret indikator kreves åtte mikrokontrollerutganger. I dette tilfellet styrer signalene fra de ytterligere fire utgangene bare nivåene på katodene til utladningene. Det skal bemerkes at i dette tilfellet er det mulig å bruke indikatorer med både felles katoder og felles anoder, koblingselementer eller utladninger til utgangene til kodeomformeren, henholdsvis. Av grunnene som er angitt nedenfor, er det å foretrekke å organisere den dynamiske indikasjonen element-for-element i det første tilfellet, og bit-for-bit i det andre.
La oss nå snakke om et voltmeter som bruker det beskrevne prinsippet.
De viktigste tekniske egenskapene
Målt spenning, V .............. 0...80
Målediskret, V ...... 0,1
Nøyaktighet...................0,5 % + enheter ml. res.
Forsyningsspenning, V...........7...15
Forbruksstrøm, mA, ikke mer enn .........................30
Voltmeterkretsen er vist i fig. 1. Den bruker element-for-element dynamisk indikasjon. I hvert øyeblikk settes et høyt nivå på anodene til en gruppe med samme navngitte elementer av alle sifrene i HG1-indikatoren. På de vanlige katodeterminalene til utladningene der disse elementene skal gløde, settes et lavt nivå, ellers er det høyt. Vær oppmerksom på at elementer med samme navn kan inkluderes samtidig i alle kategorier, men kun ett element er inkludert i hver kategori for øyeblikket. Det er derfor det ble valgt å koble anodene til elementene til utgangene til DD2-mikrokretsen, hvis belastningskapasitet er høyere enn utgangene til mikrokontrolleren.
Ris. 1. Voltmeterkrets
Med en avbruddsperiode på 2 ms er oppdateringsfrekvensen til bildet på indikatoren 64 Hz og dets blinking er umerkelig for øyet. Den valgte metoden for dynamisk indikasjon gjorde det også mulig å halvere antall motstander (R4-R7) som begrenser strømmen gjennom indikatorlysene.
Mikrokontrolleren PIC12F675-I / P (DD1) forblir ledig i den dynamiske indikasjonen av I / O-linjene GP0 og GP3. Den første brukes som en ADC-inngang; den målte spenningen mates til den gjennom deleren R1R2. På linje GP3, i fravær av jumper S1, takket være motstand R3, settes et høyt logisk nivå, som fungerer som et signal som setter voltmeteret i kalibreringsmodus. Hvis jumperen er installert, er nivået på denne pinnen lavt og voltmeteret fungerer normalt.
Når du slår på voltmeteret for første gang med den manglende jumperen S1, vil HG1-indikatoren vises med tegnet lengst til høyre som blinker. I denne tilstanden bør en spenning så nær 80 V som mulig påføres enhetens inngang, og kontrollere den med et eksemplarisk voltmeter. Med en kortsiktig tilkobling av kontaktputene beregnet på jumper S1, vil enheten beregne og huske kalibreringsfaktoren og bruke den i fremtiden.
Imidlertid er 80 V en ganske stor spenning, og vanskeligheter med å oppnå den er ikke utelukket. I dette tilfellet, under indikasjonen av verdien av referansespenningen, må enheten slås av og på igjen. Indikatoren vil vise , og ved neste av og på - , , igjen og lenger i en sirkel. Kalibrering bør utføres ved den høyeste tilgjengelige spenningen av disse verdiene. Jo høyere referansespenning, desto mer nøyaktig er kalibreringen. Hvis inngangsspenningen på kalibreringstidspunktet avviker for mye fra referansespenningen, vil koeffisienten ikke beregnes, og indikatoren vil vise
Etter kalibrering, slå av voltmeteret og installer til slutt jumper S1, ellers neste gang du slår den på, må du gjenta alt på nytt. Voltmeteret kan også fungere uten kalibrering hvis jumperen S1 allerede er installert når den først slås på. I dette tilfellet bruker den koeffisienten skrevet i programmet, men feilen kan overstige 10%. Dette vil bli advart av den inkluderte prikken i sifferet lengst til høyre på indikatoren.
Analog-til-digital konvertering utføres i "sleep"-modus til mikrokontrolleren for å redusere interferens fra driftsnodene. Fra denne tilstanden avsluttes den automatisk ved slutten av konverteringen.
Enheten drives av en spenning på 5 V, oppnådd ved hjelp av en integrert spenningsregulator DA1. Du kan bare bruke 78L05-stabilisatoren i stedet for den som er angitt i diagrammet som en siste utvei, siden stabiliteten til utgangsspenningen er en størrelsesorden dårligere. Uten å forringe parametrene kan du bruke LP2951-stabilisatoren. Zener-dioden VD1 for en spenning på 5,6 V, sammen med den interne beskyttelsesdioden til mikrokontrolleren, beskytter sistnevnte mot skade når den målte spenningen overstiger den tillatte verdien. Uten en limiter kan mikrokontrollerens forsyningsspenning i denne situasjonen øke kritisk.
Enheten er montert på et 40x36 mm trykt kretskort laget av 1,5 mm tykt ensidig foliefiber, vist i fig. 2. De fleste motstander og kondensatorer er størrelse 0805 for overflatemontering. Motstand R1 for pålitelig drift ved høy spenning brukes med en utgangseffekt på 0,5 W. Kondensator C1 kan installeres både keramisk og utgående oksid, hvor brettet har et sete merket C1. FYQ-3641AHR-11-indikatoren kan erstattes med en annen fra 3641A-serien eller en tresifret 3631A-serie uten å endre brettet. Et fotografi av det sammensatte enhetskortet er vist i fig. 3.
Jeg har drevet med radioelektronikk i flere år, men jeg innrømmer skam at jeg fortsatt ikke har normal strømforsyning. Jeg mater de sammensatte enhetene med det som måtte komme for hånden. Fra alle slags halvdøde batterier og transformatorer med diodebro uten spenningsstabilisering og utgangsstrømbegrensning. Slike perversjoner er ganske farlige for den sammensatte strukturen. Til slutt bestemte jeg meg for å sette sammen en vanlig strømforsyning. Og jeg startet monteringen med et amperemeter. Selvfølgelig var det nødvendig å starte med en annen, men som det allerede er. Siden jeg holder på med litt programmering, bestemte jeg meg for å utvikle en displaymåler selv. Skjermen er en skjerm fra Nokia-1202. Sannsynligvis har jeg allerede torturert alle med denne skjermen, men den er 3 ganger billigere enn 2x16 HD44780 (i hvert fall for oss). Ganske en loddbar kontakt og generelt gode egenskaper. Kort sagt - et godt alternativ for en spennings- og strømmåler.
Den elektriske kretsen til det digitale ampervoltmeteret for PSU
Digital amperemetertavletegning
Den første og andre linjen viser gjennomsnittsverdien av spenning og strøm fra 300 ADC-målinger. Dette gjøres for større målenøyaktighet. Den tredje linjen viser lastmotstanden beregnet i henhold til Ohms lov. Først ønsket jeg å gjøre det slik at strømforbruket ble utgitt, men jeg gjorde en motstand. Kanskje jeg endrer den til makt senere. Den fjerde linjen viser temperaturen målt av DS18B20-sensoren. Den er programmert til å måle temperaturer fra 0 til 99 grader Celsius. Den må installeres på radiatoren til utgangstransistoren, eller på et annet kretselement der det er sterk oppvarming.
Du kan også koble en kjøler til mikrokontrolleren for å avkjøle transistorens kjøleribbe. Den vil endre hastigheten når temperaturen målt av DS18B20-sensoren endres. Det er et PWM-signal på PB3-pinnen. Kjøleren kobles til denne utgangen via en strømbryter. Det er best å bruke en MOSFET-transistor som strømbryter. Ved en temperatur på 90 grader vil viften ha maksimal hastighet. Temperatursensoren kan være installert eller ikke. I dette tilfellet vil den fjerde linjen ganske enkelt vise inskripsjonen AV. Kjøleren kobles direkte til. Utgangen til PB3 vil være 0.
Det er to versjoner av fastvaren i arkivet. En for maksimal målt strøm på 5 ampere, og den andre opp til 10 ampere. Maksimal målt spenning er 30 volt. Forsterkningsfaktoren til LM358 op amp ble valgt til å være 10 i henhold til beregningene. For forskjellig fastvare må du velge en shunt. Ikke alle har evnen til å måle hundredeler av ohm og presisjonsmotstander. Derfor har kretsen to innstillingsmotstander. De kan korrigere måleavlesningene.
Det er også et kretskort i arkivet. Det er små forskjeller på bildet - der er det litt korrigert. En genser er fjernet og størrelsen er 5 mm mindre i høyden. Stabiliteten til ampervoltmeteravlesningene er høy. Noen ganger flyter den bare i hundredeler. Selv om jeg sammenlignet det bare med min kinesiske tester. For meg er dette ganske nok.
Takk alle sammen for oppmerksomheten.
ARKIV:
Oppgradert versjon
Lagt bare til visning av en tiendedel av kraften.Her gjorde jeg det om for å måle opp til 50A. Shunt 0,01 ohm. Forsterkningen til op-ampen er omtrent 6 til 7. Det vil være nødvendig å beregne motstandene på nytt. Sikringene er de samme som før.
Jeg vil gjerne presentere for deg en oppgradert versjon av indikatoren for en laboratoriestrømforsyning. Lagt til muligheten til å slå av belastningen når en viss forhåndsinnstilt strøm overskrides. Fastvaren til det forbedrede voltammeteret kan lastes ned nedenfor. Diagram over en digital strøm- og spenningsmåler.
Noen få detaljer er også lagt til ordningen. Fra kontrollene - en knapp og en variabel motstand med en nominell verdi på 10 kilo-ohm til 47 kilo-ohm. Motstanden er ikke kritisk for kretsen, og som du kan se kan den variere innenfor ganske vide grenser. Utseendet på skjermen har også endret seg litt. Lagt til visning av effekt og ampere * timer.
Utkoblingsstrømvariabelen er lagret i EEPROM. Derfor, etter å ha slått av, trenger du ikke å konfigurere alt på nytt. For å gå inn i gjeldende innstillingsmeny, må du trykke på knappen. Ved å vri knappen til den variable motstanden, må du stille inn strømmen som reléet skal slå av. Den er koblet via en transistorbryter til PB5-pinnen til Atmega8-mikrokontrolleren.
På tidspunktet for avstenging vil displayet vise en inskripsjon om at den maksimale innstilte strømmen er overskredet. Etter å ha trykket på knappen, går vi tilbake til menyen for maksimal gjeldende innstilling. Du må trykke på knappen igjen for å bytte til målemodus. Logg 1 vil bli brukt på PB5-utgangen til mikrokontrolleren og reléet slås på. Denne strømsporingen har også sine ulemper. Beskyttelse vil ikke fungere umiddelbart. Operasjonen kan ta flere titalls millisekunder. For de fleste eksperimentelle enheter er denne ulempen ikke kritisk. For mennesker er denne forsinkelsen ikke synlig. Alt skjer på en gang. Et nytt kretskort ble ikke utviklet. Den som ønsker å gjenta enheten kan redigere kretskortet litt fra forrige versjon. Endringene vil ikke være vesentlige.
For eventuelle spørsmål, vennligst kontakt forumet. Takk for din oppmerksomhet. Ampervoltmeteret ble ferdigstilt av Bukhar.
ARKIV:
Forum