Isi kandungan:

Voltmeter Digital Dengan CloudX: 6 Langkah
Voltmeter Digital Dengan CloudX: 6 Langkah

Video: Voltmeter Digital Dengan CloudX: 6 Langkah

Video: Voltmeter Digital Dengan CloudX: 6 Langkah
Video: VOLTMETER DAN SUHU MESIN 2024, November
Anonim
Voltmeter Digital Dengan CloudX
Voltmeter Digital Dengan CloudX

Bateri memberikan kuasa DC (arus terus) yang lebih murni ketika digunakan dalam litar. Tahap kebisingan yang rendah selalu menjadikannya sesuai untuk beberapa litar yang sangat sensitif. Walau bagaimanapun, pada saat tahap voltan mereka turun di bawah titik ambang tertentu, litar - (yang dimaksudkan untuk memberi kuasa), mungkin memasuki tingkah laku yang tidak menentu; terutamanya apabila mereka tidak dirancang dengan baik untuk mengatasinya.

Oleh itu, timbul keperluan untuk secara berkala memantau tingkat daya bateri untuk memandu kita dengan benar tentang kapan ia diperlukan untuk penggantian total, atau pengecasan sekiranya bateri boleh dicas semula. Oleh itu, dalam DIY (Do It Yourself) ini, kita akan merancang meter voltan bateri sederhana menggunakan CloudX - menggunakan 7Segment sebagai paparan kita.

Langkah 1: Keperluan Perkakasan

Modul Mikrokontroler CloudX

USB CloudX

Kad Lembut

Paparan Bahagian

Perintang

Unit Bekalan Kuasa

Papan roti

Kabel Jumper (Menyambung)

Langkah 2: Mikrokontroler CloudX M633

Mikrokontroler CloudX M633
Mikrokontroler CloudX M633

Modul Mikrokontroler CloudX

Modul CloudX adalah alat perkakasan reka bentuk elektronik yang membolehkan anda berinteraksi dengan dunia fizikal yang sangat mudah dan senang melalui papan mikrokontroler yang mudah. Keseluruhan platform didasarkan pada pengkomputeran fizikal sumber terbuka. Kesederhanaan IDE (Integrated Development Environment) menjadikannya sangat sesuai untuk pemula, namun mengekalkan fungsi yang cukup untuk membolehkan pengguna akhir yang maju menavigasi mereka. Dalam shell-shell, CloudX menyediakan proses pengendalian mikrokontroler yang jauh lebih mudah - dengan menyingkirkan perincian kompleks biasa yang berkaitan dengannya; dan pada masa yang sama menawarkan platform pengalaman pengguna yang sangat kaya. Ia menemui pelbagai aplikasi: sekolah, sebagai alat Pendidikan yang hebat; produk industri dan komersial; dan sebagai alat utiliti yang hebat di tangan penggemar.

Langkah 3: Sambungan Pin

Sambungan Pin
Sambungan Pin

Pin 7 segmen: A, B, C, D, E, F, G, 1, 2 dan 3 disambungkan ke pin1, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin9, pin9, pin9, pin9, pin9, pin10 dan pin11 masing-masing.

Langkah 4: Diagram Litar

Rajah Litar
Rajah Litar

Modul mikrokontroler, berada di tahap tengah di sini, dapat dihidupkan:

sama ada melalui titik Vin dan Gnd (iaitu menghubungkannya ke terminal + ve dan –ve unit bekalan kuasa luaran masing-masing) di papan;

atau melalui modul kad lembut USB CloudX anda

. Lebih dari itu, seperti yang dapat dilihat dengan mudah dari gambarajah litar di atas, voltan bateri input dihubungkan dengan modul MCU (mikrokontroler) sehingga –poin rangkaian pembahagi voltan (dibentuk oleh dan) disambungkan ke A0 pin MCU.

dan dipilih sedemikian rupa untuk:

hadkan jumlah arus yang mengalir melalui rangkaian;

had dalam jarak selamat (0 - 5) V untuk MCU.

Menggunakan formula: VOUT = (R2 / (R1 + R2)) * VIN; dan dapat dinilai dengan mudah.

Voutmax = 5V

dan untuk projek ini, kami memilih: Vinmax = 50V;

5 = (R2 / (R1 + R2)) * 50 R1 = 45/5 * R2 Mengambil R2 = 10kΩ misalnya; R1 = 45/5 * 10 = 90kΩ

