Turinys:

Skaitmeninis voltmetras su „CloudX“: 6 žingsniai
Skaitmeninis voltmetras su „CloudX“: 6 žingsniai

Video: Skaitmeninis voltmetras su „CloudX“: 6 žingsniai

Video: Skaitmeninis voltmetras su „CloudX“: 6 žingsniai
Video: Skaitmeninis šaldytuvo valdiklis MH1210E 2024, Lapkritis
Anonim
Skaitmeninis voltmetras su „CloudX“
Skaitmeninis voltmetras su „CloudX“

Akumuliatoriai, naudojant grandinėse, suteikia grynesnę nuolatinės srovės (nuolatinės srovės) galią. Dėl mažo triukšmo lygio jie puikiai tinka kai kurioms labai jautrioms grandinėms. Tačiau kartais, kai jų įtampos lygis nukrenta žemiau tam tikro slenksčio taško, grandinės (kurios yra skirtos maitinti) gali elgtis netinkamai; ypač kai jie nėra gerai suprojektuoti tai spręsti.

Todėl atsiranda poreikis reguliariai stebėti akumuliatoriaus įkrovos lygį, kad galėtume tinkamai paaiškinti, kada reikia visiškai pakeisti akumuliatorių arba įkrauti, kai įkraunama baterija. Todėl šiame „pasidaryk pats“(„pasidaryk pats“) mes turime sukurti paprastą akumuliatoriaus įtampos matuoklį, naudojant „CloudX“- kaip ekraną, naudojant „7Segment“.

1 žingsnis: aparatinės įrangos reikalavimas

„CloudX“mikrovaldiklio modulis

„CloudX“USB

„SoftCard“

7 Segmento ekranas

Rezistoriai

Maitinimo blokas

Bandomoji Lenta

Jungiamieji (jungiamieji) laidai

2 žingsnis: „CloudX M633“mikrovaldiklis

„CloudX M633“mikrovaldiklis
„CloudX M633“mikrovaldiklis

„CloudX“mikrovaldiklio modulis

„CloudX“modulis yra elektronikos projektavimo aparatūros įrankis, leidžiantis patogiai ir lengvai sąveikauti su fiziniu pasauliu per paprastą mikrovaldiklio plokštę. Visa platforma yra pagrįsta atviro kodo fiziniais skaičiavimais. Dėl savo paprastos IDE (integruotos kūrimo aplinkos) tikrai puikiai tinka pradedantiesiems, tačiau išlaiko pakankamai funkcijų, leidžiančių pažengusiems galutiniams vartotojams naršyti. „CloudX“suteikia daug paprastesnį mikrovaldiklio tvarkymo procesą, pašalinant įprastas sudėtingas detales, susijusias su juo; tuo pačiu metu siūlo labai turtingą vartotojo patirties platformą. Jis plačiai pritaikomas įvairiose srityse: mokyklos, kaip puiki švietimo priemonė; pramoniniai ir komerciniai produktai; ir kaip puikus įrankis mėgėjams.

3 žingsnis: prijunkite jungtis

Sujungimai
Sujungimai

7 segmentų kaiščiai: A, B, C, D, E, F, G, 1, 2 ir 3 yra prijungti prie „CloudX-MCU“kaiščių 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, pin10 ir pin11 atitinkamai.

4 žingsnis: grandinės schema

Grandinės schema
Grandinės schema

Mikrovaldiklio modulį, esantį čia, galima įjungti:

arba per „Vin“ir „Gnd“taškus (ty prijungdami juos prie išorinio maitinimo šaltinio +ve ir –ve gnybtų), esančius lentoje;

arba per „CloudX“USB minkštųjų kortelių modulį

. Be to, kaip galima lengvai pamatyti iš aukščiau pateiktos schemos, įvesties akumuliatoriaus įtampa yra sujungta su MCU (mikrovaldiklio) moduliu taip, kad įtampos daliklio tinklo taškas (suformuotas ir) yra prijungtas prie MCU kaiščio A0.

ir pasirenkami taip:

apriboti per tinklą tekančios srovės kiekį;

ribinė riba MCU saugiame (0–5) V diapazone.

Naudojant formulę: VOUT = (R2/(R1+R2)) * VIN; ir gali būti lengvai įvertintas.

Voutmax = 5V

ir šiam projektui pasirenkame: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Pavyzdžiui, atsižvelgiant į R2 = 10 kΩ; R1 = 45/5 * 10 = 90kΩ

5 žingsnis: veikimo principas

Kai įvesties išmatuota įtampa skaitoma per įtampos daliklio tinklo VOUT tašką, duomenys toliau apdorojami MCU, kad būtų įvertinta galutinė faktinė vertė, rodoma segmento vienete. Jis (sistemos konstrukcija) yra automatinis dešimtainio taško žymeklis, nes jis (dešimtainis taškas) iš tikrųjų keičia poziciją pačiame ekrane pagal tai, ką diktuoja kintamoji vertė bet kuriuo momentu. Tada visas aparatūros 7 segmentų ekrano blokas prijungiamas multipleksiniu režimu. Tai yra specialus susitarimas, kai ta pati duomenų magistralė (8 duomenų kaiščiai) iš MCU maitina tris aktyvius 7 segmentus ekrano bloke. Duomenų modelio siuntimas į kiekvieną sudedamąją dalį pasiekiamas naudojant procesą, vadinamą nuskaitymu. Nuskaitymas yra metodas, apimantis duomenų siuntimą į kiekvieną iš 7 komponentų segmentų; ir įgalinimas (ty įjungimas) greitai iš eilės, kai gaunami atitinkami duomenys. Į kiekvieną iš jų kreipiamasi taip, kad pavyktų apgauti žmogaus viziją ir patikėti, kad visi jie (sudedamosios dalys) yra įjungti (sprendžiami) vienu metu. Jis (nuskaitymas) iš tikrųjų naudoja reiškinį, žinomą kaip vizijos persistencija.

6 veiksmas: programinės įrangos programa

#įtraukti

#įtraukti

#įtraukti

#define segment11 pin9

#define segment22 pin10

#define segment3 pin 11

float batt_voltage;

int decimalPoint, batt;

/*masyvai, kuriuose saugomas kiekvieno duoto skaitmens segmento modelis*/

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;

rodyti () {

nepasirašytas char i;

if (dešimtainis taškas <10) {

disp0 = (int) batt_voltage /100; // pateikia MSD (svarbiausias skaitmuo)

// yra didžiausias svertinis

/* nuskaito kitą svertinį skaitmenį; ir taip toliau */

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

disp2 = ((int) batt_voltage % 10);

}

Kitas {

disp0 = (int) batt_voltage /1000;

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

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

}

/*Raštai išpilami rodymui; ir 0x80 simbolis pridedant dešimtainį tašką

jei susijusi sąlyga pasitvirtina*/

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

pin9 = pin10 = pin11 = HIGH;

jei (dešimtainis taškas <10)

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

else portWrite (1, CCathodeDisp [disp0]);

segmentas1 = LOW;

segmentas 2 = AUKŠTAS;

segmentas 3 = AUKŠTAS;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

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

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

else portWrite (1, CCathodeDisp [disp1]);

segmentas 1 = AUKŠTAS;

segmentas 2 = LOW;

segmentas 3 = AUKŠTAS;

delayMs (5);

pin9 = pin10 = pin11 = HIGH;

jei (dešimtainis taškas> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

segmentas 1 = AUKŠTAS;

segmentas 2 = AUKŠTAS;

segmentas 3 = LOW;

delayMs (5);

}

}

setup () {// sąranka čia

analogSetting (); // inicijuotas analoginis prievadas

portMode (1, OUTPUT); // Smeigtukai nuo 1 iki 8, sukonfigūruoti kaip išvesties kaiščiai

/ * nuskaitymo kaiščiai sukonfigūruoti kaip išvesties kaiščiai */

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // nuskaitymo smeigtukai (kurių aktyvumas mažas)

// yra išjungtos pradžioje

loop () {// Programa čia

batt_voltage = analogRead (A0); // priima išmatuotą vertę

batt_voltage = ((batt_voltage * 5000) / 1024); // 5Vin konversijos koeficientas

batt_voltage = (batt_voltage * 50)/5000; // 50Vin perskaičiavimo koeficientas

dešimtainis taškas = batt_voltage; // žymi, kur rodomas dešimtainis taškas

// pradinė vertė prieš manipuliuojant duomenimis

ekranas ();

}

}

Rekomenduojamas: