Sisukord:

Digitaalne voltmeeter CloudX -iga: 6 sammu
Digitaalne voltmeeter CloudX -iga: 6 sammu

Video: Digitaalne voltmeeter CloudX -iga: 6 sammu

Video: Digitaalne voltmeeter CloudX -iga: 6 sammu
Video: Medan Magnetik Di Sekitar Penghantar Berarus Listrik 2024, November
Anonim
Digitaalne voltmeeter CloudX -iga
Digitaalne voltmeeter CloudX -iga

Patareid tagavad vooluahelates kasutamisel puhtama alalisvoolu (alalisvoolu). Nende madal müratase muudab need alati ideaalseks mõne väga tundliku vooluahela jaoks. Kuid aegadel, mil nende pingetase langeb alla teatud lävepunkti, võivad vooluahelad - (mis on mõeldud toiteks) - ebaregulaarselt toimima; eriti kui nad ei ole selle jaoks hästi ette valmistatud.

Seetõttu tekib vajadus regulaarselt jälgida aku laetuse taset, et saada nõuetekohast juhist selle kohta, millal peaks see täielikult vahetama või laetava aku korral laadima. Seetõttu kavandame selles isetegemisel (tee seda ise) lihtsa akupinge mõõturi, kasutades CloudX -i - kasutades meie ekraanina 7 -segmenti.

Samm: riistvaranõue

CloudX mikrokontrolleri moodul

CloudX USB

SoftCard

7 Segmendi kuva

Takistid

Toiteplokk

Leivalaud

Jumper (ühendavad) juhtmed

2. samm: CloudX M633 mikrokontroller

CloudX M633 mikrokontroller
CloudX M633 mikrokontroller

CloudX mikrokontrolleri moodul

CloudX -moodul on elektroonikaseadmete riistvaratööriist, mis võimaldab lihtsa mikrokontrolleri kaudu palju mugavamalt ja hõlpsamalt liituda füüsilise maailmaga. Kogu platvorm põhineb avatud lähtekoodiga füüsilisel andmetöötlusel. Selle IDE (integreeritud arenduskeskkond) lihtsus muudab selle ideaalselt sobivaks algajatele, säilitades samas piisavalt funktsioone, mis võimaldavad edasijõudnutel lõppkasutajatel navigeerida. Pähklikoorena pakub CloudX mikrokontrolleri käsitsemise palju lihtsustatud protsessi, eemaldades sellega seotud tavalised keerukad detailid; pakkudes samal ajal väga rikkalikku kasutajakogemuse platvormi. See leiab laiaulatuslikke rakendusi: koolid kui suurepärane õppevahend, tööstus- ja kaubandustooted ning suurepärane abivahend harrastaja käes.

3. samm: ühendage ühendused

Pin Ühendused
Pin Ühendused

7-segmendilised tihvtid: A, B, C, D, E, F, G, 1, 2 ja 3 on ühendatud CloudX-MCU tihvtidega 1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 ja pin11 vastavalt.

4. samm: vooluahela skeem

Lülitusskeem
Lülitusskeem

Siin keskmes olevat mikrokontrollerimoodulit saab sisse lülitada:

kas tahvli Vin ja Gnd punktide kaudu (st ühendades need vastavalt oma välise toiteploki +ve ja –ve klemmidega);

või oma CloudX USB pehmekaardimooduli kaudu

. Veelgi enam, nagu ülaltoodud skeemilt hõlpsasti näha, on sisendaku pinge ühendatud MCU (mikrokontrolleri) mooduliga nii, et pingejaotusvõrgu (moodustatud ja) punkt on ühendatud MCU tihvti A0 -ga.

ja need valitakse järgmiselt:

piirata vooluhulka, mis voolab läbi võrgu;

MCU jaoks ohutu vahemiku (0–5) V piires.

Kasutades valemit: VOUT = (R2/(R1+R2)) * VIN; ja seda on lihtne hinnata.

Voutmax = 5 V.

ja selle projekti jaoks valime: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Võttes näiteks R2 = 10 kΩ; R1 = 45/5 * 10 = 90 kΩ

5. samm: toimimispõhimõte

Kui sisendist mõõdetud pinget loetakse pingejaotusvõrgu VOUT -punkti kaudu, töödeldakse andmeid MCU -s edasi, et hinnata segmendi ühikul kuvatavat lõplikku tegelikku väärtust. See (süsteemi ülesehitus) on automaatne kümnendkohtade paigutaja, kuna see (komakoht) tegelikult muudab kuvari enda positsiooni vastavalt sellele, mida ujukväärtus igal ajahetkel dikteerib. Seejärel ühendatakse kogu riistvara 7-segmendiline kuvar multipleksrežiimis. See on eriline korraldus, mille kohaselt sama andmesiin (8-andmelised tihvtid) MCU-st toidab kuvari kolme aktiivset 7-segmenti. Andmemustri saatmine igasse komponenti saavutatakse protsessi abil, mida nimetatakse skannimiseks. Skaneerimine on tehnika, mis hõlmab andmete saatmist kõigi komponentide 7 segmenti; ja võimaldades (st sisselülitamisel) neid kiiresti järjest, kui nende andmed saabuvad. Igaühe poole pöördumine toimub nii, et õnnestub eksitada inimese nägemus, uskudes, et kõik need (komponendid) on lubatud (käsitletud) korraga. See (skaneerimine) kasutab tegelikult nähtust, mida nimetatakse visiooni püsivuseks.

6. samm: tarkvaraprogramm

#kaasake

#kaasake

#kaasake

#define segment1 pin9

#define segment2 pin10

#define segment3 pin11

float batt_voltage;

int decimalPoint, batt;

/*massiivid, mis salvestavad iga antud numbri jaoks segmendimustri*/

sümbol CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

sümbol CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

int disp0, disp1, disp2;

kuva () {

allkirjastamata char i;

if (kümnendkoht <10) {

disp0 = (int) batt_voltage /100; // toob MSD (kõige olulisem number)

// olles kõige suurema kaaluga

/* toob järgmise kaalutud numbri; ja nii edasi */

disp1 = ((int) batt_voltage % 100)/10;

disp2 = ((int) batt_voltage % 10);

}

muu {

disp0 = (int) batt_voltage /1000;

disp1 = ((int) batt_voltage % 1000)/100;

disp2 = ((int) batt_voltage % 100)/10;

}

/*Mustrid valatakse välja kuvamiseks; ja 0x80 tähemärki, lisades kümnendkoha

kui seotud tingimus vastab tõele*/

jaoks (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = HIGH;

kui (kümnendkoht <10)

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

else portWrite (1, CCathodeDisp [disp0]);

segment1 = LOW;

segment2 = KÕRGE;

segment3 = KÕRGE;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

if ((decimalPoint> = 10) && (decimalPoint <100))

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

else portWrite (1, CCathodeDisp [disp1]);

segment1 = KÕRGE;

segment2 = LOW;

segment3 = KÕRGE;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

kui (kümnendpunkt> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

segment1 = KÕRGE;

segment2 = KÕRGE;

segment3 = LOW;

delayMs (5);

}

}

setup () {// setup siin

analogSetting (); // analoogport lähtestatud

portMode (1, VÄLJUND); // Nööpnõelad 1 kuni 8 on konfigureeritud väljundpistikutena

/ * skaneerimisnõelad, mis on konfigureeritud väljundnõeltena */

pin9Mode = VÄLJUND;

pin10Mode = VÄLJUND;

pin11Mode = VÄLJUND;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // skannimisnõelad (mis on aktiivsed-madalad)

// on alguses keelatud

loop () {// Programmeerige siin

batt_voltage = analogRead (A0); // võtab mõõdetud väärtuse

batt_voltage = ((batt_voltage * 5000) / 1024); // 5Vini teisendustegur

batt_voltage = (batt_voltage * 50)/5000; // teisendustegur 50Vin

kümnendpunkt = batt_voltage; // tähistab kohta, kus on kümnendkoht

// algväärtus enne andmetega manipuleerimist

kuva ();

}

}

Soovitan: