- Nödvändiga komponenter:
- Arduino Voltmeter Circuit Diagram:
- Arbeta med Arduino-baserad AC-voltmeter:
- Simulering:
- Kodförklaring:
I det här projektet ska vi skapa en AC-spänningsmätanordning med Arduino, som kommer att mäta spänningen för växelströmstillförsel i vårt hem. Vi ska skriva ut den spänningen på seriell bildskärm av Arduino IDE samt visa på multimetern.
Att göra en digital voltmeter är mycket enkelt än att göra en analog, för i fallet med en analog voltmeter måste du ha goda kunskaper om fysiska parametrar som vridmoment, friktionsförluster etc. medan du i fråga om digital voltmeter bara kan använda en LCD- eller LED-matris eller även din bärbara dator (som i det här fallet) för att skriva ut spänningsvärdena åt dig. Här är några digitala voltmeterprojekt:
- Enkel digital voltmätarkrets med kretskort med ICL7107
- LM3914 Voltmeter Circuit
- 0-25V digital voltmeter med AVR-mikrokontroller
Nödvändiga komponenter:
- En 12-0-12 transformator
- 1N4007-diod
- 1uf kondensator
- Motstånd 10k; 4,7 k
- Zener-diod (5V)
- Arduino UNO
- Anslutande ledningar
Arduino Voltmeter Circuit Diagram:
Kretsschema för denna Arduino Voltmeter visas ovan.
Anslutningar:
- Anslut transformatorns högspänningssida (220V) till elnätet och lågspänning (12v) till spänningsdelarkretsen.
- Anslut 10k motstånd i serie med 4,7k motstånd men se till att ta spänningen som ingång över 4,7k motstånd.
- Anslut dioden enligt bilden.
- Anslut kondensator och zenerdiod över 4,7 k
- Anslut en ledning från n-terminalen på dioden till den analoga stift A0 på Arduino.
** Obs: Anslut Arduinos jordstift till den punkt som visas i figuren eller kretsen fungerar inte.
Behov av spänningsdelarkrets?
Eftersom vi använder 220/12 v transformator får vi 12 v på lv-sidan. Eftersom denna spänning inte är lämplig som ingång för Arduino behöver vi en spänningsdelarkrets som kan ge lämpligt spänningsvärde som ingång till Arduino
Varför är diod och kondensator ansluten?
Eftersom Arduino inte tar negativa spänningsvärden som ingång, måste vi först ta bort negativ cykel av steg ned växelström så att endast positivt spänningsvärde tas av Arduino. Därför är dioden ansluten för att rätta till den nedåtgående spänningen. Kontrollera vår halvvågslikriktare och fullvågslikriktarkrets för att lära dig mer om rättelse.
Denna korrigerade spänning är inte jämn eftersom den innehåller stora krusningar som inte kan ge oss något exakt analogt värde. Därför är kondensatorn ansluten för att utjämna växelsignalen.
Syfte med zenerdiod?
Arduino kan få skador om spänningen överstiger 5v tillförs den. Därför är en 5v zenerdiod ansluten för att säkerställa Arduino-säkerhet, vilket går sönder om denna spänning överstiger 5v.
Arbeta med Arduino-baserad AC-voltmeter:
1. Nedströmsspänning erhålls på transformatorns lv-sida, som är lämplig att använda över normala motstånd för effekt.
2. Sedan får vi lämpligt spänningsvärde över 4,7 k motstånd
Maximal spänning som kan mätas finns genom att simulera denna krets på proteus (förklaras i simuleringsavsnittet).
3. Arduino tar denna spänning som ingång från stift A0 i form av analoga värden mellan 0 och 1023. 0 är 0 volt och 1023 är 5v.
4. Arduino omvandlar sedan detta analoga värde till motsvarande nätspänning med en formel. (Förklaras i kodavsnittet).
Simulering:
Exakt krets görs i proteus och simuleras sedan. För att hitta maximal spänning som denna krets kan mäta träff och testmetod används.
Vid framställning av generatorns toppspänning 440 (311 rms) befanns spänningen på stift A0 vara 5 volt, dvs. maximalt. Därför kan denna krets mäta maximal 311 rms spänning.
Simulering utförs för olika spänningar mellan 220 rms och 440v.
Kodförklaring:
Komplett ArduinoVoltmeter-kod ges i slutet av detta projekt och det förklaras väl genom kommentarerna. Här förklarar vi några delar av det.
m är det inmatade analoga värdet mottaget på stift A0 dvs
m = pinMode (A0, INPUT); // ställa in stift a0 som inmatningsstift
För att tilldela variabel n till denna formel n = (m * . 304177) utförs först en slags beräkningar med hjälp av data som erhållits i simuleringsavsnittet:
Som framgår av simuleringsfoto erhålls 5v eller 1023 analogt värde vid stift A0 när ingångsspänningen är 311 volt. Därmed:
Så vilket slumpmässigt analogt värde som helst motsvarar (311/1023) * m där m erhålls analogt värde.
Därför kommer vi till denna formel:
n = (311/1023) * m volt eller n = (m *.304177)
Nu skrivs detta spänningsvärde ut på den seriella bildskärmen med hjälp av seriekommandon som förklaras nedan. Och visas också på multimetern som visas i videon nedan.
Värdena som skrivs ut på skärmen är:
Analogt ingångsvärde som anges i koden:
Serial.print ("analog ingång"); // detta ger namn som är “analog ingång” till det tryckta analoga värdet Serial.print (m); // detta skriver helt enkelt ut det analoga ingångsvärdet
Nödvändig växelspänning som anges i koden:
Serial.print ("växelspänning"); // detta ger namnet "växelspänning" till det tryckta analoga värdet Serial.print (n); // detta skriver helt enkelt växelspänningsvärdet