Taula de continguts:
- Subministraments
- Pas 1: Pas 1: els esquemes
- Pas 2: Pas 2: els càlculs de codi i resistència
- Pas 3: Pas 3: Provem-ho
Vídeo: Arduino Volt Meter (0-100V DC) - Versió 2 (millor): 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
En aquesta instrucció, he construït un voltímetre per mesurar tensions altes de corrent continu (0-100v) amb una precisió i precisió relativa mitjançant un Arduino Nano i un ADS 1115 ADC.
Aquesta és una segona versió del voltímetre que he utilitzat aquí:
Les mesures de prova que vaig fer van ser precises, sobretot a 0,1 v de la tensió real mesurada amb un voltímetre estàndard (vaig utilitzar un Astro AI DM6000AR).
Al meu entendre, això és molt millor i és més fàcil que utilitzar una referència de tensió externa a l'Arduino.
Subministraments
1 x Arduino Nano - Link
1 x pantalla Oled (SSD 1306): enllaç
1 x ADS 1115 - ADC de 16 bits: enllaç
1 x 1 / 4W (recomano utilitzar resistències de 1W) 1% de resistències - 220k ohm - Enllaç
1 x 1 / 4W (recomano utilitzar resistències de 1W) 1% de resistències - 10k ohm - Enllaç
Taula de pa i cables - Enllaç
Astro AI DM6000AR - Enllaç
Banc d'alimentació USB: enllaç
Bateries de 9V: enllaç
CanadianWinters participa al Programa Associats d'Amazon Services LLC, un programa de publicitat afiliada dissenyat per proporcionar un mitjà perquè els llocs guanyin tarifes mitjançant l'enllaç a Amazon.com i llocs afiliats. Mitjançant l’ús d’aquests enllaços, com a associat d’Amazon, guanyo amb les compres que compleixin els requisits, fins i tot si compreu una altra cosa, i no us costarà res.
Pas 1: Pas 1: els esquemes
He connectat totes les parts segons els esquemes anteriors.
Vaig lligar el pin ADDR de l'ADC1115 a terra. Això defineix l'adreça de l'ADC a 0x48.
Pas 2: Pas 2: els càlculs de codi i resistència
Com a la instrucció anterior, la idea del circuit és que la tensió CC a mesurar passa per una resistència de tensió. El voltatge escalat i després entra al pin analògic del convertidor ADC per llegir-lo, després es passa a l'Arduino mitjançant I2C i, a continuació, torna a escalar i es mostra a la pantalla OLed.
En aquest cas no he utilitzat cap mitjà ni suavització del codi, ja que les lectures semblen bastant precises. Per reduir el soroll, és possible que vulgueu afegir un condensador petit entre A0 (a l'ADC) i terra. Tot i així, no era necessari per a la meva prova.
Una cosa que vaig notar va ser una mica de soroll quan no hi havia cap bateria connectada (0 volts). He utilitzat el monitor sèrie de l'Arduino per mostrar el valor ADC i corregir-lo / ajustar-lo mitjançant el codi.
Com a la instrucció anterior, vaig fer un full de càlcul que automatitza els càlculs per si voleu utilitzar diferents valors de resistència al divisor de voltatge: enllaç a Google Sheet
Aquí teniu el codi que he utilitzat per a aquest projecte:
#incloure
#include #include #include Adafruit_ADS1115 ads (0x48); // Adreça de l'ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotació, [restabliment]) int calib = 7; // Valor de calibratge de l'ADS1115 per reduir la tensió flotant d'error = 0; // s’utilitza per emmagatzemar el valor de tensió float Radjust = 0,043421905; // Factor divisor de tensió (R2 / R1 + R2) flotant vbat = 0; // tensió final després de calcs- tensió de la bateria // variables per actualitzar la pantalla sense fer servir retards sense signar llarg anteriorMillis = 0; // emmagatzemarà la darrera vegada que es va actualitzar la pantalla // les constants no canviaran: const long interval = 250; // interval per actualitzar la pantalla (mil·lisegons) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } bucle buit (buit) {int16_t adc0; // Lectura ADC de 16 bits de l'entrada A0 adc0 = ads.readADC_SingleEnded (0); voltatge = ((adc0 + calib) * 0,1875) / 1000; corrent llarg sense signar Millis = millis (); vbat = voltatge / Radjust; // Eviteu que es mostri voltatge negatiu quan la bateria està desconnectada si (vbat = interval) {anteriorMillis = currentMillis; u8g2.clearBuffer (); // esborreu el menú intern // Visualització de la tensió del paquet: tipus de lletra en aquesta pàgina: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // font de 20px u8g2.setFont (u8g2_font_fub35_tr); // font 35px u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // font de 10 px u8g2.setCursor (1, 60); u8g2.print ("Volts"); } u8g2.sendBuffer (); // transferir memòria interna al retard de visualització (1); }
Pas 3: Pas 3: Provem-ho
Per provar aquest voltímetre vaig fer servir bateries de 10x 9v que vaig aconseguir en una botiga local. Aquesta vegada he pogut mesurar fins a 97 volts! Tinc previst utilitzar aquest voltímetre per mesurar el voltatge de les bateries de les meves bicicletes elèctriques (tenen tensions que oscil·len entre els 24 i els 60 v amb els ocasionals de 72 v).
Una vegada que l’electrònica s’envasi en un pcb i una petita caixa, es convertirà en un bon mesurador de bateries portàtil. Els gràfics i tipus de lletra de l'OLED es poden personalitzar per adaptar-se a les vostres necessitats (per exemple, tipus de lletra més gran per facilitar la lectura). El meu objectiu era tenir una lectura de voltatge al comptador Oled / Arduino no gaire lluny del meu multímetre digital. Jo pretenia +/- 0, 3v màxim delta.
Com podeu veure al vídeo al començament de l’Instruible, he pogut arxivar-lo. La majoria de lectures van ser perfectes.
Espero que us hagi agradat aquest instructiu i feu-me saber els vostres pensaments.
Recomanat:
Llums del millor amic de llarga distància de bricolatge: 4 passos (amb imatges)
Llums de millor amic de llarga distància de bricolatge: vaig fer llums sincronitzats de llarga distància coneguts com a "Millor amic" llums. Això només significa que es mantenen sincronitzats amb el color actual de l'altra làmpada. Per tant, si canvies una llum verda, poc després l’altra làmpada es tornaria grisa
Sourino: la millor joguina per a gats i nens: 14 passos (amb imatges)
Sourino: la millor joguina per a gats i nens: imagineu llargues festes amb nens i gats jugant a Sourino. Aquesta joguina sorprendrà tant als gats com als nens. Gaudiràs de jugar en mode control remot i embogir el teu gat. En mode autònom, agraireu que Sourino es mogui al voltant del vostre gat
Google Cardboard 1.5: el millor de 1.0 + 2.0: 10 passos (amb imatges)
Google Cardboard 1.5: el millor de 1.0 + 2.0: Google Cardboard és una manera econòmica d’experimentar la realitat virtual (VR) al vostre telèfon mòbil Apple o Android. Baixeu aplicacions (moltes gratuïtes, consulteu les gravacions al final), les introduïu al visualitzador semblant a ViewMaster i moveu el cap per veure 360 graus de real o
Com fer i provar un DAC millor amb ESP32: 5 passos
Com fer i provar un millor DAC amb ESP32: l’ESP32 té 2 convertidors digitals a analògics (DAC) de 8 bits. Aquests DAC ens permeten produir tensions arbitràries dins d’un determinat rang (0-3,3V) amb 8 bits de resolució. En aquest instructiu, us mostraré com construir un DAC i caracteritzar-ne la p
EL DRON MILLOR DE LA HISTORYRIA: 6 passos
EL DRON MÉS COLOR DE LA HISTORYRIA: Benvingut! Aquí teniu el dron més fresc de la història que mai no heu vist (o potser sóc jo) Aquí hi ha tot el necessari: Flybrix Pre-Programated Flightboard Lego Bricks Motors Un telèfon intel·ligent / una tauleta (això és volar el dron) VOLEM