Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Gartenautomation
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Deutsch
  • English
Menu

Widerstand messen ohne Multimeter – Arduino macht’s möglich

Posted on 19. März 202518. März 2025 by Stefan Draeger

Mit einem einfachen Mikrocontroller wie dem Arduino lässt sich ein überraschend präzises Messgerät für elektrische Widerstände bauen – ganz ohne klassisches Multimeter. Die Grundlage dafür bildet eine einfache Spannungsteilerschaltung, bestehend aus einem bekannten, festen Referenzwiderstand und einem variablen, unbekannten Widerstand, den du messen möchtest. Diese beiden Widerstände werden in Serie geschaltet und mit 5 V Versorgungsspannung vom Mikrocontroller betrieben.

Widerstand messen ohne Multimeter – Arduino macht's möglich
Dieses Video auf YouTube ansehen.

Über einen analogen Eingang wird die Spannung zwischen den beiden Widerständen erfasst. Mithilfe einer einfachen Formel lässt sich daraus der unbekannte Widerstand berechnen. Wichtig ist dabei: Die vom Mikrocontroller ausgegebenen 5 V sind nicht immer exakt, sondern können je nach Modell und Qualität leicht schwanken. Um genaue Messergebnisse zu erzielen, solltest du daher die tatsächliche Spannung mit einem Multimeter nachmessen und diesen Wert im Programm verwenden.

In diesem Beitrag zeige ich dir, wie du diese Schaltung aufbaust, wie die Berechnung funktioniert und wie du das Ganze mit wenigen Zeilen Code zum Leben erweckst.

💡 Hinweis: Die Idee zu dieser Schaltung stammt aus einem kurzen TikTok-Video, das mir beim Durchscrollen aufgefallen ist. Die dort gezeigte Umsetzung hat mich inspiriert, das Prinzip genauer zu analysieren, selbst nachzubauen und hier im Blog ausführlich zu beschreiben – inklusive Hintergrundwissen, Schaltplan und Arduino-Code.

Inhaltsverzeichnis

  • Wie funktioniert eine Spannungsteilerschaltung?
  • Aufbau der Schaltung auf dem Breadboard
    • Hinweis zum Piezo Buzzer
  • Schaltung
  • Referenzwiderstand und Versorgungsspannung vorher genau messen
  • Quellcode zum messen von Widerständen am Arduino
  • Fazit

Wie funktioniert eine Spannungsteilerschaltung?

Die Spannungsteilerschaltung ist eine der grundlegendsten und nützlichsten Schaltungen in der Elektronik. Sie besteht aus zwei Widerständen, die in Serie geschaltet werden, also hintereinander. An den Anfang der Kette wird eine Spannungsquelle (in unserem Fall 5 V vom Mikrocontroller) angeschlossen, ans Ende die Masse (GND). Zwischen den beiden Widerständen entsteht eine Teilspannung, die sich einfach messen lässt – genau hier liegt der Trick.

Das Prinzip:
Der Gesamtstrom durch beide Widerstände ist gleich. Die Spannung teilt sich jedoch verhältnismäßig zur Größe der Widerstände auf. Die Spannung am Verbindungspunkt der beiden Widerstände hängt also davon ab, wie groß der untere Widerstand im Verhältnis zum oberen ist.

Formel des Spannungsteilers
Formel des Spannungsteilers
  • Vin​: Eingangsspannung (z. B. 5 V)
  • Vout​: Spannung am Verbindungspunkt
  • R1​: oberer Widerstand (Referenzwiderstand)
  • R2​: unterer Widerstand (unbekannter Widerstand)

Wenn du also den Wert von R1 kennst und Vout misst, kannst du durch einfaches Umstellen der Formel den unbekannten Widerstand R2 berechnen. Genau dieses Prinzip nutzen wir in unserem kleinen Arduino-Projekt, um Widerstände zu bestimmen – ganz ohne klassisches Messgerät.

Aufbau der Schaltung auf dem Breadboard

Die Schaltung baue ich wie immer auf einem Breadboard auf, dieses hat den Vorteil das man auf diesem recht einfach die Bauteile aufstecken und mit entsprechenden Kabeln verbinden kann.

Zusätzlich verwende ich:

  • einen Arduino UNO R3*,
    • ein passendes USB-Datenkabel*
  • ein Acryl Board* inkl. 400 Pin Breadboard*,
  • diverse Breadboardkabel*, 10cm, männlich – männlich,
  • zwei Breadboardkabel* (schwarz & rot), 20cm, männlich – männlich,
  • einen Referenzwiderstand von 10kOhm* (mit 1% Toleranz),
  • diverse unbekannte Widerstände zum prüfen
  • ein Piezo Buzzer*
  • ein 0,96″ OLED-Display* mit I2C Schnittstelle

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Bauteile: Widerstandsmessgerätmit Arduino
Bauteile: Widerstandsmessgerätmit Arduino

