Sadržaj:

Digitalni voltmetar s CloudX -om: 6 koraka
Digitalni voltmetar s CloudX -om: 6 koraka

Video: Digitalni voltmetar s CloudX -om: 6 koraka

Video: Digitalni voltmetar s CloudX -om: 6 koraka
Video: Digitální voltmetr s MHB7106 / Digital Voltmeter with 7106 2024, Studeni
Anonim
Digitalni voltmetar s CloudX -om
Digitalni voltmetar s CloudX -om

Baterije pružaju čistiji oblik istosmjerne (istosmjerne) snage kada se koriste u krugovima. Njihova niska razina buke uvijek ih čini savršenim za neke vrlo osjetljive krugove. Međutim, u trenucima kada im razina napona padne ispod određene granične točke, krugovi - (za koje se misli da ih napajaju) mogu ući u nestabilno ponašanje; pogotovo kad nisu dobro osmišljeni za to.

Stoga se javlja potreba za redovitim praćenjem snage baterije kako bi nas pravilno vodili do kada treba dovršiti potpunu zamjenu ili punjenje - u slučaju punjive baterije. Stoga ćemo u ovom DIY (Uradi sam) dizajnirati jednostavan mjerač napona baterije koristeći CloudX - koristeći 7Segment kao zaslon.

Korak 1: Zahtjevi hardvera

Modul mikrokontrolera CloudX

CloudX USB

SoftCard

7Segmentni prikaz

Otpornici

Jedinica za napajanje

Oglasna ploča

Kratkospojne (spojne) žice

Korak 2: Mikrokontroler CloudX M633

Mikrokontroler CloudX M633
Mikrokontroler CloudX M633

Modul mikrokontrolera CloudX

CloudX modul hardverski je alat za dizajn elektronike koji vam omogućuje mnogo prikladan i jednostavan način povezivanja s fizičkim svijetom putem jednostavne ploče mikrokontrolera. Cijela se platforma temelji na fizičkom računarstvu otvorenog koda. Njegova jednostavnost IDE-a (Integrirano razvojno okruženje) doista ga čini savršenim za početnike, a ipak zadržava dovoljno funkcionalnosti kako bi naprednim krajnjim korisnicima omogućila navigaciju. U ljusci ljuske, CloudX omogućuje znatno pojednostavljen postupak 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 izvrstan alat u rukama hobista.

Korak 3: Pin veze

Pin veze
Pin veze

7-segmentni pinovi: A, B, C, D, E, F, G, 1, 2 i 3 spojeni su na pin1, pin2, pin3, pin4, pin4, pin5, pin6, pin7, pin8, pin9, pin9, iglu CloudX-MCU pin10 odnosno pin11.

Korak 4: Dijagram kruga

Kružni dijagram
Kružni dijagram

Modul mikrokontrolera, koji je ovdje u središtu pozornice, 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

. Štoviše, kao što se lako moglo vidjeti iz gornjeg dijagrama kruga, ulazni napon baterije povezan je 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 teč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: Načelo rada

Kad se očitani ulazni izmjereni napon očita putem VOUT točke mreže 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 sustava) je automatski postavljač decimalne točke, po tome što (decimalna točka) zapravo pomiče položaj na samoj jedinici prikaza u skladu s 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 zaslona. Slanje uzorka podataka u svaki sastavni dio postiže se postupkom koji se naziva Skeniranje. Skeniranje je tehnika koja uključuje slanje podataka u svaki od 7-segmenata komponente; te im omogućiti (tj. uključiti) brzo uzastopno po dolasku odgovarajućih podataka. Brzina rješavanja svakog od njih učinjena je tako da uspije zavarati ljudsku viziju da vjeruje da su svi oni (sastavni dijelovi) omogućeni (adresirani) u isto vrijeme. Ono (skeniranje) jednostavno, zapravo, koristi fenomen poznat kao Persistence Of Vision.

Korak 6: Softverski program

#uključi

#uključi

#uključi

#define segment1 pin9

#define segment2 pin10

#define segment3 pin11

plovak batt_voltage;

int decimalPoint, batt;

/*nizovi koji pohranjuju segmentni uzorak 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;

prikaz() {

nepotpisani char i;

if (decimalna točka <10) {

disp0 = (int) batt_voltage /100; // dohvaća 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);

}

drugo {

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 = VISOKO;

segment3 = VISOKO;

kašnjenjeMs (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 = VISOKO;

segment2 = NISKO;

segment3 = VISOKO;

kašnjenjeMs (5);

pin9 = pin10 = pin11 = HIGH;

if (decimalna točka> = 100)

portWrite (1, CCathodeDisp [disp2] | 0x80);

else portWrite (1, CCathodeDisp [disp2]);

segment1 = VISOKO;

segment2 = VISOKO;

segment3 = NISKO;

kašnjenjeMs (5);

}

}

setup () {// postavljanje ovdje

analogSetting (); // analogni port inicijaliziran

portMode (1, OUTPUT); // Pinovi od 1 do 8 konfigurirani kao izlazi

/ * pinovi za skeniranje konfigurirani kao izlazni pinovi */

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // pinovi za skeniranje (koji su aktivni-niski)

// onemogućeni su na početku

loop () {// Program ovdje

batt_voltage = analogRead (A0); // uzima izmjerenu vrijednost

batt_voltage = ((batt_voltage * 5000) / 1024); // faktor pretvorbe za 5Vin

batt_voltage = (batt_voltage * 50)/5000; // faktor pretvorbe za 50Vin

decimalPoint = napon batta; // označava mjesto u kojem se nalazi decimalna točka

// izvorna vrijednost prije manipulacije podacima

prikaz();

}

}

Preporučeni: