Digitālais voltmetrs ar CloudX: 6 soļi
Digitālais voltmetrs ar CloudX: 6 soļi
Anonim
Digitālais voltmetrs ar CloudX
Digitālais voltmetrs ar CloudX

Baterijas nodrošina tīrāku līdzstrāvas (līdzstrāvas) jaudu, ja tās tiek izmantotas ķēdēs. To zemais trokšņa līmenis vienmēr padara tos ideāli piemērotus dažām ļoti jutīgām shēmām. Tomēr brīžos, kad to sprieguma līmenis nokrītas zem noteiktā sliekšņa punkta, ķēdes - (kurām tās ir paredzētas barošanai) - var sākt darboties nepareizi; it īpaši, ja tie nav labi izstrādāti, lai to risinātu.

Tādējādi rodas nepieciešamība regulāri uzraudzīt akumulatora jaudas līmeni, lai pareizi norādītu, kad ir jāveic pilnīga nomaiņa vai uzlādējams akumulators. Tāpēc šajā DIY (dari pats) mums ir jāizstrādā vienkāršs akumulatora sprieguma mērītājs, izmantojot CloudX, izmantojot mūsu displeju 7Segment.

1. darbība. Aparatūras prasības

CloudX mikrokontrolleru modulis

CloudX USB

SoftCard

7Segmenta displejs

Rezistori

Barošanas bloks

Maizes dēlis

Jumper (savienojošie) vadi

2. darbība: CloudX M633 mikrokontrolleris

CloudX M633 mikrokontrolleris
CloudX M633 mikrokontrolleris

CloudX mikrokontrolleru modulis

CloudX modulis ir elektronikas dizaina aparatūras rīks, kas ļauj jums ērti un viegli saskarties ar fizisko pasauli, izmantojot vienkāršu mikrokontrollera plati. Visa platforma ir balstīta uz atvērtā pirmkoda fizisko skaitļošanu. Tā IDE (integrētās izstrādes vides) vienkāršība patiešām padara to ideāli piemērotu iesācējiem, tomēr saglabājot pietiekami daudz funkcionalitātes, lai ļautu pieredzējušiem galalietotājiem pārvietoties. Riekstu čaulā CloudX nodrošina daudz vienkāršāku mikrokontrollera apstrādes procesu, abstrahējot ar to saistītās parastās sarežģītās detaļas; vienlaikus piedāvājot ļoti bagātīgu lietotāju pieredzes platformu. Tam ir plašs pielietojums: skolas kā lielisks izglītības līdzeklis; rūpnieciski un komerciāli produkti; un kā lielisks noderīgs instruments hobija rokās.

3. darbība. Piespraudes savienojumi

Piespraudes savienojumi
Piespraudes savienojumi

7 segmentu tapas: A, B, C, D, E, F, G, 1, 2 un 3 ir savienotas ar CloudX-MCU tapu 1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 un pin11 attiecīgi.

4. solis: shēmas shēma

Ķēdes diagramma
Ķēdes diagramma

Mikrokontrollera moduli, kas šeit atrodas centrā, var ieslēgt:

vai nu caur Vin un Gnd punktiem (ti, savienojot tos attiecīgi ar ārējās barošanas bloka +ve un –ve spailēm) uz tāfeles;

vai izmantojot CloudX USB softcard moduli

. Turklāt, kā viegli varēja redzēt no iepriekš redzamās shēmas, ieejas akumulatora spriegums ir savienots ar MCU (mikrokontrollera) moduli tā, ka sprieguma dalītāja tīkla –punkts (ko veido un) ir savienots ar MCU tapas A0.

un tiek izvēlēti šādi:

ierobežot strāvas daudzumu, kas plūst caur tīklu;

MCU drošā diapazonā (0 - 5) V.

Izmantojot formulu: VOUT = (R2/(R1+R2)) * VIN; un to var viegli novērtēt.

Voutmax = 5V

un šim projektam mēs izvēlamies: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Piemēram, ņemot R2 = 10 kΩ; R1 = 45/5 * 10 = 90kΩ

5. solis: darbības princips

Kad ievadīto izmērīto spriegumu nolasa caur sprieguma dalītāja tīkla VOUT punktu, dati tiek tālāk apstrādāti MCU, lai novērtētu līdz galīgajai faktiskajai vērtībai, kas tiek parādīta segmenta vienībā. Tā (sistēmas konstrukcija) ir automātisks decimāldaļu ievietotājs, jo tā (decimāldaļa) faktiski maina pozīciju pašā displeja blokā atbilstoši tam, ko pludiņa vērtība diktē jebkurā noteiktā laika brīdī. Pēc tam visa aparatūras 7 segmentu displeja ierīce ir savienota multipleksā režīmā. Tā ir īpaša kārtība, kad viena un tā pati datu kopne (8 datu tapas) no MCU baro trīs aktīvos 7 segmentus displeja blokā. Datu modeļa nosūtīšana uz katru sastāvdaļu tiek panākta ar procesu, ko sauc par skenēšanu. Skenēšana ir metode, kas ietver datu nosūtīšanu uz katru no 7 komponentu segmentiem; un to iespējošana (ti, ieslēgšana) ātri pēc kārtas, kad tiek saņemti attiecīgie dati. Katrs no tiem tiek uzrunāts tā, lai izdotos maldināt cilvēka redzējumu, uzskatot, ka visas tās (sastāvdaļas) ir iespējotas (uzrunātas) vienlaikus. Tā (skenēšana) faktiski izmanto fenomenu, kas pazīstams kā redzes noturība.

6. darbība: programmatūras programma

#iekļaut

#iekļaut

#iekļaut

#define segment11 pin9

#define segment22 pin10

#define segment33 pin11

float batt_voltage;

int decimalPoint, batt;

/*masīvi, kas glabā segmenta modeli katram dotajam ciparam*/

rakstzīmes 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;

parādīt () {

neparakstīts char i;

ja (decimāls punkts <10) {

disp0 = (int) batt_voltage /100; // ielādē MSD (vissvarīgākais cipars)

// ir vislielākā svērtā vērtība

/* ielādē nākamo svērto ciparu; un tā tālāk */

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

disp2 = ((int) batt_voltage % 10);

}

cits {

disp0 = (int) batt_voltage /1000;

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

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

}

/*Raksti tiek izlieti demonstrēšanai; un 0x80 rakstzīme, pievienojot decimālzīmi

ja saistītais nosacījums atbilst patiesībai*/

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

pin9 = pin10 = pin11 = HIGH;

ja (decimāldaļa <10)

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

else portWrite (1, CCathodeDisp [disp0]);

segments1 = LOW;

segments2 = HIGH;

segments3 = HIGH;

kavēšanāsMs (5);

pin9 = pin10 = pin11 = HIGH;

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

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

else portWrite (1, CCathodeDisp [disp1]);

segments1 = HIGH;

segments2 = LOW;

segments3 = HIGH;

kavēšanāsMs (5);

pin9 = pin10 = pin11 = HIGH;

ja (decimāls punkts> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

segments1 = HIGH;

segments2 = HIGH;

segment3 = LOW;

kavēšanāsMs (5);

}

}

setup () {// setup šeit

analogSetting (); // inicializēts analogais ports

portMode (1, OUTPUT); // Tapas no 1 līdz 8 konfigurētas kā izejas tapas

/ * skenēšanas tapas, kas konfigurētas kā izejas tapas */

pin9Mode = IZEJA;

pin10Mode = OUTPUT;

pin11Mode = IZEJA;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // skenēšanas tapas (kas ir zemas)

// sākumā ir atspējoti

loop () {// Programma šeit

batt_voltage = analogRead (A0); // ievada izmērīto vērtību

batt_voltage = ((batt_voltage * 5000) / 1024); // konversijas koeficients 5Vin

batt_voltage = (batt_voltage * 50)/5000; // konversijas koeficients 50Vin

decimalPoint = batt_voltage; // atzīmē, kur parādās decimāldaļa

// sākotnējā vērtība pirms datu apstrādes

displejs ();

}

}

Ieteicams: