zurück

Ohmmeter mit Arduino

09.06.2018

Mit einer recht einfachen Schaltung kann man den Arduino als Ohmmeter verwenden.
Der Gesamtwiderstand von R1 und R2 zwischen "5V" und "GND" sollte nicht kleiner als 125Ω sein, denn dann würden mehr als 40mA fließen (R = U/I; 5V / 40mA = 125Ω). 40mA ist die Grenze, was die Belastbarkeit der Pins angeht.
Die Messgenauigkeit hängt von vielen Faktoren wie der Spannung des USB-Ports, der Genauigkeit des Referenzwiderstands und dem Verhältnis zum zu messenden Widerstand ab. Die Schaltung beruht auf einem Spannungsteiler. Die Spannung, die am Analogpin anliegt, hängt vom Verhältnis der Widerstände zueinander ab. Kennt man nun den Wert eines Widerstandes und weiß man von einem der Widerstände, wieviel Spannung daran abfällt, kann man das Verhältnis berechnen. Über das Verhältnis kann man wiederum auf den Wert des gefragten Widerstandes schließen.

Verwendete Bauteile

Aufbau

R2 ist der bekannte Referenz-Widerstand, welcher möglichst genau im Code spezifiziert werden sollte, damit das Messergebnis optimale Werte liefert. R1 ist der zu ermittelnde Widerstand.

Schaltplan
Abb.: Schaltplan
Aufbau der Schaltung
Abb.: Aufbau der Schaltung

Code

#define PIN_MEASURE A5

const float sourceVoltage = 5.0;  // in Volt
const int refResistance = 1000.0; // value of the known resistor in Ohm
long reading;
float voltageR1, resistance;

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    // measure 5 times and calculate the average
    reading=0;
    for(byte i=0; i<5; i++){
        reading += analogRead(PIN_MEASURE);
    }
    reading = (long)(reading/5);

    //Spannung berechnen
    voltageR1 = (sourceVoltage/1023.0) * reading;
    Serial.print("Voltage over R2: ");
    Serial.print(voltageR1, 2);
    Serial.println(" V");

    //Berechnung: (R2 = R1 * (U2/U1))
    resistance = refResistance * (voltageR1/(sourceVoltage-voltageR1));
    Serial.print("Resistor: ");
    Serial.print(resistance, 2);
    Serial.println(" Ω");
    Serial.println();
    delay(2000);
}
Ausgabe in der seriellen Konsole
Abb.: Ausgabe in der seriellen Konsole