Langkah 5: Prinsip Operasi

Apabila voltan yang diukur input dibaca melalui titik VOUT dari rangkaian pembahagi voltan, data diproses lebih lanjut dalam MCU untuk menilai hingga nilai sebenar akhir yang dipaparkan pada unit segmen. Ia (reka bentuk sistem) adalah penempatan titik perpuluhan automatik, kerana ia (titik perpuluhan) benar-benar mengubah kedudukan pada unit paparan itu sendiri sesuai dengan apa yang ditentukan oleh nilai apungan pada suatu titik waktu tertentu. Kemudian, keseluruhan unit paparan 7-Segmen perkakasan disambung dalam mod multiplex. Ini adalah susunan khas di mana bas data yang sama (pin 8-data) dari MCU memberi makan tiga segmen 7 aktif di unit paparan. Menghantar corak data ke dalam setiap bahagian komponen dicapai dengan proses yang disebut sebagai Pengimbasan. Mengimbas adalah teknik yang melibatkan penghantaran data ke setiap komponen 7-segmen; dan membolehkan (iaitu menghidupkan) mereka secara berturut-turut ketika data masing-masing tiba. Tahap menangani masing-masing dilakukan sedemikian rupa sehingga berjaya menipu penglihatan manusia untuk mempercayai bahawa semuanya (bahagian komponen) diaktifkan (ditujukan) pada masa yang sama. Ini (pengimbasan) secara sederhana, sebenarnya, menggunakan fenomena yang dikenali sebagai Persistence Of Vision.

Langkah 6: Program Perisian

#sertakan

#sertakan

#sertakan

#tentukan segmen1 pin9

#tentukan segmen2 pin10

#tentukan segmen3 pin11

float batt_voltage;

int decimalPoint, batt;

/ * tatasusunan yang menyimpan corak segmen untuk setiap digit yang diberikan * /

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;

paparan () {

char i yang tidak ditandatangani;

jika (titik perpuluhan <10) {

disp0 = (int) batt_voltage / 100; // mengambil MSD (Digit Paling Penting)

// menjadi berwajaran tertinggi

/ * mengambil digit berwajaran seterusnya; dan sebagainya */

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

disp2 = ((int) batt_voltage% 10);

}

lain {

disp0 = (int) batt_voltage / 1000;

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

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

}

/ * Corak dicurahkan untuk paparan; dan aksara 0x80 menambah titik perpuluhan

sekiranya keadaan yang berkaitan berlaku * /

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

pin9 = pin10 = pin11 = TINGGI;

jika (titik perpuluhan <10)

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

portWrite yang lain (1, CCathodeDisp [disp0]);

segmen1 = RENDAH;

segmen2 = TINGGI;

segmen3 = TINGGI;

kelewatanMs (5);

pin9 = pin10 = pin11 = TINGGI;

jika ((titik perpuluhan> = 10) && (titik perpuluhan <100))

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

portWrite yang lain (1, CCathodeDisp [disp1]);

segmen1 = TINGGI;

segmen2 = RENDAH;

segmen3 = TINGGI;

kelewatanMs (5);

pin9 = pin10 = pin11 = TINGGI;

jika (titik perpuluhan> = 100)

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

portWrite yang lain (1, CCathodeDisp [disp2]);

segmen1 = TINGGI;

segmen2 = TINGGI;

segmen3 = RENDAH;

kelewatanMs (5);

}

}

persediaan () {// persediaan di sini

analogSetting (); // port analog dimulakan

portMode (1, OUTPUT); // Pin 1 hingga 8 dikonfigurasikan sebagai pin output

/ * pin imbasan dikonfigurasikan sebagai pin output * /

pin9Mode = KELUARAN;

pin10Mode = KELUARAN;

pin11Mode = KELUARAN;

portWrite (1, RENDAH);

pin9 = pin10 = pin11 = TINGGI; // pin imbasan (yang aktif rendah)

// dilumpuhkan pada awalnya

gelung () {// Program di sini

batt_voltage = analogRead (A0); // mengambil nilai yang diukur

batt_voltage = ((batt_voltage * 5000) / 1024); // faktor penukaran untuk 5Vin

batt_voltage = (batt_voltage * 50) / 5000; // faktor penukaran untuk 50Vin

perpuluhan = batt_voltage; // tanda di mana titik perpuluhan muncul

// nilai asal sebelum manipulasi data

paparan ();

}

}

Disyorkan: