Med en simpel viden om Arduino og Voltage Divider Circuit kan vi gøre Arduino til et digitalt voltmeter og kan måle indgangsspændingen ved hjælp af Arduino og en 16x2 LCD-skærm.
Arduino har flere analoge indgangsstifter, der forbinder til en Analog-til-digital-konverter (ADC) inde i Arduino. Arduino ADC er en ti-bit konverter, hvilket betyder, at outputværdien vil være fra 0 til 1023. Vi opnår denne værdi ved hjælp af funktionen analogRead () . Hvis du kender referencespændingen, kan du nemt beregne den spænding, der er til stede ved den analoge indgang. Vi kan bruge spændingsdelerkredsløb til at beregne indgangsspændingen. Lær mere om ADC i Arduino her.
Den målte spænding vises på 16x2 LCD-displayet (Liquid Crystal Display). Vi har også vist spændingen i Serial Monitor af Arduino IDE og bekræftet den målte spænding ved hjælp af multimeter.
Nødvendig hardware:
- Arduino uno
- 16x2 LCD (Liquid Crystal Display)
- 100 k ohm modstand
- 10 k ohm modstand
- 10 k ohm potentiometer
- brødbræt
- jumper ledninger
Spændingsdelerkredsløb:
Før vi går ind i dette Arduino Voltmeter-kredsløb, kan vi diskutere om Voltage Divider Circuit.
Spændingsdeler er et resistivt kredsløb og er vist i figur. I dette resistive netværk har vi to modstande. Som vist i figur R1 og R2, som er på 10k og 100k ohm. Grenens midtpunkt tages til måling som en anologindgang til Arduino. Spændingsfaldet over R2 kaldes Vout, det er den delte spænding i vores kredsløb.
Formler:
Ved hjælp af den kendte værdi (to modstandsværdier R1, R2 og indgangsspændingen) kan vi erstatte i ligningen nedenfor for at beregne udgangsspændingen.
Vout = Vin (R2 / R1 + R2)
Denne ligning angiver, at udgangsspændingen er direkte proportional med indgangsspændingen og forholdet mellem R1 og R2.
Ved at anvende denne ligning i Arduino-koden kan indgangsspændingen let udledes. Arduino kan kun måle DC-indgangsspændingen på + 55v, Med andre ord, når du måler 55V, vil Arduino-analoge stiften have sin maksimale spænding på 5V, så det er sikkert at måle inden for denne grænse. Her er modstandene R2 og R1-værdien indstillet til 100000 og 10000, dvs. i forholdet 100: 10.
Kredsløbsdiagram og forbindelser:
Forbindelsen til dette Arduino Digital Voltmeter er enkel og vist i kredsløbsdiagrammet nedenfor:
Pin DB4, DB5, DB6, DB7, RS og EN af LCD forbindes direkte til Pin D4, D5, D6, D7, D8, D9 af Arduino Uno
Midtpunktet på to modstande R1 og R2, som gør spændingsdelerkredsløbet, er forbundet til Arduino Pin A0. Mens de andre 2 ender er forbundet til indgangsspændingen (spænding, der skal måles) og GND.
Kodning Forklaring:
Fuld Arduino-kode til måling af jævnstrømsspændingen er angivet i kodedelen nedenfor. Koden er enkel og kan let forstås.
Hoveddelen af koden er at konvertere og kortlægge den givne indgangsspænding til vist udgangsspænding ved hjælp af ovenstående ligning Vout = Vin (R2 / R1 + R2). Som nævnt tidligere Arduino ADC output værdi vil variere fra 0 til 1023 og Arduino max udgangsspænding er 5v, så vi er nødt til at multiplicere den analoge indgang ved A0 til 5/1024 for at få den reelle spænding.
ugyldig loop () {int analogvalue = analogRead (A0); temp = (analog værdi * 5,0) / 1024,0; // FORMEL, DER BRUGES TIL OMDANNELSE AF SPÆNDINGEN input_volt = temp / (r2 / (r1 + r2));
Her har vi vist den målte spændingsværdi på LCD og seriel skærm af Arduino. Så her i koden bruges Serial.println til at udskrive værdierne på Serial monitor og lcd.print bruges til at udskrive værdierne på 16x2 LCD.
Serial.print ("v ="); // udskriver spændingsværdien i den serielle skærm Serial.println (input_volt); lcd.setCursor (0, 1); lcd.print ("Voltage ="); // udskriver spændingsværdien i LCD-displayet lcd.print (input_voltage);
Sådan kan vi nemt beregne DC-spændingen ved hjælp af Arduino. Se videoen nedenfor for demonstration. Det er lidt svært at beregne vekselspændingen ved hjælp af Arduino, du kan kontrollere det samme her.