Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Baterije pružaju čistiji oblik istosmjerne (istosmjerne) energije kada se koriste u krugovima. Njihova niska razina buke uvijek ih čini savršenim za neka vrlo osjetljiva kola. Međutim, u trenucima kada im naponski nivo padne ispod određene granične vrijednosti, krugovi - (za koje se misli da ih napajaju) mogu ući u nestabilno ponašanje; pogotovo ako nisu dobro dizajnirani za to.
Stoga se javlja potreba za redovitim praćenjem snage baterije kako bi nas pravilno usmjerili kada treba dovršiti potpunu zamjenu ili punjenje - u slučaju punjive baterije. Stoga ćemo u ovom „Uradi sam“(Uradi sam) dizajnirati jednostavan mjerač napona baterije koristeći CloudX - koristeći 7Segment kao svoj zaslon.
Korak 1: Hardverski zahtjevi
Modul mikrokontrolera CloudX
CloudX USB
SoftCard
7Segmentni prikaz
Otpornici
Jedinica za napajanje
Breadboard
Kratkospojne (spojne) žice
Korak 2: CloudX M633 mikrokontroler
Modul mikrokontrolera CloudX
CloudX modul je hardverski alat za dizajn elektronike koji vam omogućuje mnogo zgodan i jednostavan način povezivanja sa fizičkim svijetom putem jednostavne ploče mikrokontrolera. Cijela platforma zasnovana je na fizičkom računarstvu otvorenog koda. Njegova jednostavnost IDE-a (Integrirano razvojno okruženje) zaista ga čini savršenim za početnike, a ipak zadržava dovoljno funkcionalnosti da omogući naprednim krajnjim korisnicima da se snađu. U ljusci ljuske, CloudX pruža mnogo pojednostavljen proces rukovanja mikrokontrolerom-apstrahiranjem uobičajenih složenih detalja povezanih s njim; dok u isto vrijeme nudi vrlo bogatu platformu za korisničko iskustvo. Nalazi široku primjenu u svim oblastima: škole, kao odlično obrazovno oruđe; industrijski i komercijalni proizvodi; i kao odlično pomoćno oruđe u rukama hobista.
Korak 3: Pin veze
Igle od 7 segmenata: A, B, C, D, E, F, G, 1, 2 i 3 povezane su sa pin1, pin2, pin3, pin4, pin4, pin5, pin6, pin7, pin8, pin9 pin10 i pin11 respektivno.
Korak 4: Dijagram kola
Modul mikrokontrolera, koji je ovdje u središtu, može se uključiti:
bilo putem točaka Vin i Gnd (tj. povezivanjem s +ve i –ve priključcima vaše vanjske jedinice za napajanje) na ploči;
ili putem vašeg CloudX USB modula meke kartice
. Štaviše, kao što se lako moglo vidjeti iz gornjeg dijagrama kruga, ulazni napon baterije je povezan s modulom MCU (mikrokontroler) tako da je –točka mreže razdjelnika napona (koju čine i) spojena na A0 MCU pina.
i biraju se na način da:
ograničiti količinu struje koja protiče kroz mrežu;
granica unutar sigurnog raspona (0 - 5) V za MCU.
Koristeći formulu: VOUT = (R2/(R1+R2)) * VIN; i lako se može ocijeniti.
Voutmax = 5V
a za ovaj projekt biramo: Vinmax = 50V;
5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Uzmimo za primjer R2 = 10 kΩ; R1 = 45/5 * 10 = 90 kΩ
Korak 5: Princip rada
Kada se očitani ulazni izmjereni napon očita preko VOUT točke mrežnog razdjelnika napona, podaci se dalje obrađuju u MCU -u radi procjene do konačne stvarne vrijednosti koja se prikazuje na segmentnoj jedinici. On (dizajn sistema) je automatski postavljač decimalnih zareza, po tome što (decimalni zarez) zapravo pomiče položaj na samoj jedinici prikaza u skladu sa onim što float vrijednost diktira u bilo kojem datom trenutku. Zatim se cijela hardverska 7-segmentna jedinica prikaza povezuje u multipleksnom načinu rada. To je poseban raspored prema kojem ista sabirnica podataka (8 pinova podataka) iz MCU-a napaja tri aktivna 7-segmenta u jedinici prikaza. Slanje uzorka podataka u svaki od sastavnih dijelova postiže se procesom koji se naziva Skeniranje. Skeniranje je tehnika koja uključuje slanje podataka u svaki od 7-segmenata komponente; i omogućavanje (tj. uključivanje) njih brzo uzastopno po dolasku odgovarajućih podataka. Brzina obraćanja svakom od njih učinjena je tako da uspije prevariti ljudsku viziju da vjeruje da su svi oni (sastavni dijelovi) omogućeni (adresirani) u isto vrijeme. On (skeniranje) jednostavno, u stvari, koristi fenomen poznat kao Persistence Of Vision.
Korak 6: Softverski program
#include
#include
#include
#define segment1 pin9
#define segment2 pin10
#define segment3 pin11
float batt_voltage;
int decimalPoint, batt;
/*nizovi koji skladište uzorak segmenta za svaku datu znamenku*/
char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
int disp0, disp1, disp2;
display () {
nepotpisani char i;
if (decimalna točka <10) {
disp0 = (int) batt_voltage /100; // preuzima MSD (najznačajnija znamenka)
// s najvećom težinom
/* dohvaća sljedeću ponderiranu znamenku; i tako dalje */
disp1 = ((int) batt_voltage % 100)/10;
disp2 = ((int) batt_voltage % 10);
}
else {
disp0 = (int) batt_voltage /1000;
disp1 = ((int) batt_voltage % 1000)/100;
disp2 = ((int) batt_voltage % 100)/10;
}
/*Uzorci se izlijevaju za prikaz; i 0x80 znak koji dodaje decimalni zarez
ako pridruženi uvjet vrijedi*/
za (i = 0; i <50; i ++) {
pin9 = pin10 = pin11 = HIGH;
if (decimalna točka <10)
portWrite (1, CCathodeDisp [disp0] | 0x80);
else portWrite (1, CCathodeDisp [disp0]);
segment1 = NISKO;
segment2 = HIGH;
segment3 = HIGH;
delayMs (5);
pin9 = pin10 = pin11 = HIGH;
if ((decimalna točka> = 10) && (decimalna točka <100))
portWrite (1, CCathodeDisp [disp1] | 0x80);
else portWrite (1, CCathodeDisp [disp1]);
segment1 = HIGH;
segment2 = LOW;
segment3 = HIGH;
delayMs (5);
pin9 = pin10 = pin11 = HIGH;
if (decimalna točka> = 100)
portWrite (1, CCathodeDisp [disp2] | 0x80);
else portWrite (1, CCathodeDisp [disp2]);
segment1 = HIGH;
segment2 = HIGH;
segment3 = LOW;
delayMs (5);
}
}
setup () {// postavljanje ovdje
analogSetting (); // analogni port inicijaliziran
portMode (1, OUTPUT); // Igle od 1 do 8 konfigurirane kao izlazi
/ * pinovi za skeniranje konfigurirani kao izlazni pinovi */
pin9Mode = OUTPUT;
pin10Mode = OUTPUT;
pin11Mode = OUTPUT;
portWrite (1, LOW);
pin9 = pin10 = pin11 = HIGH; // iglice za skeniranje (koje su aktivne-niske)
// onemogućeni su na početku
loop () {// Program ovdje
batt_voltage = analogRead (A0); // uzima izmjerenu vrijednost
batt_voltage = ((batt_voltage * 5000) / 1024); // faktor konverzije za 5Vin
batt_voltage = (batt_voltage * 50)/5000; // faktor konverzije za 50Vin
decimalPoint = batt_voltage; // označava gdje se pojavljuje decimalna točka
// izvorna vrijednost prije manipulacije podacima
display ();
}
}
Preporučuje se:
Waveshare E-ink ekran precizan voltmetar (0-90v DC) sa Arduino Nano: 3 koraka
Waveshare E-ink ekran precizan voltmetar (0-90v DC) sa Arduino Nano: U ovom uputstvu koristim ekran od 2,9 '' Waveshare e-papira sa Arduino Nano, razdjelnikom napona i ADS1115 za prikaz preciznih napona do 90 volti DC na ekranu e-papira. Ova instrukcija kombinira ova dva prethodna projekta:- Ardui
Arduino precizni i tačni voltmetar (0-90V DC): 3 koraka
Arduino precizni i tačni voltmetar (0-90V DC): U ovom uputstvu sam izgradio voltmetar za mjerenje visokog napona DC (0-90v) sa relativnom preciznošću i tačnošću koristeći Arduino Nano. Testna mjerenja koja sam obavila bila su dovoljno točna, uglavnom unutar 0,3v od stvarnog napona izmjerenog sa
Digitalni Arduino voltmetar: 3 koraka
Digitalni Arduino voltmetar: Voltmetar ili mjerač napona je mjerni instrument koji se koristi za mjerenje napona
Punjivi digitalni voltmetar pomoću ICL7107 ADC -a: 7 koraka (sa slikama)
Punjivi digitalni voltmetar pomoću ICL7107 ADC -a: U ovom vodiču ću vam pokazati kako napraviti super jednostavan digitalni voltmetar koji može mjeriti napone od 20 mV do 200V. Ovaj projekt neće koristiti nijedan mikrokontroler poput arduina. Umjesto toga, ADC, tj. ICL7107 će se koristiti s nekim passom
Digitalni voltmetar: 5 koraka
Digitalni voltmetar: Ovo je jednostavan za korištenje i jeftin voltmetar "uradi sam". Ukupni troškovi izrade ovog projekta manji su od 200 INR ili samo 2,5 USD