Cuprins:
Video: Contor de tensiune precis și precis Arduino (0-90V DC): 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
În acest instructable, am construit un voltmetru pentru a măsura tensiuni ridicate de curent continuu (0-90v) cu precizie și precizie relativă folosind un Arduino Nano.
Măsurătorile de testare pe care le-am făcut au fost suficient de precise, mai ales la 0,3v de tensiunea reală măsurată cu un voltmetru standard (am folosit un Astro AI DM6000AR). Acest lucru este suficient de apropiat pentru utilizarea intenționată a dispozitivului.
Pentru a arhiva acest lucru am folosit o referință de tensiune (4.096v) și un divizor de tensiune.
Pe partea de cod, am folosit, desigur, opțiunea „referință externă” pentru Arduino Nano și exemplul „Smoothing” din tutorialele Arduino.
Provizii
1 x Arduino Nano - Link
1 x Afișaj Oled (SSD 1306) - Link
1 x 1 / 4W Rezistențe 1% - 1k ohm - Link
1 x 1 / 4W Rezistențe 1% - 220k ohm - Link
1 x 1 / 4W Rezistențe 1% - 10k ohm - Link
1 x 4.096v LM4040DIZ-4.1 Referință tensiune - Link
Plăci și fire - Link
Astro AI DM6000AR - Link
USB Power Bank - Link
Baterii de 9V - Link
CanadianWinters este participant la Programul Asociaților Amazon Services LLC, un program de publicitate afiliat conceput pentru a oferi site-urilor un mijloc de a câștiga taxe prin conectarea la Amazon.com și site-uri afiliate. Prin utilizarea acestor link-uri, în calitate de asociat Amazon câștig din achiziții eligibile, chiar dacă cumpărați altceva - și nu vă va costa nimic.
Pasul 1: Schemele
Am conectat toate piesele conform schemelor de mai sus. În special, am ales referința de tensiune 4.096 pentru a rămâne cât mai aproape de marca 5v pentru a evita pierderea rezoluției.
În urma fișei tehnice, am ales un rezistor de 1K ohm pentru referința de tensiune, chiar dacă ar putea fi utilizată o valoare diferită. Tensiunea pentru referință este furnizată de pinul Nano 5v.
Ideea circuitului este că tensiunea continuă care trebuie măsurată trece printr-un rezistor de tensiune. Tensiunea scalată și apoi intră în pinul analogic al Arduino pentru a fi eșantionat, netezit, redimensionat și afișat pe afișajul OLed.
Am încercat să păstrez lucrurile simple:)
Pasul 2: Codul și calculele rezistenței
Valorile rezistențelor au fost alese, deoarece este recomandabil (dacă nu mă înșel, este în foaia tehnică Arduino / Atmega) pentru a menține impedanța sub 10k ohm.
Pentru a simplifica lucrurile, am realizat o foaie de calcul care automatizează calculele în cazul în care doriți să utilizați diferite valori ale rezistenței: Link către Google Sheet
Iată codul pe care l-am folosit pentru acest proiect:
#include
#include U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotație, [resetare]) tensiune de plutire = 0; // folosit pentru a stoca valoarea de tensiune float Radjust = 0,043459459; // Factor divizor de tensiune (R2 / R1 + R2) floare vbat = 0; // tensiunea finală după calc- tensiunea plutitoare a bateriei Vref = 4.113; // Referință de tensiune - valoarea reală măsurată. Valoare nominală 4.096v const int numCitiri = 50; // numărul de probe de citire - crește pentru o mai bună netezire. Reduceți pentru o citire mai rapidă. citiri int [numCitiri]; // citirile din intrarea analogică int readIndex = 0; // indexul citirii curente nesemnate lung total = 0; // media int totală executată = 0; // variabile pentru reîmprospătarea ecranului fără utilizarea întârzierii nesemnate mult timp anteriorMillis = 0; // va stoca ultima dată când ecranul a fost actualizat // constantele nu se vor schimba: const long interval = 50; // interval la care să reîmprospătați ecranul (milisecunde) void setup (void) {analogReference (EXTERNAL); // utilizați AREF pentru tensiunea de referință 4.096. Tensiunea mea reală de referință este 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {// … încheie la început: readIndex = 0; } // calculați media: medie = (total / numCitiri); tensiune = medie * (Vref / 1023.0); //4.113 este Vref vbat = tensiune / Radjust; // Setarea întârzierii pentru reîmprospătarea ecranului folosind Millis if (currentMillis - previousMillis> = interval) {// salvați ultima dată când ecranul a fost actualizat previousMillis = currentMillis; u8g2.clearBuffer (); // ștergeți meniul intern // Afișare tensiune pachet u8g2.setFont (u8g2_font_fub20_tr); // font 20px u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // font 10 px u8g2.setCursor (76, 20); u8g2.print („Volți”); u8g2.setCursor (1, 40); u8g2.print („CanadianWinters”); u8g2.setCursor (1, 60); u8g2.print ("Tensiune precisă"); } u8g2.sendBuffer (); // transferați memoria internă la întârzierea afișajului (1); }
Vă rugăm să rețineți că sunt cam ruginit cu codificarea Arduino, deci dacă găsiți vreo greșeală sau o modalitate de a îmbunătăți codul, sunt deschis la sugestii:)
Pasul 3: Să-l testăm
Pentru a testa acest voltmetru am folosit baterii de 8x 9v pe care le-am obținut la un magazin local. Plănuiesc să folosesc acest voltmetru pentru a măsura tensiunea de pe pachetele de baterii ale bicicletelor mele electrice (au tensiuni cuprinse între 24-60v cu cele ocazionale de 72v).
Odată ce dispozitivele electronice sunt ambalate într-un pcb și o cutie mică, acest lucru va face un contor de baterii frumos și portabil. Grafica și fonturile de pe OLED pot fi personalizate pentru a se potrivi nevoilor dvs. (de exemplu, font mai mare pentru o citire ușoară).
Scopul meu a fost să citesc tensiunea pe contorul Oled / Arduino nu prea departe de multimetrul meu digital. Îmi propuneam +/- 0, 3v max delta. După cum puteți vedea din videoclip, am putut arhiva acest lucru, cu excepția capătului superior al măsurătorilor.
Sper că ți-a plăcut acest Instructable și să-mi spui gândurile!
Recomandat:
Monitor de tensiune pentru baterii de înaltă tensiune: 3 pași (cu imagini)
Monitor de tensiune pentru baterii de înaltă tensiune: În acest ghid vă voi explica cum mi-am construit monitorul de tensiune al bateriei pentru placa mea electrică. Montați-l cum doriți și conectați doar două fire la baterie (Gnd și Vcc). Acest ghid presupunea că tensiunea bateriei dvs. depășește 30 de volți, w
Contor precis al abonaților YouTube: 4 pași
Contor exact al abonaților YouTube: Am început să mă pregătesc pentru acest proiect în urmă cu aproximativ o lună, dar apoi am fost deraiat de YouTube când au anunțat că nu vor mai furniza numărul real de abonați, ci cel mai apropiat număr rotunjit. În acest moment, asta nu este cu adevărat o problemă pentru
Contor de tensiune și curent Wifi multicanal: 11 pași (cu imagini)
Multimetru Wifi Tensiune și contor de curent: atunci când faceți breadboarding, trebuie adesea să monitorizați diferite părți ale circuitului simultan. Pentru a evita durerea de a lipi sondele multimetrice dintr-un loc în altul, am vrut să proiectez un contor multicanal de tensiune și curent. Placa Ina260
Alimentare de tensiune DC reglabilă utilizând regulatorul de tensiune LM317: 10 pași
Sursa de alimentare DC cu tensiune reglabilă utilizând regulatorul de tensiune LM317: În acest proiect, am proiectat o sursă simplă de alimentare DC cu tensiune reglabilă folosind IC LM317 cu o diagramă a circuitului de alimentare LM317. Deoarece acest circuit are un redresor de punte încorporat, putem conecta direct alimentarea de 220V / 110V AC la intrare
Alimentare cu tensiune reglată cu dublă tensiune: 4 pași
Sursă de alimentare cu tensiune dublă: un prieten de-al meu care conduce un magazin de electronice vrea să instaleze un cd-rom vechi pentru a fi folosit ca un cd-player independent în camioneta sa. Problema lui a fost să găsească o sursă de alimentare adecvată în acest scop. Un cd-rom folosește 2 surse de alimentare, 5 volți, care este utilizat în