Mündəricat:

CloudX ilə rəqəmsal voltmetr: 6 addım
CloudX ilə rəqəmsal voltmetr: 6 addım

Video: CloudX ilə rəqəmsal voltmetr: 6 addım

Video: CloudX ilə rəqəmsal voltmetr: 6 addım
Video: İndi Vyetnamda QİYMƏTLƏR 2022 2024, Noyabr
Anonim
CloudX ilə rəqəmsal voltmetr
CloudX ilə rəqəmsal voltmetr

Batareyalar, dövrələrdə işləyərkən daha təmiz bir DC (birbaşa cərəyan) gücü təmin edir. Aşağı səs -küy səviyyələri onları çox həssas sxemlərə mükəmməl uyğunlaşdırır. Bununla birlikdə, gərginlik səviyyələri müəyyən bir eşik nöqtəsinin altına düşdükdə, dövrələr - (güc üçün nəzərdə tutulmuşdur), düzensiz bir davranışa girə bilər; xüsusilə də bunu idarə etmək üçün yaxşı dizayn edilmədikdə.

Bu səbəbdən, tam doldurulma vaxtı və ya şarj oluna biləcəyi halda bizə düzgün yol göstərmək üçün batareyanın güc səviyyəsini mütəmadi olaraq izləmək ehtiyacı yaranır. Buna görə də, bu DIY -də (Özünüz Et) CloudX -dən istifadə edərək sadə bir batareya gərginliyi ölçücü dizayn etməliyik - 7Segmenti ekranınız kimi istifadə edərək.

Addım 1: Avadanlıq Tələbi

CloudX Mikrokontrolör Modulu

CloudX USB

SoftCard

7 Bölmə Ekranı

Rezistorlar

Enerji təchizatı vahidi

Çörək lövhəsi

Bağlayıcı tellər

Addım 2: CloudX M633 mikro nəzarətçi

CloudX M633 mikro nəzarətçi
CloudX M633 mikro nəzarətçi

CloudX Mikrokontrolör Modulu

CloudX modulu, sadə bir mikrokontrolör lövhəsi vasitəsi ilə fiziki dünya ilə çox rahat və asan bir əlaqə qurmağa imkan verən bir elektronika dizayn aparat vasitəsidir. Bütün platforma açıq mənbəli fiziki hesablamalara əsaslanır. Bir IDE (İnteqrasiya edilmiş İnkişaf Mühiti) sadəliyi onu yeni başlayanlar üçün mükəmməl bir hala gətirir, lakin inkişaf etmiş son istifadəçilərin yollarını keçməsinə imkan verən kifayət qədər funksionallığı saxlayır. Bir qoz qabığında CloudX, mikrokontrolörün idarə edilməsinin çox sadələşdirilmiş bir prosesini təmin edir-bununla əlaqəli normal kompleks detalları çıxararaq; eyni zamanda çox zəngin bir istifadəçi təcrübəsi platforması təqdim edərkən. Məktəblər, böyük bir Təhsil vasitəsi olaraq; sənaye və ticarət məhsulları; və bir hobbiçinin əlində böyük bir köməkçi vasitə kimi geniş tətbiqləri tapır.

Addım 3: Bağlantıları bağlayın

Pin Əlaqələri
Pin Əlaqələri

7 seqmentli pinlər: A, B, C, D, E, F, G, 1, 2 və 3 CloudX-MCU pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, müvafiq olaraq pin10 və pin11.

Addım 4: Dövrə Şeması

Dövrə diaqramı
Dövrə diaqramı

Burada mərkəzi mərhələdə olan mikrokontrolör modulu açıla bilər:

lövhədəki Vin və Gnd nöqtələri vasitəsilə (yəni onları müvafiq olaraq xarici enerji təchizatı cihazınızın +ve və -ve terminallarına bağlayaraq);

və ya CloudX USB proqram kartı modulu vasitəsilə

. Yuxarıdakı dövrə diaqramından asanlıqla göründüyü kimi, giriş batareyasının gərginliyi MCU (mikrokontrolör) modulu ilə əlaqələndirilir ki, gərginlik bölücü şəbəkəsinin – nöqtəsi MCU pininin A0 -na qoşulsun..

və belə bir şəkildə seçilir:

şəbəkədən axan cərəyanın miqdarını məhdudlaşdırmaq;

MCU üçün təhlükəsiz (0 - 5) V aralığında limit.

Düsturdan istifadə edərək: VOUT = (R2/(R1+R2)) * VIN; və asanlıqla qiymətləndirilə bilər.

Voutmax = 5V

və bu layihə üçün seçirik: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 Məsələn R2 = 10kΩ alaraq; R1 = 45/5 * 10 = 90kΩ

Addım 5: Əməliyyat prinsipi

Giriş ölçülmüş gərginlik, gərginlik bölücü şəbəkənin VOUT nöqtəsi ilə oxunduqda, məlumatlar daha sonra seqment vahidində göstərilən son faktiki dəyəri qiymətləndirmək üçün MCU -da işlənir. Bu (sistem dizaynı) avtomatik ondalık nöqtəsi yer tutucusudur, çünki (ondalık nöqtəsi) float dəyərinin zamanın istənilən nöqtəsində diktə etdiyi şeyə uyğun olaraq əslində ekran bölməsindəki mövqeyini dəyişir. Sonra, bütün 7-Segment ekran vahidi multiplex rejimində bağlanır. MCU-dan eyni məlumat ötürücüsünün (8 məlumat pinləri) ekran bölməsindəki üç aktiv 7 seqmenti qidalandırdığı xüsusi bir tənzimləmədir. Hər bir komponent hissəsinə məlumat modelinin göndərilməsi Tarama adlanan bir proseslə əldə edilir. Tarama, 7 seqmentin hər bir hissəsinə məlumatların göndərilməsini əhatə edən bir texnikadır; və müvafiq məlumatları gəldikcə onları ardıcıl olaraq işə salmaq (yəni açmaq). Hər birinə müraciət etmək dərəcəsi, insan görmə qabiliyyətini aldadaraq, hamısının (komponent hissələrinin) eyni anda işə salındığını (ünvanlandığını) inandırmağa müvəffəq olacaq şəkildə edilir. Bu (tarama), əslində, Vizyonun Davamlılığı olaraq bilinən bir fenomendən istifadə edir.

Addım 6: Proqram Proqramı

#daxil edin

#daxil edin

#daxil edin

#seqmenti təyin edin1 pin9

#seqmenti təyin edin2 pin10

#seqment 3 pin11 təyin edin

float batt_voltage;

int decimalPoint, batt;

/*hər verilən rəqəm üçün seqment modelini saxlayan massivlər*/

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;

göstər () {

imzasız char i;

if (decimalPoint <10) {

disp0 = (int) batt_voltage /100; // MSD (Ən Önəmli Rəqəm) alır

// ən yüksək çəkili olmaq

/* növbəti çəkili rəqəmi alır; və s */

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

disp2 = ((int) batt_voltage % 10);

}

başqa {

disp0 = (int) batt_voltage /1000;

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

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

}

/*Nümunələr nümayiş üçün tökülür; və ondalık nöqtəni əlavə edən 0x80 simvolu

əlaqəli şərt doğrudursa*/

üçün (i = 0; i <50; i ++) {

pin9 = pin10 = pin11 = YÜKSƏK;

əgər (decimalPoint <10)

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

else portWrite (1, CCathodeDisp [disp0]);

seqment1 = DÜŞÜK;

seqment2 = YÜKSƏK;

seqment3 = YÜKSƏK;

gecikmə Ms (5);

pin9 = pin10 = pin11 = YÜKSƏK;

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

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

else portWrite (1, CCathodeDisp [disp1]);

seqment1 = YÜKSƏK;

seqment2 = DÜŞÜK;

seqment3 = YÜKSƏK;

gecikmə Ms (5);

pin9 = pin10 = pin11 = YÜKSƏK;

əgər (decimalPoint> = 100)

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

else portWrite (1, CCathodeDisp [disp2]);

seqment1 = YÜKSƏK;

seqment2 = YÜKSƏK;

seqment3 = DÜŞÜK;

gecikmə Ms (5);

}

}

setup () {// burada quraşdırın

analogSetting (); // analoq portu işə salındı

portModu (1, Çıxış); // 1 -dən 8 -ə qədər sancaqlar çıxış sancaqları kimi konfiqurasiya edilmişdir

/ * çıxış pinləri kimi konfiqurasiya edilmiş sancaqlar */

pin9Mode = Çıxış;

pin10Mode = Çıxış;

pin11Mode = Çıxış;

portWrite (1, LOW);

pin9 = pin10 = pin11 = YÜKSƏK; // tarama sancaqları (aktiv-aşağı)

// başlanğıcda əlil olur

loop () {// Proqram burada

batt_voltage = analogRead (A0); // ölçülmüş dəyəri alır

batt_voltage = ((batt_voltage * 5000) / 1024); // 5Vin üçün dönüşüm faktoru

batt_voltage = (batt_voltage * 50)/5000; // 50Vin üçün dönüşüm faktoru

decimalPoint = batt_voltage; // ondalık nöqtənin göründüyü yerləri işarələyir

// məlumat manipulyasiyasından əvvəl orijinal dəyər

ekran ();

}

}

Tövsiyə: