- Nødvendige komponenter:
- Arduino voltmeter kredsløbsdiagram:
- Arbejde med Arduino-baseret AC-voltmeter:
- Simulation:
- Kode Forklaring:
I dette projekt skal vi lave en vekselstrømsmåleenhed ved hjælp af Arduino, som måler spændingen på vekselstrømsforsyningen i vores hjem. Vi skal udskrive den spænding på seriel skærm af Arduino IDE såvel som på multimeteret.
At lave et digitalt voltmeter er meget let end at lave et analogt, for i tilfælde af et analogt voltmeter skal du have godt kendskab til fysiske parametre som drejningsmoment, friktionstab osv., Mens du i tilfælde af digitalt voltmeter bare kan bruge en LCD- eller LED-matrix eller selv din bærbare computer (som i dette tilfælde) for at udskrive spændingsværdierne for dig. Her er nogle digitale voltmeterprojekter:
- Simpelt digitalt voltmeter kredsløb med printkort ved hjælp af ICL7107
- LM3914 Voltmeter kredsløb
- 0-25V digitalt voltmeter ved hjælp af AVR-mikrocontroller
Nødvendige komponenter:
- En 12-0-12 transformer
- 1N4007-diode
- 1uf kondensator
- Modstande 10k; 4.7k.
- Zener-diode (5V)
- Arduino UNO
- Tilslutning af ledninger
Arduino voltmeter kredsløbsdiagram:
Kredsløbsdiagram for dette Arduino Voltmeter er vist ovenfor.
Forbindelser:
- Tilslut transformatorens højspændingsside (220V) til strømforsyningen og lavspænding (12V) til spændingskredsløbet.
- Forbind 10k modstand i serie med 4,7k modstand, men sørg for at tage spænding som input over 4,7k modstand.
- Tilslut dioden som vist.
- Tilslut kondensator og zenerdiode over 4,7 k
- Tilslut en ledning fra diodens n-terminal til den analoge pin A0 fra Arduino.
** Bemærk: Tilslut Arduinos jordstift til det punkt, som vist på figuren, ellers fungerer kredsløbet ikke.
Behov for spændingsdelerkredsløb?
Da vi bruger 220/12 v transformer, får vi 12 v på lv-siden. Da denne spænding ikke er egnet som input til Arduino, har vi brug for et spændingsdelerkredsløb, der kan give en passende spændingsværdi som input til Arduino
Hvorfor er diode og kondensator tilsluttet?
Da Arduino ikke tager negative spændingsværdier som input, skal vi først fjerne negativ cyklus af trin ned AC, så kun positiv spændingsværdi tages af Arduino. Derfor er diode tilsluttet for at rette op på trin ned spænding. Tjek vores Half-wave ensretter og Full wave Rectifier kredsløb for at lære mere om udbedring.
Denne udbedrede spænding er ikke glat, da den indeholder store krusninger, som ikke kan give os nogen nøjagtig analog værdi. Derfor er kondensator tilsluttet for at udjævne AC-signalet.
Formål med zenerdiode?
Arduino kan få skader, hvis der tilføres spænding større end 5v. Derfor er en 5v zenerdiode tilsluttet for at sikre Arduino's sikkerhed, som går i stykker, hvis denne spænding overstiger 5v.
Arbejde med Arduino-baseret AC-voltmeter:
1. Nedstrømsspænding opnås på transformatorens lv-side, som er velegnet til brug på tværs af normale modstander med effekt.
2. Så får vi en passende spændingsværdi på tværs af 4,7 k modstand
Maksimal spænding, der kan måles, findes ved at simulere dette kredsløb på proteus (forklaret i simuleringsafsnittet).
3. Arduino tager denne spænding som input fra pin A0 i form af analoge værdier mellem 0 og 1023. 0 er 0 volt og 1023 er 5 v.
4. Arduino konverterer derefter denne analoge værdi til tilsvarende netspænding med en formel. (Forklaret i kodeafsnittet).
Simulation:
Præcist kredsløb er lavet i proteus og derefter simuleret. For at finde maksimal spænding, som dette kredsløb kan måle hit og prøve-metode, bruges.
Ved fremstilling af generatorens topspænding 440 (311 rms) blev spænding på pin A0 vist sig at være 5 volt, dvs. maksimum. Derfor kan dette kredsløb måle maksimum 311 rms spænding.
Simulering udføres for forskellige spændinger mellem 220 rms og 440v.
Kode Forklaring:
Komplet ArduinoVoltmeter-kode gives i slutningen af dette projekt, og det forklares godt gennem kommentarerne. Her forklarer vi få dele af det.
m er den analoge inputværdi modtaget på pin A0 dvs.
m = pinMode (A0, INPUT); // sæt pin a0 som input pin
For at tildele variabel n til denne formel n = (m * . 304177) udføres først en slags beregninger ved hjælp af dataene opnået i simuleringsafsnittet:
Som det ses på simuleringsfoto, opnås 5v eller 1023 analog værdi ved pin A0, når vekselstrømsindgangsspænding er 311 volt. Derfor:
Så enhver tilfældig analog værdi svarer til (311/1023) * m, hvor m opnås analog værdi.
Derfor ankommer vi til denne formel:
n = (311/1023) * m volt eller n = (m *.304177)
Nu er denne spændingsværdi udskrevet på den serielle skærm ved hjælp af serielle kommandoer som forklaret nedenfor. Og også vist på multimeteret som vist i videoen nedenfor.
Værdier, der er trykt på skærmen, er:
Analog inputværdi som specificeret i koden:
Serial.print ("analog input"); // dette giver navn, der er “analog input” til den trykte analoge værdi Serial.print (m); // dette udskriver simpelthen den analoge inputværdi
Nødvendig vekselspænding som specificeret i koden:
Serial.print ("vekselspænding"); // dette giver navnet "vekselstrøm" til den trykte analoge værdi Serial.print (n); // dette udskriver simpelthen vekselstrømsværdien