- Komponen yang Dibutuhkan:
- Deskripsi:
- Diagram Sirkuit dan Penjelasan Kerja:
- Desain Sirkuit dan PCB menggunakan EasyEDA:
- Menghitung dan Memesan Sampel PCB secara online:
- Penjelasan Pemrograman:
Dalam proyek ini kita akan membuat sistem Pemantauan Aki Mobil berbasis PIC pada PCB. Di sini kami telah mendesain PCB menggunakan simulator dan perancang PCB online EASYEDA. Ini Pemantauan Circuit Battery Car digunakan untuk memantau kekuatan Battery Car dengan hanya menghubungkannya ke stopkontak di dashboard mobil. The PCB juga memiliki pilihan untuk menggunakannya sebagai Voltage Pengukuran alat atau Voltmeter tanpa menggunakan charger USB mobil. Kami telah memasang blok terminal di sini untuk mengukur tegangan sumber daya lain, hanya dengan menghubungkan dua kabel di dalamnya dari sumber listrik.
Komponen yang Dibutuhkan:
- Mikrokontroler PIC PIC18F2520 -1
- Papan PCB Fabrikasi -1
- Konektor USB -1
- Konektor Terminal 2 pin (opsional) -1
- Tampilan tujuh segmen anoda umum (4 in 1) -1
- BC557 Transistor -4
- 1k resistor -6
- Resistor 2k -1
- Resistor 100R -8
- Kapasitor 1000uF -1
- Kapasitor 10uF -1
- 28 pin IC dasar -1
- perampok perempuan -1
- 7805 Pengatur tegangan -1
- Pengisi daya USB mobil -1
- LED -1
- Dioda zener5.1v -2
- Kabel USB (kompatibel dengan tipe B atau Arduino UNO) -1
- Kristal 20MHz -1
- 33pF kapasitor -2
Deskripsi:
Umumnya tidak penting untuk mengukur daya aki mobil setiap saat, namun seringkali kita perlu mengetahui voltase aki selama pengisian, untuk mengecek apakah pengisiannya atau tidak. Dengan ini, kami dapat melindungi kegagalan baterai karena sistem pengisian yang salah. Tegangan aki mobil 12v selama pengisian sekitar 13,7v. Jadi kami dapat mengidentifikasi apakah baterai kami sedang diisi dengan baik atau tidak dan dapat menyelidiki penyebab kegagalan baterai. Dalam proyek ini, kami akan menerapkan Pengukur Tegangan untuk Aki Mobil dengan menggunakan mikrokontroler PIC. Pemantik Rokok Mobil atau charger USB Mobil digunakan untuk mendapatkan tegangan aki ke pin ADC mikrokontroler dengan bantuan Rangkaian Pembagi Tegangan. Kemudian 4 digit tujuh segmen ditampilkandigunakan untuk menunjukkan nilai tegangan baterai. Rangkaian ini dapat mengukur tegangan hingga 15v.
Ketika aki mobil sedang diisi, maka tegangan yang melintasi terminal aki sebenarnya berasal dari alternator / penyearah, itulah mengapa sistem membaca 13,7 volt. Tetapi ketika aki tidak mengisi atau mesin mobil tidak ON, maka tegangan yang melintasi terminal aki sebenarnya adalah tegangan aki sekitar 12v.
Kami juga dapat menggunakan rangkaian yang sama untuk mengukur tegangan sumber daya lain hingga 15v. Untuk tujuan ini kami telah menyolder Blok Terminal (blok plastik warna hijau) di PCB di mana Anda dapat menghubungkan dua kabel dari sumber listrik dan dapat memantau tegangan. Periksa Video di bagian akhir, di mana kami telah mendemonstrasikannya dengan mengukur tegangan Catu daya Variabel, bank daya USB, dan adaptor AC-DC 12v. Periksa juga Rangkaian Monitor Baterai Sederhana dan Rangkaian Pengisi Daya Baterai 12v.
Diagram Sirkuit dan Penjelasan Kerja:
Pada Rangkaian Pemantauan Tegangan Aki ini, kita telah membaca tegangan aki mobil dengan menggunakan pin analog inbuilt mikrokontroler PIC dan di sini kita telah memilih pin AN0 (28) dari mikrokontroler melalui rangkaian pembagi tegangan. Dioda zener 5.1v juga digunakan untuk perlindungan.
Tampilan seven segment 4 in 1 digunakan untuk menampilkan nilai sesaat tegangan aki mobil yang terhubung pada PORTB dan PORTC mikrokontroler. Regulator tegangan 5v yaitu LM7805 digunakan untuk menyalakan seluruh rangkaian termasuk Seven Segment Displays. Osilator kristal 20 MHz digunakan untuk mengatur jam mikrokontroler. Sirkuit ini ditenagai oleh charger mobil USB itu sendiri dengan menggunakan LM7805. Kami telah menambahkan port USB di PCB, sehingga kami dapat langsung menghubungkan pengisi daya USB mobil ke sirkuit.
Pengisi daya USB mobil atau pemantik rokok menyediakan pasokan 5v yang diatur dari stopkontak 12v mobil, tetapi kami perlu mengukur tegangan aktual Aki mobil sehingga kami telah mengubah pengisi daya Mobil. Anda perlu membuka pengisi daya USB mobil dan kemudian menemukan terminal 5v (keluaran) dan 12v (masukan) dan kemudian melepaskan koneksi 5v dengan menggosoknya dengan kertas pasir atau dengan benda keras dan menyingkat terminal keluaran USB menjadi 12v secara langsung. Pertama buka koneksi 5v dari port USB di charger USB mobil dan kemudian hubungkan 12v ke port USB di mana 5v terhubung. Seperti yang ditunjukkan pada gambar di bawah ini, kami telah memutus sambungan yang dilingkari merah, mungkin berbeda pada charger mobil Anda.
Untuk mengkonfigurasi ADC di sini kami telah memilih pin analog AN0 dengan tegangan referensi internal 5v dan f / 32 clock untuk konversi ADC.
Untuk menghitung tegangan aki mobil dari nilai ADC kami telah menggunakan rumus yang diberikan:
Tegangan = (nilai ADC / faktor resistor) * tegangan referensi Dimana: Nilai ADC = keluaran Pembagi tegangan (diubah menjadi digital oleh mikrokontroler) Faktor resistor = 1023.0 / (R2 / R1 + R2) // 1023 adalah nilai ADC maks (10- bit) Tegangan Referensi = 5 volt // referensi internal 5v dipilih
Perhitungan Faktor Resistor:
Dalam proyek ini kami membaca tegangan aki mobil yang (umumnya) sekitar 12v-14v. Jadi kami telah melakukan proyek ini dengan asumsi maks 15v berarti sistem ini dapat membaca maks hingga 15v.
Jadi di rangkaian kita telah menggunakan resistor R1 dan R2 pada bagian pembagi tegangan dan nilainya adalah:
R1 = 2K
R2 = 1K
Faktor resistor = 1023,0 * (1000/2000 + 1000)
Faktor resistor = 1023,0 * (1/3)
Faktor resistor = 341,0 hingga 15 volt
Jadi Rumus Akhir untuk perhitungan tegangan adalah sebagai berikut, yang telah kita gunakan Kode, diberikan di akhir Artikel ini:
Tegangan = (nilai ADC / 341.0) * 5.0
Desain Sirkuit dan PCB menggunakan EasyEDA:
Untuk merancang Sirkuit untuk Monitor Tegangan Aki Mobil, kami telah menggunakan EasyEDA yang merupakan alat EDA online gratis untuk membuat sirkuit dan PCB dengan cara yang mulus. Kami sebelumnya telah memesan beberapa PCB dari EasyEDA dan masih menggunakan layanan mereka karena kami menemukan seluruh proses, dari menggambar sirkuit hingga memesan PCB, lebih nyaman dan efisien dibandingkan dengan pabrikan PCB lainnya. EasyEDA menawarkan gambar sirkuit, simulasi, desain PCB secara gratis dan juga menawarkan layanan PCB Khusus berkualitas tinggi tetapi harga rendah. Simak di sini tutorial lengkap tentang Cara menggunakan Easy EDA untuk membuat Skema, Layout PCB, Simulasi Sirkuit, dll.
EasyEDA meningkat dari hari ke hari; mereka telah menambahkan banyak fitur baru dan meningkatkan pengalaman pengguna secara keseluruhan, yang membuat EasyEDA lebih mudah dan dapat digunakan untuk mendesain sirkuit. Mereka akan segera meluncurkan versi Desktopnya, yang dapat diunduh dan diinstal di komputer Anda untuk penggunaan offline.
Di EasyEDA, Anda dapat membuat desain sirkuit dan PCB Anda menjadi publik sehingga pengguna lain dapat menyalin atau mengeditnya dan dapat memanfaatkannya, kami juga telah membuat seluruh rangkaian Sirkuit dan PCB kami menjadi publik untuk Monitor Tegangan Baterai Mobil ini , periksa tautan di bawah ini:
easyeda.com/circuitdigest/PIC_based_Car_Battery_Monitoring_System-63c2d5948eaa48c5bcb E5E5E5db49a6c776
Di bawah ini adalah Snapshot dari Top layer layout PCB dari EasyEDA, Anda dapat melihat Layer (Top, Bottom, Topsilk, bottomsilk dll) dari PCB dengan memilih layer dari Window 'Layers'.
Menghitung dan Memesan Sampel PCB secara online:
Setelah menyelesaikan desain PCB, Anda dapat mengklik ikon Output fabrikasi , yang akan membawa Anda ke halaman pemesanan PCB. Di sini Anda dapat melihat PCB Anda di Gerber Viewer atau mengunduh file Gerber dari PCB Anda dan mengirimkannya ke pabrikan mana pun, juga jauh lebih mudah (dan lebih murah) untuk memesannya langsung di EasyEDA. Disini anda bisa memilih jumlah PCB yang ingin anda pesan, berapa lapisan tembaga yang anda butuhkan, ketebalan PCB, berat tembaga, bahkan warna PCB. Setelah Anda memilih semua opsi, klik "Simpan ke Keranjang" dan selesaikan pesanan Anda, kemudian Anda akan mendapatkan PCB Anda beberapa hari kemudian.
Anda dapat langsung memesan PCB ini atau mengunduh file Gerber menggunakan tautan ini.
Setelah beberapa hari memesan PCB, saya mendapat sampel PCB
Setelah mendapatkan PCB, saya telah memasang semua komponen yang diperlukan di atas PCB, dan akhirnya kami memiliki Sistem Pemantauan Baterai Mobil kami siap, periksa sirkuit ini berfungsi dalam Video yang diberikan di bagian akhir.
Penjelasan Pemrograman:
Program proyek ini agak sulit untuk pemula. Untuk menulis kode ini kita membutuhkan beberapa file header. Di sini kita menggunakan MPLAB X IDE untuk pengkodean dan kompiler XC untuk membangun dan mengkompilasi kode. Kode tersebut ditulis dalam bahasa C.
Pada kode ini, kita telah membaca tegangan baterai menggunakan pin analog dan untuk mengontrol atau mengirim data ke tampilan tujuh segmen 4-digit, digunakan Rutin Server Interupsi Timer pada mikrokontroler PIC. Semua perhitungan untuk pengukuran tegangan dilakukan dalam rutinitas program utama.
Pertama, pada kode tersebut kita telah menyertakan header kemudian mengkonfigurasi mikrokontroler PIC menggunakan konfigurasi Bits.
#include
Dan kemudian variabel yang dideklarasikan dan pin yang ditentukan untuk tujuh segmen ditampilkan
unsigned int counter2; unsigned char position = 0; karakter tak bertanda tangan = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; int digit1 = 0, digit2 = 0, digit3 = 0, digit4 = 0; #define TRIS_seg1 TRISCbits.TRISC0 # define TRIS_seg2 TRISCbits.TRISC1 # define TRIS_seg3 TRISCbits.TRISC2 # define TRIS_seg4 TRISCbits.TRISC3 # define TRIS_led1 TRISAbits.TRISA2 # define TRIS_led2 TRISAbits.TRISA5 # define TRIS_led3 TRISAbits.TRISA0 # define TRIS_led4 TRISAbits.TRISA1 #define TRIS_led5 TRISAbits.TRISA…………………..
Sekarang kita telah membuat rutinitas interupsi pengatur waktu untuk menggerakkan tampilan tujuh segmen:
void interrupt low_priority LowIsr (void) {if (TMR0IF == 1) {counter2 ++; if (counter2> = 1) {if (position == 0) {seg1 = 0; seg2 = 1; seg3 = 1; seg4 = 1;………………
Sekarang di fungsi void main () , kita telah menginisialisasi timer dan interrupt.
GIE = 1; // GLOBLE INTRRUPT ENABLE PEIE = 1; // flag periferal intrupt T0CON = 0b000000000; // nilai prescaler put TMR0IE = 1; // interupsi aktifkan TMR0IP = 0; // interupsi prioritas TMR0 = 55536; // mulai penghitung setelah nilai ini TMR0ON = 1;
Dan kemudian di while loop, kita membaca input analog pada pin analog dan memanggil beberapa fungsi untuk kalkulasi.
sementara (1) {adc_init (); untuk (i = 0; i <40; i ++) {Value = adc_value (); adcValue + = Nilai; } adcValue = (float) adcValue / 40.0; convert (adcValue); penundaan (100); }
Diberikan fungsi adc_init () digunakan untuk menginisialisasi ADC
batal adc_init () {ADCON0 = 0b00000011; // pilih saluran adc ADCON1 = 0b00001110; // pilih analog dan digital i / p ADCON2 = 0b10001010; // persamaan waktu penahanan batas waktu ADON = 1; }
Diberikan fungsi adc_value digunakan untuk membaca input dari pin analog dan menghitung tegangan.
float adc_value (void) {float adc_data = 0; sementara (PERGI / SELESAI == 1); // lebih tinggi bit data mulai konversi adc nilai adc_data = (ADRESL) + (ADRESH << 8); // Simpan 10-bit output adc_data = ((adc_data / 342.0) * 5.0); return adc_data; }
Dan fungsi konversi yang diberikan digunakan untuk mengubah nilai tegangan ke nilai segmen yang didukung.
void convert (float f) {int d = (f * 100); digit1 = d% 10; d = d / 10; digit2 = d% 10; d = d / 10; digit3 = d% 10; digit4 = d / 10; }
Periksa kode Lengkap untuk proyek ini di bawah ini dengan Video demonstrasi.