Talaan ng mga Nilalaman:

Digital Voltmeter Sa CloudX: 6 na Hakbang
Digital Voltmeter Sa CloudX: 6 na Hakbang

Video: Digital Voltmeter Sa CloudX: 6 na Hakbang

Video: Digital Voltmeter Sa CloudX: 6 na Hakbang
Video: Observing Meteor Showers and Meteorite Falls 2024, Nobyembre
Anonim
Digital Voltmeter Sa CloudX
Digital Voltmeter Sa CloudX

Ang mga baterya ay nagbibigay ng isang purer form ng DC (direktang kasalukuyang) lakas kapag nagtatrabaho sa mga circuit. Ang kanilang mababang antas ng ingay ay palaging gumagawa sa kanila ng isang perpektong akma para sa ilang mga napaka-sensitibong mga circuit. Gayunpaman, sa mga oras na ang kanilang antas ng boltahe ay tumakbo pababa sa ibaba ng isang tiyak na point ng threshold, ang mga circuit - (na kung saan ay nilalakas nila upang kapangyarihan), ay maaaring pumasok sa isang maling pag-uugali; lalo na kapag hindi sila mahusay na idinisenyo upang hawakan iyon.

Samakatuwid, lumalabas ang pangangailangan na regular na subaybayan ang antas ng lakas ng baterya upang maayos na gabayan kami kung kailan ito dapat dahil sa isang kabuuang kapalit, o singilin sa kaso ng isang rechargeable na baterya. Samakatuwid, sa DIY na ito (Gawin Iyong Sarili), magdidisenyo kami ng isang simpleng metro ng boltahe ng baterya gamit ang CloudX –gamit ang 7Segment bilang aming display.

Hakbang 1: Kinakailangan sa Hardware

CloudX Microcontroller Module

CloudX USB

SoftCard

7Segment Display

Mga lumalaban

Power Supply Unit

Breadboard

Jumper (Kumokonekta) Mga Wires

Hakbang 2: CloudX M633 Microcontroller

CloudX M633 Microcontroller
CloudX M633 Microcontroller

CloudX Microcontroller Module

Ang module ng CloudX ay isang tool sa hardware na disenyo ng electronics na nagbibigay-daan sa iyo ng isang maginhawa at madaling paraan ng pakikipag-ugnay sa pisikal na mundo sa pamamagitan ng isang simpleng board ng microcontroller. Ang buong platform ay batay sa isang bukas na mapagkukunang pisikal na computing. Ang pagiging simple ng isang IDE (Integrated Development Environment) ay talagang ginagawang perpekto para sa mga nagsisimula, ngunit pinapanatili ang isang sapat na pagpapaandar upang payagan ang mga advanced na end-user na mag-navigate patungo sa kanila. Sa isang nut-shell, nagbibigay ang CloudX para sa isang pinasimple na proseso ng paghawak ng microcontroller − sa pamamagitan ng pag-abstract ng layo ng normal na mga kumplikadong detalye na nauugnay dito; habang sabay na nag-aalok ng isang napaka-mayamang platform ng karanasan sa gumagamit. Nakahanap ito ng malawak na aplikasyon na pumuputol sa board: mga paaralan, bilang isang mahusay na tool na Pang-edukasyon; mga produktong pang-industriya at komersyal; at bilang isang mahusay na tool sa utility sa mga kamay ng isang libangan.

Hakbang 3: Mga Koneksyon sa Pin

Mga Koneksyon sa Pin
Mga Koneksyon sa Pin

Ang mga 7-segment na pin: A, B, C, D, E, F, G, 1, 2 at 3 ay konektado sa pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9 ng CloudX-MCU, pin10 at pin11 ayon sa pagkakabanggit.

Hakbang 4: Diagram ng Circuit

Diagram ng Circuit
Diagram ng Circuit

Ang module ng microcontroller, na nasa gitnang yugto dito, ay maaaring pinalakas sa:

alinman sa pamamagitan ng Vin at mga puntos ng Gnd (hal. pagkonekta sa kanila hanggang sa iyong panlabas na power-supply-unit na + ve at –ve terminals ayon sa pagkakabanggit) sa board;

o sa pamamagitan ng iyong CloudX USB module ng softcard

. Higit sa lahat, tulad ng madaling makita mula sa circuit diagram sa itaas, ang boltahe ng pag-input ng baterya ay nakakonekta sa module ng MCU (microcontroller) na tulad na ang –point ng boltahe divider network (nabuo ng at) ay konektado sa A0 ng MCU pin.

at napili sa paraang:

limitahan ang dami ng kasalukuyang dumadaloy sa pamamagitan ng network;

limitahan sa loob ng isang ligtas na saklaw ng (0 - 5) V para sa MCU.

Gamit ang formula: VOUT = (R2 / (R1 + R2)) * VIN; at madaling masuri.

Voutmax = 5V

at para sa proyektong ito, pipiliin namin ang: Vinmax = 50V;

5 = (R2 / (R1 + R2)) * 50 R1 = 45/5 * R2 Pagkuha ng R2 = 10kΩ halimbawa; R1 = 45/5 * 10 = 90kΩ

Hakbang 5: Prinsipyo ng Pagpapatakbo

Kapag ang nasukat na boltahe na sinusukat ay nabasa sa pamamagitan ng point ng VOUT ng network ng boltahe divider, ang data ay karagdagang naproseso sa MCU upang suriin ang panghuling aktwal na halaga na ipinapakita sa yunit ng segment. Ito (ang disenyo ng system) ay isang awtomatikong decimal point placer, na ito (decimal point) ay talagang nagbabago ng posisyon sa mismong unit ng display alinsunod sa idinidikta ng halaga ng float sa anumang naibigay na punto ng oras. Pagkatapos, ang buong hardware 7-Segment display unit ay wired up sa multiplex-mode. Ito ay isang espesyal na pag-aayos kung saan ang parehong data bus (8-data pin) mula sa MCU ay nagpapakain ng tatlong aktibong 7-segment sa display unit. Ang pagpapadala ng pattern ng data sa bawat bahagi ng bahagi ay nakamit ng isang proseso na tinukoy bilang Pag-scan. Ang pag-scan ay isang pamamaraan na kinasasangkutan ng pagpapadala ng data sa bawat isa sa mga bahagi na 7-segment; at pagpapagana (ibig sabihin. paglipat sa) mga ito sa mabilis na pagkakasunud-sunod sa pagdating ng kani-kanilang data. Ang rate ng pag-address sa bawat isa sa kanila ay ginagawa upang magtagumpay ito sa panloloko ng paningin ng tao sa paniniwalang lahat sila (ang mga bahagi ng bahagi) ay pinagana (binabanggit) nang sabay. Ito (pag-scan) nang simple, sa bisa, ay gumagamit ng isang hindi pangkaraniwang bagay na kilala bilang Persistence Of Vision.

Hakbang 6: Ang Program ng Software

# isama

# isama

# isama

# tukuyin ang segment1 pin9

# tukuyin ang segment2 pin10

# tukuyin ang segment3 pin11

float batt_voltage;

int decimalPoint, batt;

/ * arrays na nag-iimbak ng segment-pattern para sa bawat naibigay na digit * /

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;

ipakita () {

unsigned char i;

kung (decimalPoint <10) {

disp0 = (int) batt_voltage / 100; // fetches the MSD (Most Significant Digit)

// ang pinakamataas na timbang

/ * Kinukuha ang susunod na may timbang na digit; at iba pa */

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

disp2 = ((int) batt_voltage% 10);

}

iba pa {

disp0 = (int) batt_voltage / 1000;

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

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

}

/ * Ang mga pattern ay ibinuhos para ipakita; at 0x80 na character na nagdaragdag ng isang decimal point

kung totoo ang kaugnay na kundisyon * /

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

pin9 = pin10 = pin11 = MATAAS;

kung (decimalPoint <10)

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

iba pa portWrite (1, CCathodeDisp [disp0]);

segment1 = LOW;

segment2 = TAAS;

segment3 = TAAS;

delayMs (5);

pin9 = pin10 = pin11 = MATAAS;

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

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

iba pa portWrite (1, CCathodeDisp [disp1]);

segment1 = TAAS;

segment2 = LOW;

segment3 = TAAS;

delayMs (5);

pin9 = pin10 = pin11 = MATAAS;

kung (decimalPoint> = 100)

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

iba pa portWrite (1, CCathodeDisp [disp2]);

segment1 = TAAS;

segment2 = TAAS;

segment3 = LOW;

delayMs (5);

}

}

setup () {// setup here

analogSetting (); // analog port na pinasimulan

portMode (1, OUTPUT); // Pins 1 hanggang sa 8 naka-configure bilang mga output pin

/ * Mga pin na naka-configure bilang mga output pin * /

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = MATAAS; // scan pins (na kung saan ay aktibo-mababa)

// ay hindi pinagana sa simula

loop () {// Program dito

batt_voltage = analogRead (A0); // kumukuha ng sinusukat na halaga

batt_voltage = ((batt_voltage * 5000) / 1024); // factor ng conversion para sa 5Vin

batt_voltage = (batt_voltage * 50) / 5000; // factor ng conversion para sa 50Vin

decimalPoint = batt_voltage; // mark kung saan lalabas ang decimal point

// ang orihinal na halaga bago ang pagmamanipula ng data

ipakita ();

}

}

Inirerekumendang: