Arduino Nano - Spannung messen

In diesem Leitfaden lernen wir, wie man die Spannung zwischen 0 V und 25 V mit einem Spannungssensor und einem Arduino Nano misst. Wir werden Folgendes besprechen:

Arduino Nano Spannungsensor

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×Voltage Sensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Spannungssensor

Ein Spannungssensor ist eine einsatzbereite Schaltung, die die Spannung zur einfachen Messung teilt. Er hat zwei Widerstände: einen 30 kΩ und einen 7,5 kΩ. Bei einer Referenzspannung von 5 V für den ADC kann der Sensor Spannungen von 0 bis 25 V Gleichspannung messen. Wenn die Referenzspannung des ADC 3,3 V beträgt, kann der Sensor von 0 bis 16,5 V Gleichspannung messen.

Pinbelegung

Ein Spannungsensor besteht aus zwei Gruppen von Pins.

  • Eingangsschnittstelle (verbinden Sie dort, wo Sie die Spannung messen müssen):
  • VCC-Pin: Dies ist der positive Pin. Verbinde ihn mit dem Punkt, der eine höhere Spannung hat.
  • GND-Pin: Dies ist der negative Pin. Verbinde ihn mit dem günstigeren Punkt.
  • Ausgabeschnittstelle (mit dem Arduino Nano verbinden):
  • Vout-Pin (S): Dies ist der Signaleingang. Verbinden Sie ihn mit einem analogen Eingang am Arduino Nano.
  • NC-Pin (+): Nicht anschließen.
  • GND-Pin (-): Dies ist der Erdungsanschluss. Schließe ihn an GND (0V) des Arduino Nano an.
Spannungs-Pinbelegung
image source: diyables.io

Verdrahtungsdiagramm

Arduino Nano Spannungssensor-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Arduino Nano Code

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-measure-voltage */ #define ANALOG_IN_PIN A7 // The Arduino Nano pin connected to voltage sensor #define REF_VOLTAGE 5.0 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Schnelle Schritte

  • Schließen Sie das Arduino Nano an den Spannungssensor an.
  • Schließen Sie das Arduino Nano mit einem USB-Kabel an einen Computer an.
  • Öffnen Sie die Arduino IDE und wählen Sie das richtige Board und den richtigen Port aus.
  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf das Arduino Nano zu übertragen.
  • Testen Sie, indem Sie 5 Volt und 3,3 Volt am Arduino Nano messen.
  • Überprüfen Sie die Ergebnisse im seriellen Monitor.
COM6
Send
Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 4.96 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39 Measured Voltage = 3.39
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Sie könnten feststellen, dass das Messergebnis inkorrekt ist oder deutlich vom tatsächlichen Wert abweicht. Dies ist nicht die Schuld des Spannungssensor-Moduls. Der gemessene Wert kann schwanken, weil die Standard-Spannungsreferenz 5 V beträgt, die instabil sein kann und von der Stromversorgung abhängt. Hier sind einige Lösungsvorschläge, um dieses Problem zu beheben:

  • Stellen Sie sicher, dass das Netzteil dem Arduino eine ausreichende Spannung liefert. Sie können dies überprüfen, indem Sie ein Voltmeter verwenden, um zu prüfen, ob der 5-V-Pin am Arduino 5 V ausgibt.
  • Verwenden Sie eine externe Spannungsreferenz von 3,3 V. Mit dieser Methode können Sie jedoch nur Spannungen von 0 bis 16,5 V DC messen.

Messung der Spannung mit einer 3,3-V-Referenz

Um diese Methode zu verwenden, müssen Sie sowohl die Hardware als auch den Code einrichten. Für die Hardware verbinden Sie den AREF-Pin des Arduino mit 3,3 V, wie im untenstehenden Diagramm gezeigt.

Arduino Nano misst Spannung – Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Dann verwenden Sie den folgenden Code:

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-measure-voltage */ #define ANALOG_IN_PIN A7 // The Arduino Nano pin connected to voltage sensor #define REF_VOLTAGE 3.3 #define ADC_RESOLUTION 1024.0 #define R1 30000.0 // resistor values in voltage sensor (in ohms) #define R2 7500.0 // resistor values in voltage sensor (in ohms) void setup() { Serial.begin(9600); analogReference(EXTERNAL); } void loop() { // read the analog input int adc_value = analogRead(ANALOG_IN_PIN); // determine voltage at adc input float voltage_adc = ((float)adc_value * REF_VOLTAGE) / ADC_RESOLUTION; // calculate voltage at the sensor input float voltage_in = voltage_adc * (R1 + R2) / R2; // print results to serial monitor to 2 decimal places Serial.print("Measured Voltage = "); Serial.println(voltage_in, 2); delay(500); }

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!