
Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52



In diesem anweisbaren habe ich ein Voltmeter gebaut, um hohe Spannungen DC (0-100 V) mit relativer Präzision und Genauigkeit mit einem Arduino Nano und einem ADS 1115 ADC zu messen.
Dies ist eine zweite Version des Voltmeters, das hier mein vorheriges instructable verwendet hat:
Die von mir durchgeführten Testmessungen waren genau, meist innerhalb von 0,1 V der tatsächlichen Spannung, die mit einem Standardvoltmeter gemessen wurde (ich habe ein Astro AI DM6000AR verwendet).
Dies ist meiner Meinung nach viel besser und einfacher als die Verwendung einer externen Spannungsreferenz auf dem Arduino.
Lieferungen
1 x Arduino Nano - Link
1 x Oled-Display (SSD 1306) - Link
1 x ADS 1115 - 16-Bit-ADC - Link
1 x 1/4W (ich schlage jedoch vor, 1W-Widerstände zu verwenden) 1% Widerstände - 220k Ohm - Link
1 x 1/4W (ich schlage jedoch vor, 1W-Widerstände zu verwenden) 1% Widerstände - 10k Ohm - Link
Steckbrett und Drähte - Link
Astro AI DM6000AR - Link
USB-Powerbank - Link
9V Batterien - Link
CanadianWinters ist Teilnehmer am Amazon Services LLC Associates-Programm, einem Partner-Werbeprogramm, das Websites die Möglichkeit bietet, Gebühren durch Verlinkung zu Amazon.com und verbundenen Websites zu verdienen. Durch die Verwendung dieser Links verdiene ich als Amazon-Partner an qualifizierten Käufen, auch wenn Sie etwas anderes kaufen – und es kostet Sie nichts.
Schritt 1: Schritt 1: die Schaltpläne

Ich habe alle Teile gemäß den obigen Schaltplänen angeschlossen.
Ich habe den ADDR-Pin des ADC1115 mit Masse verbunden. Dies setzt die Adresse des ADC auf 0x48.
Schritt 2: Schritt 2: die Code- und Widerstandsberechnungen

Wie in der vorherigen Anleitung besteht die Idee der Schaltung darin, dass die zu messende Gleichspannung durch einen Spannungswiderstand geht. Die skalierte Spannung wird dann in den analogen Pin des ADC-Wandlers gelesen, dann über I2C an den Arduino weitergegeben und dann neu skaliert und auf dem OLed-Display angezeigt.
Ich habe in diesem Fall keine Mittelung oder Glättung im Code verwendet, da die Messwerte ziemlich genau und präzise erscheinen. Um das Rauschen zu reduzieren, möchten Sie möglicherweise einen kleinen Kondensator zwischen A0 (am ADC) und Masse hinzufügen. Für meinen Test war es aber nicht erforderlich.
Eine Sache, die mir aufgefallen ist, war ein leichtes Rauschen, wenn keine Batterie angeschlossen war (0 Volt). Ich habe den seriellen Monitor des Arduino verwendet, um den ADC-Wert anzuzeigen und ihn per Code zu korrigieren / anzupassen.
Wie in der vorherigen Anleitung habe ich eine Tabelle erstellt, die die Berechnungen automatisiert, falls Sie unterschiedliche Widerstandswerte im Spannungsteiler verwenden möchten: Link zu Google Sheet
Hier ist der Code, den ich für dieses Projekt verwendet habe:
#enthalten
#include #include #include Adafruit_ADS1115 Anzeigen (0x48); //Adresse des ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);// (Rotation, [reset]) int calib = 7; // Wert der Kalibrierung von ADS1115 zur Reduzierung der Fehlererhaltungsspannung = 0; // zum Speichern des Spannungswerts Float Radjust = 0.043421905; // Spannungsteilerfaktor (R2 / R1+R2) float vbat = 0; // Endspannung nach Calcs- Spannung der Batterie // Variablen zum Auffrischen des Bildschirms ohne Verzögerung unsigned long previousMillis = 0; // speichert die letzte Aktualisierung des Bildschirms // Konstanten ändern sich nicht: const long interval = 250; // Intervall, in dem der Bildschirm aktualisiert werden soll (Millisekunden) Void setup (void) { Serial.begin (9600); u8g2.begin(); ads.begin(); aufrechtzuerhalten. Void Schleife (void) {int16_t adc0; // 16 Bit ADC lesen von Eingang A0 adc0 = ads.readADC_SingleEnded(0); Spannung = ((adc0 + kalibrier) * 0,1875)/1000; unsigned long currentMillis = millis(); vbat = Spannung/Rjust; // Verhindern, dass negative Spannung angezeigt wird, wenn die Batterie abgeklemmt wird if (vbat = Intervall) { previousMillis = currentMillis; u8g2.clearBuffer(); // lösche das interne Menü // Packspannungsanzeige - Schriftarten auf dieser Seite: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20px-Schrift u8g2.setFont (u8g2_font_fub35_tr); // 35px-Schriftart u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont(u8g2_font_8x13B_mr); // 10 px Schriftart u8g2.setCursor (1, 60); u8g2.print("Volt"); } u8g2.sendBuffer(); // internen Speicher auf die Anzeigeverzögerung übertragen (1); }
Schritt 3: Schritt 3: Lassen Sie es uns testen

Um dieses Voltmeter zu testen, habe ich 10x 9V-Batterien verwendet, die ich in einem lokalen Geschäft bekommen habe. Diesmal konnte ich bis zu 97 Volt messen! Ich plane, dieses Voltmeter zu verwenden, um die Spannung an den Akkus meiner Elektrofahrräder zu messen (sie haben Spannungen von 24-60 V mit gelegentlichen 72 V).
Sobald die Elektronik in eine Leiterplatte und eine kleine Schachtel verpackt ist, wird dies ein schönes und tragbares Batteriemessgerät sein. Die Grafiken und Schriftarten auf dem OLED können an Ihre Bedürfnisse angepasst werden (z. B. größere Schriftart zum leichteren Lesen). Mein Ziel war es, einen Spannungswert auf dem Oled / Arduino-Meter nicht zu weit von meinem Digital Multi Meter entfernt zu haben. Ich strebte +/-0, 3v max Delta an.
Wie Sie aus dem Video am Anfang des Instructable sehen können, konnte ich dies archivieren! Die meisten Lesungen waren genau richtig!
Ich hoffe, Sie haben dieses Instructable genossen und lassen Sie mich Ihre Gedanken wissen!
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow

So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte

ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte

Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i
So machen Sie Ihren Lautsprecher besser: 4 Schritte

So machen Sie Ihren Lautsprecher besser!: Ich möchte meinen Lautsprecher verbessern, weil ich dieses Problem habe, bei dem mein Lautsprecher keine Reichweite hat. Wenn ich zum Beispiel in meinem Pool bin und zur anderen Seite schwimme, kann ich die Musik von einer Seite zur anderen nicht hören. Ich denke, das ist etwas Besonderes, weil ich denke, ein
So zielen Sie mit Ihrer Clip Tek-Pistole besser – wikiHow

So zielen Sie mit Ihrer Clip Tek-Pistole besser: Sie möchten also, dass Ihre Clip Tek-Pistole ein besseres Ziel hat? Ich werde dir sagen, wie es geht. Der beste Weg, um Ihr Ziel zu verbessern, ist die Verwendung eines Laserzielgeräts. es kostet Sie weniger als 10 $