Sådan oprettes et digitalt voltmeter ved hjælp af Arduino

Sidste søndag, mens jeg forklarede det grundlæggende inden for elektronik og Arduino til min værelseskammerat, udfordrede hun mig til at forstå, hvordan et voltmeter fungerer og bygge en fra bunden ved bare at bruge de ting, jeg allerede ejer. Jeg accepterede udfordringen, begyndte at hacke, kode, teste, genkode og genteste, og til sidst havde jeg mit voltmeter klar og arbejdet ved middagstid!

Jeg brugte Arduino Uno (til at indsamle spænding i analog og til at drive LCD), en lille LCD-skærm, som jeg fik i mit Arduino-startsæt (for at vise spændingen), et brødbræt (for at forbinde alt) og jumperledninger.

Hvis du leder efter et let projekt at lære elektronik, er det sjovt at lave et digitalt voltmeter. Lad os komme igang!

Det elektriske kredsløb

Trin 1

Tag et brødbræt (jeg brugte en lille med 30 rækker) og tilslut en LCD-skærm til den. Brug derefter en ledning til at forbinde en ledning fra GND-stiften (jordtilstand) på Arduino til den negative ladning på brødbrættet og en ledning fra 5V-stiften til den positive ladning. Dette leverer elektrisk strøm til søjlerne på brødbrættet, som vi nu kan forbinde til LCD'et.

Trin 2

Nu forbinder vi stifterne på LCD'et til brødbrættet, så vi kan få strøm til det. Forbind Pin 1 på LCD'et til en negativ ladning, Pin 2 til en positiv ladning, Pin 3 til en negativ ladning, Pin 5 til en negativ ladning, Pin 15 til en positiv ladning, og Pin 16 til en negativ ladning. Tilslut din Arduino for at teste og se, om LCD-skærmen tændes!

Trin 3

Lad os forbinde LCD'et med Arduino, så vi kan vise spændingen (som vi samler fra en analog pin) på LCD'et. Tilslut ben 4, 6, 11, 12, 13 og 14 på LCD-skærmen til enhver digital pin på Arduino (for eksempel pin 2). Sæt derefter en ledning i GND og en anden i en analog pin, som A5. De to ledninger er nu dine sondeledninger.

Vi er nu færdige med elektronikken / hardware. Lad os gå videre til koden.

Koden

Koden er ret enkel. Vi vil bare samle det analoge signal, som Arduino modtager på Pin A5 (eller en hvilken som helst anden analog pin) og konvertere det til digital. Vi vil derefter vise resultaterne på LCD-skærmen.

Dette er den kode, du kan kopiere og indsætte.

#include  int Vpin=A5;float voltage;float volts;LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {Serial.begin(9600);lcd.begin(16,2);}
void loop() {
voltage = analogRead(Vpin); volts = voltage/1023*5.0; Serial.println(volts);lcd.print(“voltage = “);lcd.print(volts);delay(200);lcd.clear();}

Hvad sker der her?

Så vi importerer først LCD-biblioteket og opretter derefter en variabel ved navn Vpin (som vil være den spænding, der indsamles fra A5). Dernæst opretter vi to flere variabler til spændingen og derefter en variabel af typen LiquidCrystal. Endelig konfigurerer vi med den serielle skærm (som er et virkelig nyttigt værktøj i Arduino! Som en fejlfindingskonsol), konverterer den analoge spænding til digital spænding og udskriver (viser) den værdi til LCD-skærmen.

Og det er det! Gå og test forskellige batterier og punkter! Her er fotos fra nogle tests, jeg gjorde:

Hvis du også ønsker at gøre læsningen på LCD'et mere læselig, skal du placere en 1k ohm-modstand i stien til pin 3 (som er til kontrastjustering). Ved at begrænse den elektriske strøm, der strømmer til stiften, forbedrer du skærmens kontrast.

Også vigtig note : I dette voltmeter vil den spænding, du tester, gå som en direkte indgang til Arduino, så du skal kun teste ting, der er inden for området volt, som Arduino sikkert kan håndtere (0–5V). Test med et 9V batteri steger din Arduino.

Tak til denne video-tutorial, der hjælper mig med at finde ud af det elektriske kredsløb. Særlig tak til mine venner Nick Arner og Johnny Wang for at hjælpe mig med at ordne ting. Og tak til Laura Deming for udfordringen! :)

Flere artikler og tutorials om elektronik / hardware og hjerne-computer grænseflader på vej! : D

Hvis du har feedback at dele, er du velkommen til at e-maile mig på [email protected] Jeg ser frem til at høre fra dig!