Агуулгын хүснэгт:

CloudX бүхий дижитал вольтметр: 6 алхам
CloudX бүхий дижитал вольтметр: 6 алхам
Anonim
CloudX -тэй дижитал вольтметр
CloudX -тэй дижитал вольтметр

Батерей нь хэлхээнд ажиллахдаа илүү цэвэр хэлбэрийн тогтмол гүйдлийн хүчийг өгдөг. Тэдний дуу чимээ багатай түвшин нь тэднийг маш мэдрэмтгий хэлхээнд төгс тохируулдаг. Гэсэн хэдий ч тэдний хүчдэлийн түвшин тодорхой босго цэгээс доош буух үед хэлхээнүүд нь (хүчийг өгөх зориулалттай) эмх замбараагүй байдалд орж болзошгүй; ялангуяа тэд үүнийг зохицуулах сайн зохион бүтээгдээгүй үед.

Тиймээс, батерейны цэнэгийн түвшинг тогтмол хянаж байх шаардлагатай бөгөөд энэ нь цэнэглэдэг батерейг бүрэн солих, цэнэглэх хугацааг зааж өгөх болно. Тиймээс энэхүү DIY -д (Өөрөө хий) бид 7X сегментийг дэлгэц болгон ашиглаж CloudX ашиглан батерейны энгийн хүчдэл хэмжигчийг зохион бүтээх болно.

Алхам 1: Тоног төхөөрөмжийн шаардлага

CloudX микроконтроллер модуль

CloudX USB

Зөөлөн карт

7 сегментийн дэлгэц

Эсэргүүцэл

Цахилгаан хангамжийн нэгж

Талхны самбар

Холбогч утаснууд

Алхам 2: CloudX M633 микроконтроллер

CloudX M633 микроконтроллер
CloudX M633 микроконтроллер

CloudX микроконтроллер модуль

CloudX модуль нь энгийн микроконтроллерын самбараар дамжуулан физик ертөнцтэй харилцах маш тохиромжтой, хялбар арга боломжийг олгодог электрон дизайны тоног төхөөрөмжийн хэрэгсэл юм. Бүх платформ нь нээлттэй эх сурвалжтай физик тооцоолол дээр суурилдаг. IDE (Хөгжлийн нэгдсэн орчин) -ын энгийн байдал нь үүнийг эхлэгчдэд төгс тохируулж өгдөг боловч дэвшилтэт эцсийн хэрэглэгчдэд замаа удирдах боломжийг олгодог хангалттай функцийг хадгалж байдаг. Самар бүрхүүлд CloudX нь микроконтроллертэй харьцах энгийн үйл явцыг хангаж өгдөг-үүнтэй холбоотой ердийн нарийн ширийн зүйлийг хийсвэрлэх; Үүний зэрэгцээ маш баялаг хэрэглэгчийн туршлагатай платформыг санал болгож байна. Энэ нь өргөн хэрэглээний програмуудыг олж хардаг: сургуулиуд бол боловсролын шилдэг хэрэгсэл, үйлдвэр, худалдааны бүтээгдэхүүн, хобби сонирхогчдын гарт маш сайн хэрэгсэл юм.

Алхам 3: Холболтыг холбох

Холболтыг холбох
Холболтыг холбох

7 сегментийн зүү: A, B, C, D, E, F, G, 1, 2, 3 нь CloudX-MCU-ийн pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 ба pin11 тус тус.

Алхам 4: Хэлхээ диаграм

Хэлхээ диаграм
Хэлхээ диаграм

Энд төв шатанд байгаа микроконтроллер модулийг асааж болно.

самбар дээрх Vin ба Gnd цэгүүдээр (өөрөөр хэлбэл тэдгээрийг гадаад тэжээлийн хангамжийн +ve ба -ve терминалуудад холбоно) самбар дээр;

эсвэл CloudX USB зөөлөн картын модулиар дамжуулан

. Дээрх хэлхээ диаграмаас хялбархан харж болно, оролтын батерейны хүчдэл нь MCU (микроконтроллер) модультай холбогддог тул хүчдэл хуваагч сүлжээний цэг нь MCU зүүний A0 -тэй холбогддог..

мөн дараах байдлаар сонгосон болно.

сүлжээгээр дамжих урсгалын хэмжээг хязгаарлах;

MCU -ийн аюулгүй хязгаарт (0 - 5) V хязгаар.

Томъёог ашиглан: VOUT = (R2/(R1+R2)) * VIN; бөгөөд үүнийг амархан үнэлэх боломжтой.

Voutmax = 5V

мөн энэ төслийн хувьд бид сонгоно: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Жишээ нь R2 = 10kΩ авах; R1 = 45/5 * 10 = 90kΩ

Алхам 5: Үйл ажиллагааны зарчим

Оролтын хэмжсэн хүчдэлийг хүчдэл хуваагч сүлжээний VOUT цэгээр уншихад өгөгдлийг MCU -д боловсруулж сегментийн нэгж дээр харуулсан эцсийн бодит утгыг үнэлнэ. Энэ нь (системийн загвар) нь автомат аравтын бутархай шүүлтүүр бөгөөд энэ нь (аравтын бутархай) нь дэлгэцийн нэгжийн байрлалыг тухайн цаг хугацааны аль ч үед хөвөх утгын дагуу тохируулдаг. Дараа нь тоног төхөөрөмжийн 7 сегментийн дэлгэцийн бүх хэсгийг мультиплекс горимд холбосон болно. Энэ бол MCU-ийн ижил өгөгдлийн автобус (8 өгөгдлийн зүү) нь дэлгэцийн нэгжийн гурван идэвхтэй 7 сегментийг тэжээх тусгай зохицуулалт юм. Өгөгдлийн загварыг бүрэлдэхүүн хэсгүүдэд илгээх нь скан хийх гэж нэрлэгддэг процессоор хийгддэг. Скан хийх нь 7 сегментийн бүрэлдэхүүн хэсэг бүрт өгөгдөл дамжуулах арга юм. мөн холбогдох өгөгдлүүд ирмэгц тэдгээрийг дараалан идэвхжүүлэх (өөрөөр хэлбэл асаах). Тэд тус бүрийг шийдвэрлэх хурдыг бүхэлд нь (бүрэлдэхүүн хэсгүүдийг) нэгэн зэрэг идэвхжүүлсэн (хаягласан) гэдэгт итгүүлэхийн тулд хүний алсын харааг хуурч чадсан юм. Энэ нь (сканнердах) нь үнэндээ үзэгдлийн тогтвортой байдал гэж нэрлэгддэг үзэгдлийг ашигладаг.

Алхам 6: Програм хангамжийн програм

#оруулах

#оруулах

#оруулах

#сегментийг тодорхойлох 1 pin9

#сегментийг тодорхойлох 2 pin10

#сегментийг тодорхойлох3 pin11

float batt_voltage;

int decimalPoint, batt;

/*өгөгдсөн цифр бүрийн сегментийн загварыг хадгалдаг массивууд*/

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;

дэлгэц () {

гарын үсэггүй char i;

if (decimalPoint <10) {

disp0 = (int) batt_voltage /100; // MSD (Хамгийн чухал тоо)

// хамгийн өндөр жинтэй

/* дараагийн жигнэсэн цифрийг авна; гэх мэт */

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

disp2 = ((int) batt_voltage % 10);

}

өөр {

disp0 = (int) batt_voltage /1000;

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

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

}

/*Загварыг үзүүлэхийн тулд цутгадаг; ба аравтын бутархай цэгийг нэмсэн 0x80 тэмдэгт

Хэрэв холбогдох нөхцөл үнэн бол*/

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

pin9 = pin10 = pin11 = HIGH;

if (decimalPoint <10)

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

else portWrite (1, CCathodeDisp [disp0]);

сегмент1 = бага;

сегмент2 = ӨНДӨР;

сегмент3 = ӨНДӨР;

gecMs (5);

pin9 = pin10 = pin11 = HIGH;

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

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

else portWrite (1, CCathodeDisp [disp1]);

сегмент1 = Дээд;

segment2 = LOW;

сегмент3 = ӨНДӨР;

gecMs (5);

pin9 = pin10 = pin11 = HIGH;

хэрэв (decimalPoint> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

сегмент1 = Дээд;

сегмент2 = Дээд;

сегмент3 = Бага;

gecMs (5);

}

}

setup () {// энд тохируулна уу

analogSetting (); // аналог портыг эхлүүлсэн

portMode (1, OUTPUT); // 1 -ээс 8 хүртэлх зүүг гаралтын зүү болгон тохируулсан болно

/ * гаралтын тээглүүрээр тохируулсан скан хийх зүү */

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // скан хийх зүү (идэвхтэй-бага)

// эхнээс нь идэвхгүй болгосон

loop () {// Энд програмчлах

batt_voltage = analogRead (A0); // хэмжсэн утгыг авна

batt_voltage = ((batt_voltage * 5000) / 1024); // 5Vin -ийн хөрвүүлэх хүчин зүйл

batt_voltage = (batt_voltage * 50)/5000; // 50Vin -ийн хөрвүүлэх хүчин зүйл

decimalPoint = batt_voltage; // аравтын бутархай цэг хаана харагдахыг тэмдэглэнэ

// өгөгдөл боловсруулахаас өмнөх анхны утга

дэлгэц ();

}

}

Зөвлөмж болгож буй: