Daftar Isi:

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

Baterai memberikan bentuk daya DC (arus searah) yang lebih murni ketika digunakan di sirkuit. Tingkat kebisingannya yang rendah selalu membuatnya sangat cocok untuk beberapa sirkuit yang sangat sensitif. Namun, pada saat level tegangannya turun di bawah titik ambang tertentu, sirkuit (yang dimaksudkan untuk memberi daya), mungkin masuk ke dalam perilaku yang tidak menentu; terutama ketika mereka tidak dirancang dengan baik untuk menangani itu.

Oleh karena itu, timbul kebutuhan untuk secara teratur memantau tingkat daya baterai untuk memandu kita dengan tepat kapan waktunya untuk penggantian total, atau pengisian daya dalam kasus baterai yang dapat diisi ulang. Oleh karena itu, pada DIY (Do It Yourself) kali ini, kami akan mendesain pengukur tegangan baterai sederhana menggunakan CloudX –menggunakan 7Segment sebagai tampilan kami.

Langkah 1: Persyaratan Perangkat Keras

Modul Mikrokontroler CloudX

CloudX USB

SoftCard

Tampilan 7Segmen

Resistor

Unit Catu Daya

Papan tempat memotong roti

Kabel Jumper (Menghubungkan)

Langkah 2: Mikrokontroler CloudX M633

Mikrokontroler CloudX M633
Mikrokontroler CloudX M633

Modul Mikrokontroler CloudX

Modul CloudX adalah alat perangkat keras desain elektronik yang memungkinkan Anda berinteraksi dengan dunia fisik dengan lebih nyaman dan mudah melalui papan mikrokontroler sederhana. Seluruh platform didasarkan pada komputasi fisik sumber terbuka. Kesederhanaan IDE (Integrated Development Environment) benar-benar membuatnya sangat cocok untuk pemula, namun tetap mempertahankan fungsionalitas yang cukup untuk memungkinkan pengguna akhir tingkat lanjut menavigasi jalan mereka. Singkatnya, CloudX menyediakan proses penanganan mikrokontroler yang jauh lebih disederhanakan dengan mengabstraksikan detail kompleks normal yang terkait dengannya; sementara pada saat yang sama menawarkan platform pengalaman pengguna yang sangat kaya. Ia menemukan aplikasi yang luas memotong seluruh papan: sekolah, sebagai alat Pendidikan yang hebat; produk industri dan komersial; dan sebagai alat utilitas yang hebat di tangan seorang penghobi.

Langkah 3: Pin Koneksi

Pin Koneksi
Pin Koneksi

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

Langkah 4: Diagram Sirkuit

Diagram Sirkuit
Diagram Sirkuit

Modul mikrokontroler, yang menjadi pusat perhatian di sini, dapat dinyalakan:

baik melalui titik Vin dan Gnd (yaitu menghubungkannya ke terminal +ve dan –ve unit catu daya eksternal Anda masing-masing) di papan tulis;

atau melalui modul kartu lunak USB CloudX Anda

. Lebih dari itu, seperti dapat dengan mudah dilihat dari diagram rangkaian di atas, tegangan baterai input dihubungkan dengan modul MCU (mikrokontroler) sedemikian rupa sehingga titik – dari jaringan pembagi tegangan (dibentuk oleh dan) terhubung ke A0 dari pin MCU.

dan dipilih sedemikian rupa untuk:

membatasi jumlah arus yang mengalir melalui jaringan;

batas dalam kisaran aman (0 – 5)V untuk MCU.

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

Voutmaks = 5V

dan untuk proyek 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

Ketika tegangan input terukur dibaca melalui titik VOUT jaringan pembagi tegangan, data diproses lebih lanjut di MCU untuk dievaluasi ke nilai aktual akhir yang ditampilkan pada unit segmen. Ini (desain sistem) adalah placer titik desimal otomatis, dalam hal itu (titik desimal) benar-benar menggeser posisi pada unit tampilan itu sendiri sesuai dengan apa yang ditentukan oleh nilai float pada titik waktu tertentu. Kemudian, seluruh unit tampilan 7-Segmen perangkat keras dihubungkan dalam mode multipleks. Ini adalah pengaturan khusus dimana bus data yang sama (8-pin data) dari MCU mengumpankan tiga segmen 7 aktif di unit tampilan. Mengirim pola data ke masing-masing bagian komponen dicapai dengan proses yang disebut sebagai Scanning. Pemindaian adalah teknik yang melibatkan pengiriman data ke masing-masing komponen 7-segmen; dan mengaktifkan (yaitu menyalakan) secara berurutan saat data masing-masing tiba. Tingkat pengalamatan masing-masing dilakukan sedemikian rupa sehingga berhasil menipu penglihatan manusia menjadi percaya bahwa semuanya (bagian komponen) diaktifkan (ditangani) pada saat yang bersamaan. Ini (pemindaian) sederhana, pada dasarnya, menggunakan fenomena yang dikenal sebagai Persistence Of Vision.

Langkah 6: Program Perangkat Lunak

#termasuk

#termasuk

#termasuk

#tentukan segmen1 pin9

#tentukan segmen2 pin10

#tentukan segmen3 pin11

float batt_voltage;

int desimalPoint, batt;

/*array yang menyimpan pola-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;

menampilkan() {

karakter i yang tidak ditandatangani;

if(titik desimal < 10) {

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

//menjadi bobot tertinggi

/* mengambil digit berbobot berikutnya; dan seterusnya */

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;

}

/*Pola dituangkan untuk ditampilkan; dan karakter 0x80 menambahkan titik desimal

jika kondisi terkait benar*/

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

pin9 = pin10 = pin11 = TINGGI;

if(titik desimal < 10)

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

else portWrite(1, CCathodeDisp[disp0]);

segmen1 = RENDAH;

segmen2 = TINGGI;

segmen3 = TINGGI;

delayMs(5);

pin9 = pin10 = pin11 = TINGGI;

if((titik desimal >= 10) && (titik desimal < 100))

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

else portWrite(1, CCathodeDisp[disp1]);

segmen1 = TINGGI;

segmen2 = RENDAH;

segmen3 = TINGGI;

delayMs(5);

pin9 = pin10 = pin11 = TINGGI;

if (titik desimal >= 100)

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

else portWrite(1, CCathodeDisp[disp2]);

segmen1 = TINGGI;

segmen2 = TINGGI;

segmen3 = RENDAH;

delayMs(5);

}

}

setup(){ //setup disini

pengaturan analog(); //port analog diinisialisasi

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

/* pin pindai dikonfigurasi sebagai pin keluaran */

pin9Mode = KELUARAN;

pin10Mode = KELUARAN;

pin11Mode = KELUARAN;

portWrite(1, RENDAH);

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

// dinonaktifkan di awal

loop(){ //Program di sini

batt_voltage = analogRead(A0); //mengambil nilai terukur

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

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

desimalPoint = batt_voltage; //menandai di mana titik desimal muncul

//nilai asli sebelum manipulasi data

menampilkan();

}

}

Direkomendasikan: