Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Vaihe 1: kaaviot
- Vaihe 2: Vaihe 2: Koodi- ja vastuslaskelmat
- Vaihe 3: Vaihe 3: Testataan
Video: Arduino -volttimittari (0-100 V DC) - Versio 2 (parempi): 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Tässä ohjeessa olen rakentanut voltimittarin mittaamaan suurjännitteitä DC (0-100v) suhteellisen tarkasti ja tarkasti käyttäen Arduino Nano ja ADS 1115 ADC.
Tämä on toinen versio voltimittarista, jota käytin edellisellä ohjeellani täällä:
Otamani testimittaukset olivat tarkkoja, enimmäkseen 0,1 V: n sisällä vakio voltimetrillä mitatusta todellisesta jännitteestä (käytin Astro AI DM6000AR).
Tämä on mielestäni paljon parempi ja helpompi kuin ulkoisen jänniteohjeen käyttäminen Arduinossa.
Tarvikkeet
1 x Arduino Nano - linkki
1 x Oled -näyttö (SSD 1306) - linkki
1 x ADS 1115 - 16 -bittinen ADC - linkki
1 x 1/4 W (ehdotan kuitenkin 1 W: n vastuksen käyttöä) 1% vastukset - 220 k ohmia - linkki
1 x 1/4 W (ehdotan kuitenkin 1 W: n vastuksen käyttöä) 1% vastukset - 10 k ohmia - Linkki
Leipälauta ja johdot - Linkki
Astro AI DM6000AR - Linkki
USB -virtapankki - linkki
9V Akut - Linkki
CanadianWinters osallistuu Amazon Services LLC Associates -ohjelmaan, joka on kumppanimainosohjelma, jonka tarkoituksena on tarjota sivustoille mahdollisuus ansaita maksuja linkittämällä Amazon.com -sivustoon ja siihen liittyville sivustoille. Käyttämällä näitä linkkejä ansaitsen Amazonin yhteistyökumppanina kelpoisuusostoista, vaikka ostat jotain muuta-eikä se maksa sinulle mitään.
Vaihe 1: Vaihe 1: kaaviot
Yhdistin kaikki osat yllä olevan kaavion mukaisesti.
Sidoin ADC1115: n ADDR -nastan maahan. Tämä asettaa ADC: n osoitteeksi 0x48.
Vaihe 2: Vaihe 2: Koodi- ja vastuslaskelmat
Kuten edellisessä ohjeessa, piirin idea on, että mitattava tasavirtajännite kulkee jännitevastuksen läpi. Skaalattu jännite ja sitten tulee ADC-muuntimen analogiseen nastaan luettavaksi, siirretään sitten Arduinolle I2C: n kautta ja skaalataan uudelleen ja näytetään OLed-näytössä.
Tässä tapauksessa en käyttänyt koodissa keskiarvoistusta tai tasoitusta, koska lukemat näyttävät varsin tarkilta. Kohinan vähentämiseksi saatat haluta lisätä pienen kondensaattorin A0: n (ADC: n) ja maan väliin. Sitä ei kuitenkaan vaadittu kokeeseen.
Yksi asia, jonka huomasin, oli melua, kun akkua ei ollut kiinnitetty (0 volttia). Käytin Arduinon sarjamonitoria näyttämään ADC -arvon ja korjaamaan/säätämään sitä koodin avulla.
Kuten edellisessä ohjeessa, tein laskentataulukon, joka automatisoi laskelmat siltä varalta, että haluat käyttää eri vastuksen arvoja jännitteenjakajassa: Linkki Google -taulukkoon
Tässä on koodi, jota käytin tässä projektissa:
#sisältää
#Sisällytä #Sisällytä #Sisällytä Adafruit_ADS1115 -mainokset (0x48); // ADC: n osoite U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (kierto, [nollaus]) int calib = 7; // ADS1115: n kalibroinnin arvo virran pienentämiseksi = 0; // käytetään jännitearvon tallentamiseen Radjust = 0,043421905; // Jännitteenjakajatekijä (R2 / R1+R2) kelluva vbat = 0; // lopullinen jännite calcs- akun jännite // muuttujat näytön päivittämiseksi ilman viivettä unsigned long previousMillis = 0; // tallentaa viimeksi kun näyttö päivitettiin // vakioita ei muuteta: const long interval = 250; // aikaväli, jolloin näyttö päivitetään (millisekuntia) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void loop (void) {int16_t adc0; // 16 bitin ADC -tulo syötteestä A0 adc0 = ads.readADC_SingleEnded (0); jännite = ((adc0 + calib) * 0,1875)/1000; allekirjoittamaton pitkävirtaMillis = millis (); vbat = jännite/Radjust; // Estä negatiivisen jännitteen näyttäminen, kun akku irrotetaan, jos (vbat = intervalli) {previousMillis = currentMillis; u8g2.clearBuffer (); // tyhjennä sisäinen valikko // Pack Voltage -näyttö - Fontit tällä sivulla: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20px fontti u8g2.setFont (u8g2_font_fub35_tr); // 35 pikselin fontti u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px fontti u8g2.setCursor (1, 60); u8g2.print ("volttia"); } u8g2.sendBuffer (); // siirtää sisäinen muisti näytön viiveeseen (1); }
Vaihe 3: Vaihe 3: Testataan
Tämän volttimittarin testaamiseen käytin 10x 9v paristoja, jotka sain paikallisesta kaupasta. Tällä kertaa voisin mitata jopa 97 volttia! Suunnittelen tämän volttimittarin käyttämistä sähköpolkupyörän akkujen jännitteen mittaamiseen (niiden jännitteet vaihtelevat 24-60v ja satunnaiset 72v).
Kun elektroniikka on pakattu piirilevyyn ja pieneen laatikkoon, tästä tulee mukava ja kannettava akkumittari. OLED -näytön grafiikka ja fontit voidaan räätälöidä tarpeidesi mukaan (esim. Isompi fontti helpon lukemisen vuoksi). Tavoitteeni oli saada jännitteen lukema Oled/Arduino -mittariin, joka ei ole liian kaukana digitaalisesta monimittaristani. Tavoittelin +/- 0, 3v max deltaa.
Kuten näet Instructable -ohjelman alussa olevasta videosta, pystyin arkistoimaan tämän! Suurin osa lukemista oli paikalla!
Toivottavasti pidit tästä Instructable -ohjelmasta ja kerro minulle mielipiteesi!
Suositeltava:
Cree Led H4 -ajovalojen parempi jäähdytys - HYVÄKSYTY: 4 vaihetta
Cree Led H4 -ajovalojen parempi jäähdytys - HYVÄKSYTY: Varajäähdytystuulettimien korvaaminen ulkoisella puhallimella parantaa jäähdytystä ja pidentää käyttöikää. Käyttämäni ledit ovat Newsun h4 -ajovalojen vaihto Amazonista http://www.amazon.com/dp/B00HFK2RAE/ref=sr_ph?ie=UTF8&qid=1415547
Parempi tapa tarkastella/dokumentoida opetusohjelmien tiedostoja: 4 vaihetta
Parempi tapa tarkastella/dokumentoida Instructables -tiedostoja: Ihmiset sisällyttävät usein tiedostoja projektiin Instructables -latausten kautta. Usein tämä on ohjelmistolähdetiedostoja, jotka voivat olla jopa ohjattavan sydän. Instructables ei kuitenkaan anna lukijalle helppoa tapaa lukea ja tarkistaa koodia. (
Rakenna parempi Raspberry Pi -virtapainike: 4 vaihetta
Rakenna parempi Raspberry Pi-virtapainike: Raspberry-virrankatkaisu- tai sammutuspainike on erittäin helppo tehdä. Webissä on paljon tällaisia projekteja ja muutama täällä Instructablesissa, mutta mikään niistä (jonka näen) ei kerro, milloin Pi on todella lopettanut sammutuksensa ja siksi se on
Parempi turvallisuus: Juna -asemien turvallisuuden parantaminen: 7 vaihetta
Turvallisempi Parempi: Juna -asemien turvallisuuden parantaminen: Monet rautatieasemat ovat nykyään turvassa, koska niillä ei ole turvallisuutta, esteitä ja varoitus junan saapumisesta. Näimme tarpeen korjata se. Tämän ongelman ratkaisemiseksi loimme Safer Better. Käytimme tärinä-, liike- ja
Parempi kiertokooderi: 4 vaihetta
Parempi kiertokooderi: Jos olet koskaan yrittänyt käyttää hyllyssä olevaa kiertokooderia projektillesi, olit todennäköisesti pettymys. Johtuiko se asennuksen vaikeudesta tai epätarkasta valvonnasta. Minulla oli sama ongelma, joten päätin korjata sen. Olen suunnitellut 3D -pr