Arduino är en mångsidig mikrokontroller som kan mäta spänning med hjälp av sin inbyggda analog-till-digitala omvandlare (ADC). Denna kapacitet är avgörande för applikationer som att övervaka batterinivåer, avkänna insignaler och mäta sensorutgångar. Denna handledning kommer att vägleda dig genom processen att mäta spänningen med en arduino.
Vad du behöver
- Arduinstyrelse (t.ex. Uno, Mega, Nano)
- Spänningsdelare (om mätningspänningen är högre än 5V)
- Breadboard och jumpertrådar
- Spänskälla för att mäta (t.ex. batteri, sensor eller justerbar strömförsörjning)
- En dator med Arduino Ide installerad
Steg 1: Förstå spänningsmätning på Arduino
Arduinos ADC konverterar analoga spänningar (0V till 5V på de flesta brädor) till ett 10-bitars digitalt värde. Detta innebär att ADC ger ett värde mellan 0 och 1023, där 0 motsvarar 0V och 1023 motsvarar 5V (eller referensspänningen).
Nyckelformel
För att beräkna ingångsspänningen:
Voltage = (ADC_Value / 1023.0) * Reference_Voltage
Notera: För de flesta Arduino -kort är standardreferensspänningen 5V. Om du använder 3.3V -varianten, justera formeln i enlighet därmed.
Steg 2: Direktspänningsmätning
För spänningar upp till 5V kan du ansluta spänningskällan direkt till en analog stift.
Ledning
Komponent | Arduinosnål |
---|---|
Spänningskälla (+) | A0 |
Spänningskälla (-) | Gard |
Exempelkod
#define analogPin A0
void setup() {
Serial.begin(9600);
}
void loop() {
int adcValue = analogRead(analogPin); // Read ADC value
float voltage = (adcValue / 1023.0) * 5.0; // Convert to voltage
Serial.print("Voltage: ");
Serial.print(voltage, 2); // Print voltage with 2 decimal places
Serial.println(" V");
delay(1000); // Update every second
}
Steg 3: Mätning av högre spänningar med en spänningsdelare
För att mäta spänningar högre än 5V, använd en spänningsdelare För att skala ner ingångsspänningen.
Spänningsdelarformel
Spänningsdelaren skalar ingångsspänningen med två motstånd:
Vout = Vin * (R2 / (R1 + R2))
Till exempel för att mäta upp till 12V:
- R1 = 10K ohms
- R2 = 10K ohms
- Skalningsfaktor = 0,5 (Vout = Vin / 2)
Ledning
Komponent | Förbindelse |
---|---|
Spänningskälla (+) | Spänningsdelare R1 -ingång |
Spänningsdelare R1/R2 -korsning | Arduino a0 |
Spänningskälla (-) | Gard |
Exempelkod
#define analogPin A0
const float R1 = 10000.0; // Resistor R1 value in ohms
const float R2 = 10000.0; // Resistor R2 value in ohms
void setup() {
Serial.begin(9600);
}
void loop() {
int adcValue = analogRead(analogPin); // Read ADC value
float voltage = (adcValue / 1023.0) * 5.0; // Voltage at A0
// Scale up to actual input voltage
float inputVoltage = voltage * ((R1 + R2) / R2);
Serial.print("Input Voltage: ");
Serial.print(inputVoltage, 2); // Print with 2 decimal places
Serial.println(" V");
delay(1000); // Update every second
}
Steg 4: Använd en extern referensspänning
För mer exakta mätningar kan du använda en extern referensspänning genom att ansluta den till AREF -stiftet.
Steg för att ställa in extern referens
- Anslut en stabil referensspänning (t.ex. 3.3V) till AREF -stiftet.
- Ställ referensspänningen i koden:
analogReference(EXTERNAL);
- Justera beräkningar i koden för den nya referensspänningen.
Steg 5: Bästa metoder för exakta mätningar
- Undvik brus: Använd korta ledningar och korrekt jordning för att minska elektriskt brus.
- Kalibrera din installation: Verifiera avläsningar med en multimeter för att säkerställa noggrannhet.
- Skydda Arduino: Använd motstånd eller dioder för att skydda den analoga ingångsstiftet från överspänning.
- Filtrera bullriga signaler: Tillsätt en kondensator över ingången för att jämna ut spänningsfluktuationer.
Applikationer av spänningsmätning
- Övervakning av batterinivåer
- Avkänna analoga signaler från sensorer
- Mätning av strömförsörjningsspänningar
- DIY multimeterprojekt
Felsökning
-
Felaktiga avläsningar:
- Kontrollera ledningar och se till att korrekta motståndsvärden för spänningsdelaren.
- Kontrollera referensspänningen i beräkningar.
-
Fluktuerande värden:
- Tillsätt en kondensator (10μF eller 100 uF) över ingången.
-
Överspänningsskydd:
- Se till att ingångsspänningen inte överskrider spänningsdelarens beräknade gränser.
Slutsats
Att mäta spänning med en arduino är enkel och mycket användbar för många elektronikprojekt. Oavsett om du övervakar batterinivåer eller gränssnitt med sensorer öppnar förståelse för spänningsmätning upp ett brett spektrum av möjligheter. Experimentera med olika inställningar och integrera spänningsmätning i dina projekt!