Hinweis zum Piezo Buzzer

Es gibt bei den Piezo Buzzer unterschiede, bei einigen ist es egal wie diese angeschlossen werden bei anderen musst du auf die korrekte Polarität achten. Dazu reicht jedoch schon ein Blick auf das Gehäuse, hier ist ein Plus-Symbol am Pin gedruckt.

Piezo Buzzer
Piezo Buzzer

Schaltung

Bevor wir zur Programmierung kommen, werfen wir einen Blick auf den elektrischen Aufbau. Die gesamte Schaltung basiert auf einem einfachen Spannungsteiler, bestehend aus einem bekannten Referenzwiderstand und dem zu messenden Widerstand. Ergänzt wird das Ganze durch ein OLED-Display, auf dem der ermittelte Wert direkt angezeigt wird, sowie einem Piezo-Buzzer, der bei nahezu 0 Ohm ein akustisches Signal ausgibt.

Im folgenden Schaltplan siehst du, wie alle Komponenten miteinander verbunden werden und an welchen Pins sie am Arduino UNO angeschlossen sind.

Schaltung - Arduino UNO R3 als Widerstandsmessgerät
Schaltung – Arduino UNO R3 als Widerstandsmessgerät

Referenzwiderstand und Versorgungsspannung vorher genau messen

Damit die Berechnung des unbekannten Widerstands möglichst präzise erfolgt, ist es wichtig, zwei Werte vorab genau zu bestimmen:

  1. Der Referenzwiderstand (R1)
    Verwende am besten einen Widerstand mit geringer Toleranz (1 % oder besser) und miss seinen tatsächlichen Wert mit einem Multimeter. Ein nomineller 10 kΩ-Widerstand kann in der Praxis z. B. 9,95 kΩ oder 10,1 kΩ betragen. Diesen exakten Wert trägst du dann im Programmcode ein.
  2. Die Versorgungsspannung (Vin)
    Auch wenn der Arduino UNO mit 5 V arbeitet, liegt die tatsächliche Spannung oft etwas darunter oder darüber – abhängig von USB-Spannung, Board-Qualität und Last. Miss die Spannung am 5V-Pin des Arduino mit einem Multimeter und verwende diesen gemessenen Wert im Code, um die Spannung Vin korrekt zu setzen.

Nur wenn diese beiden Werte möglichst exakt sind, ergibt die Widerstandsberechnung aus dem Spannungsteiler auch ein realistisches und zuverlässiges Messergebnis.

10 kOhm Referenzwiderstand messen
10 kOhm Referenzwiderstand messen
5V des Arduino UNO R3 ausmessen
5V des Arduino UNO R3 ausmessen

Quellcode zum messen von Widerständen am Arduino

Wenn der Referenzwiderstand und die Versorgungsspannung von 5V am Arduino gemessen wurde, können wir uns dem Quellcode widmen. Dieser ist recht einfach und gliedert sich in 3 Abschnitte:

  • auslesen des Widerstandes,
  • umrechnen zu Ohm, kOhm, MOhm,
  • ertönen des Piezo Buzzers bei 0 Ohm (Durchgang)

Für die Ansteuerung des Displays verwende ich die Adafruit SSD1306 Bibliothek welche du über den Bibliotheksverwalter der Arduino IDE installieren kannst.

Installieren der Abhängigkeiten von der Bibliothek Adafruit SSD1306
Installieren der Abhängigkeiten von der Bibliothek Adafruit SSD1306

Die Schriftart auf dem OLED-Display kannst du im Programmcode ganz einfach anpassen. Die Adafruit GFX-Library bietet dir dafür eine Auswahl an eingebetteten Fonts, die du über #include und setFont() aktivieren kannst. Je nach Displaygröße und gewünschtem Layout kannst du so eine besser lesbare oder kompaktere Darstellung erreichen.

Eine Übersicht aller verfügbaren Schriftarten findest du im offiziellen Adafruit-Beitrag unter:
🔗 https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts

Dort findest du auch Beispiele zur Integration und Vorschauen der jeweiligen Schriftarten.

Quellcode
/***************************************************************
 * Autor:       Stefan Draeger
 * Webseite:    https://draeger-it.blog
 * Projekt:     DIY Widerstandsmessgerät mit OLED-Anzeige
 * Beschreibung:
 * Dieses Projekt misst unbekannte Widerstände mithilfe einer 
 * einfachen Spannungsteilerschaltung und einem Arduino UNO.
 * Der Referenzwiderstand R1 ist exakt gemessen (hier: 9,95 kOhm),
 * ebenso die Versorgungsspannung (hier: 4,94 V).
 * Der Wert des unbekannten Widerstands wird am analogen Pin A0 
 * erfasst, aus 10 Messungen gemittelt und auf einem OLED-Display 
 * angezeigt. Zusätzlich ertönt bei nahezu 0 Ohm ein kurzer Piepton,
 * womit sich die Schaltung auch als Durchgangsprüfer eignet.
 ***************************************************************/

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeMono9pt7b.h>

// Displaykonfiguration
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// Pin-Definitionen
#define piezoBuzzer 7     // Piezo-Buzzer an D7
#define analogPin A0      // Analogeingang zur Spannungserfassung

#define debug false       // Debug-Modus für serielle Ausgabe

// Kalibrierte Werte für genaue Messung
const float Vin = 4.94;        // Exakt gemessene Versorgungsspannung (V)
const float R1 = 9950.0;       // Exakt gemessener Referenzwiderstand (Ohm)

float R2 = -1;                 // Zwischenspeicher für gemessenen Widerstand

void setup() {
  Serial.begin(9600);          // Serielle Schnittstelle starten

  display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS); // OLED initialisieren
  display.display();           // Begrüßungsbild anzeigen
  delay(2000);                 // Kurze Pause vor Messung
}

void loop() {
  float newR2 = calculateR2(); // Neuen Messwert berechnen

  if (newR2 != R2) {           // Nur bei geänderten Werten aktualisieren
    R2 = newR2;

    String value = "-undefined-";

    // Einheitenerkennung und Umrechnung
    if (R2 < 1000.0) {
      value = String(R2, 1) + " Ohm";
    } else if (R2 < 1000000.0) {
      value = String(R2 / 1000.0, 2) + " kOhm";
    } else if (R2 < 10000000.0) {
      value = String(R2 / 1000000.0, 3) + " MOhm";
    } else {
      value = String(0, 3) + " Ohm"; // Fehlerfall
    }

    if (R2 == 0) {
      tone(piezoBuzzer, 600, 25);  // Piezo piept bei 0 Ohm
    }

    displayNewValue(value); // Neuen Wert am Display anzeigen
  }
}

// Funktion zur Anzeige auf OLED
void displayNewValue(String value) {
  display.clearDisplay();
  display.setFont(&FreeMono9pt7b);
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 25);
  display.println(value);
  display.display();
}

// Funktion zur Widerstandsmessung mit Mittelwertbildung
float calculateR2() {
  const int numReadings = 10;  // Anzahl der Messwiederholungen
  float sum = 0;

  for (int i = 0; i < numReadings; i++) {
    int raw = analogRead(analogPin);                   // Rohwert vom ADC
    float Vout = raw * (Vin / 1023.0);                  // Spannung berechnen
    float R2 = (Vout * R1) / (Vin - Vout);              // Spannungsteiler-Formel
    sum += R2;
    delay(5); // kurze Pause zur Glättung
  }

  float avgR2 = sum / numReadings;                     // Durchschnitt berechnen

  if (debug) {
    Serial.print("Gemittelter Widerstand: ");
    Serial.println(avgR2);
  }

  return avgR2;
}
Programm: messen von Widerstände am Arduino mit einer SpannungsteilerschaltungHerunterladen

Fazit

Das Messen von Widerständen mit dem Arduino ist dank einer einfachen Spannungsteilerschaltung unkompliziert und liefert erstaunlich präzise Ergebnisse – vorausgesetzt, man kennt den Referenzwiderstand und die Versorgungsspannung genau. Mit etwas zusätzlichem Code und einem OLED-Display lässt sich daraus sogar ein praktisches kleines Messgerät für das heimische Labor oder die Bastelkiste bauen.

Widerstand am Arduino mittels Spannungsteilerschaltung messen
Widerstand am Arduino mittels Spannungsteilerschaltung messen

Trotzdem sollte man realistisch bleiben: Ein klassisches, geprüftes Multimeter bietet deutlich mehr Komfort – insbesondere durch die Möglichkeit, auch Spannungen (Gleich- und Wechselspannung) sowie Stromstärken zu messen. Solche Geräte sind bereits ab rund 15 € erhältlich und damit eine sinnvolle Ergänzung zu jedem DIY-Messprojekt.

Dieses Arduino-Projekt zeigt jedoch schön, wie leicht sich mit einfachen Mitteln funktionale Tools realisieren lassen – und ganz nebenbei lernt man eine Menge über Spannungsteiler, Analogmessung und Code-Strukturierung.

2 thoughts on “Widerstand messen ohne Multimeter – Arduino macht’s möglich”

  1. Florian sagt:
    23. Mai 2025 um 13:43 Uhr

    Eignet sich dieses Setup auch um Widerstandsmessungen für Werte unter 10 Ohm zu machen

    Antworten
    1. Stefan Draeger sagt:
      25. Mai 2025 um 08:14 Uhr

      Hi,

      klaro kannst du das. Der Code ist dafür ausgelegt auch kleiner als 10k Ohm zu berechnen.

      Gruß, Stefan

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}