- Nødvendige komponenter:
- Arduino voltmeter kretsdiagram:
- Arbeid av Arduino-basert AC-voltmeter:
- Simulering:
- Kode Forklaring:
I dette prosjektet skal vi lage en AC Voltage Measuring Device ved hjelp av Arduino, som vil måle spenningen til vekselstrømforsyning hjemme hos oss. Vi skal skrive ut den spenningen på seriell skjerm av Arduino IDE så vel som å vise på multimeteret.
Å lage et digitalt voltmeter er mye enkelt enn å lage et analogt, for i tilfelle av et analogt voltmeter må du ha god kunnskap om fysiske parametere som dreiemoment, friksjonstap etc. mens du i tilfelle av digitalt voltmeter bare kan bruke en LCD- eller LED-matrise til og med den bærbare datamaskinen din (som i dette tilfellet) for å skrive ut spenningsverdiene for deg. Her er noen digitale voltmeterprosjekter:
- Enkel digital voltmeterkrets med PCB ved bruk av ICL7107
- LM3914 Voltmeter krets
- 0-25V digitalt voltmeter ved hjelp av AVR-mikrokontroller
Nødvendige komponenter:
- En 12-0-12 transformator
- 1N4007-diode
- 1uf kondensator
- Motstander 10k; 4.7k.
- Zener diode (5V)
- Arduino UNO
- Koble ledninger
Arduino voltmeter kretsdiagram:
Kretsdiagram for dette Arduino Voltmeter er vist ovenfor.
Tilkoblinger:
- Koble høyspenningssiden (220V) til transformatoren til strømforsyningen og lavspenning (12V) til spenningsdelerkretsen.
- Koble 10k motstand i serie med 4,7k motstand, men sørg for å ta spenning som inngang over 4,7k motstand.
- Koble til dioden som vist.
- Koble kondensator og zenerdiode over 4,7 k
- Koble en ledning fra n-terminalen til dioden til den analoge pinnen A0 til Arduino.
** Merk: Koble jordpinnen til Arduino til det punktet som vist på figuren eller kretsen vil ikke fungere.
Behov for spenningsdelerkrets?
Når vi bruker 220/12 v transformator, får vi 12 v på lv-siden. Siden denne spenningen ikke er egnet som inngang for Arduino, trenger vi en spenningsdelerkrets som kan gi passende spenningsverdi som inngang til Arduino
Hvorfor er diode og kondensator koblet til?
Siden Arduino ikke tar negative spenningsverdier som inngang, må vi først fjerne negativ syklus av trinn ned AC, slik at bare positiv spenningsverdi blir tatt av Arduino. Derfor er dioden koblet til for å rette opp nedstrømsspenningen. Sjekk kretsen vår for halvbølge-likeretter og fullbølge-likeretter for å lære mer om utbedring.
Denne utbedrede spenningen er ikke jevn da den inneholder store krusninger som ikke kan gi oss noen nøyaktig analog verdi. Derfor er kondensator koblet til for å glatte ut vekselstrømssignalet.
Formål med zenerdiode?
Arduino kan få skade hvis spenning større enn 5v blir matet til den. Derfor er en 5v zenerdiode koblet til for å sikre sikkerheten til Arduino, som går i stykker i tilfelle denne spenningen overstiger 5v.
Arbeid av Arduino-basert AC-voltmeter:
1. Nedstrammingsspenning oppnås på transformatorens venstre side, som er egnet til bruk på tvers av normale motstander.
2. Da får vi passende spenningsverdi over 4,7 k motstand
Maksimal spenning som kan måles blir funnet ved å simulere denne kretsen på proteus (forklart i avsnittet om simulering).
3. Arduino tar denne spenningen som inngang fra pin A0 i form av analoge verdier mellom 0 til 1023. 0 er 0 volt og 1023 er 5v.
4. Arduino konverterer deretter denne analoge verdien til tilsvarende nettspenning med en formel. (Forklart i kodeseksjonen).
Simulering:
Nøyaktig krets er laget i proteus og deretter simulert. For å finne maksimal spenning som denne kretsen kan måle treff og prøvemetode brukes.
Ved å lage generatorens toppspenning 440 (311 rms), ble spenningen på pin A0 funnet å være 5 volt, dvs. maks. Derfor kan denne kretsen måle maksimum 311 rms spenning.
Simulering utføres for forskjellige spenninger mellom 220 rms og 440v.
Kode Forklaring:
Komplett ArduinoVoltmeter-kode er gitt på slutten av dette prosjektet, og det er godt forklart gjennom kommentarene. Her forklarer vi få deler av det.
m er den inngangs analoge verdien mottatt på pin A0 dvs.
m = pinMode (A0, INPUT); // sett pin a0 som input pin
For å tilordne variabel n til denne formelen n = (m * . 304177), utføres først en slags beregninger ved å bruke dataene som er oppnådd i simuleringsseksjonen:
Som det fremgår av simuleringsbildet, oppnås 5v eller 1023 analog verdi på pin A0 når inngangsspenningen er 311 volt. Derfor:
Så hvilken som helst tilfeldig analog verdi tilsvarer (311/1023) * m hvor m er oppnådd analog verdi.
Derfor kommer vi til denne formelen:
n = (311/1023) * m volt eller n = (m *.304177)
Nå skrives denne spenningsverdien ut på den serielle skjermen ved hjelp av seriekommandoer som forklart nedenfor. Og også vist på multimeteret som vist i videoen nedenfor.
Verdiene som er trykt på skjermen er:
Analog inngangsverdi som spesifisert i koden:
Serial.print ("analog inngang"); // dette gir navnet som er "analog inngang" til den trykte analoge verdien Serial.print (m); // dette skriver ganske enkelt ut den analoge inngangen.
Nødvendig vekselspenning som spesifisert i koden:
Serial.print ("vekselspenning"); // dette gir navnet “vekselstrøm” til den trykte analoge verdien Serial.print (n); // dette skriver ganske enkelt ut vekselspenningsverdien