- Bahan yang Diperlukan
- Diagram Litar Beban Elektronik Arduino DC
- Reka Bentuk PCB dan Fail Gerber
- Memesan PCB anda dari AllPCB
- Kod Arduino untuk Beban DC yang Boleh Diselaraskan
- Menguji Beban DC Laras kami
Sekiranya anda pernah bekerja dengan Bateri, litar SMPS atau litar Bekalan kuasa yang lain, maka seringkali anda perlu menguji sumber kuasa anda dengan memuatkannya untuk memeriksa bagaimana ia berfungsi dalam keadaan pemuatan yang berbeza. Peranti yang biasanya digunakan untuk melakukan pengujian jenis ini disebut Beban DC Arus Konstan, yang memungkinkan kita untuk menyesuaikan arus keluaran sumber kuasa anda dan kemudian membuatnya tetap berterusan sehingga disesuaikan kembali berubah. Dalam tutorial ini, kita akan belajar bagaimana membuat Beban Elektronik Laras kita sendiri menggunakan Arduino, yang dapat mengambil voltan input maksimum 24V dan mengalirkan arus setinggi 5A. Untuk projek ini, kami telah menggunakan papan PCB yang dikeluarkan oleh AllPCB, penyedia perkhidmatan pembuatan dan pemasangan PCB profesional yang berpusat di cina.
Dalam tutorial sumber semasa yang dikawal voltan sebelumnya, kami telah menerangkan bagaimana menggunakan penguat operasi dengan MOSFET dan menggunakan litar sumber arus yang dikawal voltan. Tetapi dalam tutorial ini, kami akan menggunakan litar itu dan membuat sumber arus yang dikawal secara digital. Jelas, sumber arus yang dikawal secara digital memerlukan litar digital dan untuk memenuhi tujuannya, sebuah Arduino NANO digunakan. Arduino NANO akan menyediakan kawalan yang diperlukan untuk beban DC.
Litar terdiri daripada tiga bahagian. Bahagian pertama adalah bahagian Arduino Nano, bahagian kedua adalah penukar digital ke analog, dan bahagian ketiga adalah litar analog murni di mana penguat operasi ganda dalam satu pakej digunakan yang akan mengawal bahagian beban. Projek ini diilhamkan oleh siaran di Arduino, namun litar diubah kerana kurang kompleks dengan ciri-ciri asas untuk semua orang membinanya.
Beban elektronik kami dirancang untuk mempunyai bahagian input dan output berikut.
- Dua suis input untuk meningkatkan dan mengurangkan beban.
- LCD yang akan menampilkan beban yang ditetapkan, beban sebenar, dan voltan beban.
- Arus muatan maksimum terhad kepada 5A.
- Voltan input maksimum ialah 24V untuk beban.
Bahan yang Diperlukan
Komponen yang diperlukan untuk membina beban elektronik DC disenaraikan di bawah.
- Arduino nano
- LCD aksara 16x2
- Soket dua tong
- Mosfet irf540n
- Mcp4921
- Lm358
- Perintang shunt 5watt.1 ohm
- 1k
- 10k - 6 keping
- Heatsink
- .1uF 50v
- 2k - 2 keping
Diagram Litar Beban Elektronik Arduino DC
Dalam skema di bawah, penguat operasi mempunyai dua bahagian. Salah satunya adalah untuk mengawal MOSFET dan yang lain adalah untuk menguatkan arus yang dirasakan. Anda juga boleh menyemak video di bahagian bawah halaman ini yang menerangkan cara kerja litar yang lengkap. Bahagian pertama mempunyai R12, R13, dan MOSFET. R12 digunakan untuk mengurangkan kesan pemuatan pada bahagian maklum balas dan R13 digunakan sebagai perintang gerbang Mosfet.
Dua perintang tambahan R8 dan R9 digunakan untuk merasakan voltan bekalan kuasa yang akan ditekankan oleh beban dummy ini. Mengikut peraturan pembahagi voltan, kedua-dua perintang ini menyokong maksimum 24V. Lebih daripada 24V akan menghasilkan voltan yang tidak sesuai untuk pin Arduino. Oleh itu, berhati-hatilah untuk tidak menyambungkan bekalan kuasa yang mempunyai voltan keluaran lebih daripada 24V.
Resistor R7 adalah perintang beban sebenar di sini. Ia adalah perintang 5 Watt,.1 Ohm. Menurut undang-undang kuasa, ia akan menyokong maksimum 7A (P = I 2 R), tetapi untuk sisi yang selamat, lebih bijak untuk membatasi maksimum arus beban 5A. Oleh itu, pada masa ini beban maksimum 24V, 5A dapat ditetapkan oleh beban dummy ini.
Bahagian lain dari penguat dikonfigurasi sebagai penguat keuntungan. Ia akan memberikan keuntungan 6x. Semasa aliran arus, penurunan voltan akan muncul. Sebagai contoh, apabila arus 5A mengalir melalui perintang, penurunan voltan akan menjadi.5V melintasi perintang shunt.1 Ohms (V = I x R) mengikut undang-undang ohm. Penguat bukan pembalik akan menguatkannya menjadi x6, oleh itu 3V akan menjadi output dari bahagian kedua penguat. Output ini akan dideteksi oleh pin input analog Arduino nano dan arus akan dikira.
Bahagian pertama penguat dikonfigurasikan sebagai rangkaian pengikut voltan yang akan mengawal MOSFET mengikut voltan masukan dan mendapat voltan maklum balas yang diingini kerana arus beban yang mengalir melalui perintang shunt.
MCP4921 adalah penukar Digital ke Analog. DAC menggunakan protokol komunikasi SPI untuk mendapatkan data digital dari mana-mana unit mikrokontroler dan memberikan output voltan analog bergantung padanya. Voltan ini adalah input op-amp. Kami sebelum ini juga telah belajar bagaimana menggunakan MCP4921 DAC ini dengan PIC.
Di sisi lain, ada Arduino Nano yang akan memberikan data digital ke DAC melalui protokol SPI dan mengendalikan beban, juga menampilkan data dalam paparan karakter 16x2. Dua perkara tambahan digunakan, iaitu butang penurunan dan kenaikan. Daripada menyambung ke pin digital, ia disambungkan dalam pin analog. Oleh itu, seseorang boleh menukarnya ke jenis suis lain seperti slider atau analog encoder. Juga, dengan mengubah kod seseorang dapat menyediakan data analog mentah untuk mengawal beban. Ini juga dapat mengelakkan masalah pengalihan beralih.
Akhirnya, dengan meningkatkan beban, Arduino nano akan memberikan data beban ke DAC dalam format digital, DAC akan memberikan data analog kepada penguat operasi, dan penguat operasi akan mengendalikan MOSFET sesuai voltan masukan penguat operasi. Akhirnya, bergantung pada aliran arus beban melalui perintang shunt, penurunan voltan akan muncul yang selanjutnya akan diperkuat oleh saluran kedua LM358 dan mendapatkan oleh Arduino nano. Ini akan dipaparkan pada paparan watak. Perkara yang sama akan berlaku apabila pengguna menekan butang penurunan.
Reka Bentuk PCB dan Fail Gerber
Oleh kerana litar ini mempunyai jalan arus tinggi, adalah pilihan yang lebih bijak untuk menggunakan taktik reka bentuk PCB yang tepat untuk menghilangkan kes kegagalan yang tidak diingini. Oleh itu, PCB direka untuk beban DC ini. Saya telah menggunakan Eagle PCB Design Software untuk merancang PCB saya. Anda boleh memilih mana-mana Perisian PCB Cad. PCB yang dirancang akhir dalam perisian CAD ditunjukkan pada gambar di bawah,
Salah satu faktor penting yang perlu diperhatikan semasa reka bentuk PCB ini adalah menggunakan pesawat kuasa tebal untuk aliran arus yang betul ke seluruh litar. Terdapat juga VIAS jahitan tanah (vias rawak dalam bidang tanah) yang digunakan untuk aliran tanah yang tepat di kedua lapisan ke atas dan bawah.
Anda juga boleh memuat turun fail Gerber PCB ini dari pautan di bawah dan menggunakannya untuk fabrikasi.
- Muat turun Fail Gerber Beban DC Elektronik Boleh Laras
Memesan PCB anda dari AllPCB
Setelah anda siap dengan fail Gerber anda, anda boleh menggunakannya untuk membuat PCB anda dibuat. Bercakap mengenai siapa yang menaja penaja artikel ini ALLPCB, yang terkenal dengan PCB berkualiti tinggi dan penghantaran ultra cepat. Selain dari Pembuatan PCB, AllPCB juga menyediakanPerhimpunan PCB dan Sumber Komponen.
Untuk mendapatkan pesanan PCB dari mereka, lawati allpcb.com dan pendaftaran. Kemudian di halaman utama, masukkan dimensi PCB anda dan kuantiti yang diperlukan seperti yang ditunjukkan di bawah. Kemudian klik pada Quote sekarang.
Sekarang anda boleh mengubah parameter lain dari PCB anda seperti jumlah lapisan, warna topeng, ketebalan, dll. Di sebelah kanan, anda boleh memilih negara anda dan pilihan penghantaran yang disukai. Ini akan menunjukkan masa utama dan jumlah yang perlu dibayar. Saya telah memilih DHL dan jumlah keseluruhan saya ialah $ 26, tetapi jika anda pelanggan pertama kali, harga akan turun semasa pembayaran. Kemudian klik Add to Cart dan kemudian klik pada check out sekarang.
Sekarang, anda boleh mengklik muat naik fail Gerber anda dengan mengklik "Upload Gerber" dan kemudian klik beli.
Di halaman seterusnya, anda boleh memasukkan alamat penghantaran anda dan memeriksa harga akhir yang perlu anda bayar untuk PCB anda. Anda kemudian boleh menyemak pesanan anda dan kemudian klik hantar untuk membuat pembayaran.
Setelah pesanan anda disahkan, anda boleh duduk dan menyampaikan agar PCB anda tiba di depan pintu rumah anda. Saya menerima pesanan saya selepas beberapa hari dan kemudian pembungkusannya kemas seperti gambar di bawah.
Kualiti PCB adalah baik seperti biasa seperti yang anda lihat sendiri dalam gambar di bawah. Bahagian atas dan bahagian bawah papan ditunjukkan di bawah.
Sebaik sahaja anda mendapatkan papan anda, anda boleh meneruskan pemasangan semua komponen. Papan siap saya kelihatan seperti ini di bawah.
Seterusnya, anda boleh memuat naik kod dan menguatkan modul untuk memeriksa cara kerjanya. Kod lengkap untuk projek ini diberikan di bahagian bawah halaman ini. Penjelasan kodnya adalah seperti berikut.
Kod Arduino untuk Beban DC yang Boleh Diselaraskan
Kodnya cukup mudah. Pada mulanya, kami menyertakan fail header SPI dan LCD serta menetapkan voltan logik maksimum, pin pemilihan cip, dll.
#sertakan
Bahagian ini terdiri daripada pengisytiharan bilangan bulat dan pemboleh ubah berkaitan program yang diperlukan. Juga, kami menetapkan pin periferal bersekutu dengan Arduino Nano.
const int slaveSelectPin = 10; // Chip pilih pin int number = 0; kenaikan int = A2; // Kenaikan pin int penurunan = A3; // kurangkan pin int current_sense = A0; // pin akal semasa int voltage_sense = A1; // pin pengesan voltan int state1 = 0; int state2 = 0; int Set = 0; float volt = 0; beban terapung_ arus = 0.0; beban apungan_voltage = 0.0; arus apungan = 0.0; voltan apungan = 0.0; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // Pin LCD
Ini digunakan untuk Penyediaan LCD dan SPI. Juga, arah pin ditetapkan di sini.
batal persediaan () { pinMode (slaveSelectPin, OUTPUT); pinMode (kenaikan, INPUT); pinMode (penurunan, INPUT); pinMode (current_sense, INPUT); pinMode (voltan_sense, INPUT); // memulakan SPI: SPI.begin (); // tetapkan bilangan lajur dan baris LCD : lcd.begin (16, 2); // Cetak mesej ke LCD. lcd.print ("Beban Digital"); lcd.setCursor (0, 1); lcd.print ("Litar Digest"); kelewatan (2000); }
Ia digunakan untuk Menukar nilai DAC.
void convert_DAC (nilai int yang tidak ditandatangani) { / * Ukuran Langkah = 2 ^ n, Oleh itu 12bit 2 ^ 12 = 4096 Untuk rujukan 5V, langkahnya adalah 5/4095 = 0.0012210012210012V atau 1mV (lebih kurang) * / bekas int yang tidak ditandatangani; MSB int yang tidak ditandatangani; int LSB yang tidak ditandatangani; / * Langkah: 1, simpan data 12 bit ke dalam bekas Misalkan data tersebut adalah 4095, dalam binari 1111 1111 1111 * / container = nilai; / * Langkah: 2 Membuat Dummy 8 bit. Oleh itu, dengan membahagi 256, 4 bit atas ditangkap dalam LSB LSB = 0000 1111 * / LSB = bekas / 256; / * Langkah: 3 Menghantar konfigurasi dengan menumbuk data 4 bit. LSB = 0011 0000 ATAU 0000 1111. Hasilnya adalah 0011 1111 * / LSB = (0x30) - LSB; / * Langkah: 4 Kontena masih mempunyai nilai 21bit. Mengeluarkan 8 bit yang lebih rendah. 1111 1111 DAN 1111 1111 1111. Hasilnya ialah 1111 1111 iaitu MSB * / MSB = 0xFF & bekas; / * Langkah: 4 Menghantar data 16 bit dengan membahagikan kepada dua bait. * / digitalWrite (slaveSelectPin, RENDAH); kelewatan (100); SPI.transfer (LSB); SPI.transfer (MSB); kelewatan (100); // naikkan pin SS tinggi untuk menyahpilih cip: digitalWrite (slaveSelectPin, HIGH); }
Bahagian ini digunakan untuk operasi penginderaan semasa.
float read_current (tidak sah) { load_current = 0; untuk (int a = 0; a <rata-rata; a ++) { load_current = load_current + analogRead (current_sense); } load_current = load_current / purata; load_current = (load_current * MAX_VOLT) / 1024; load_current = (load_current / opamp_gain) / load_resistor; kembali beban_current; }
Ini digunakan untuk membaca voltan beban.
float read_voltage (void) { load_voltage = 0; untuk (int a = 0; a <rata-rata; a ++) { load_voltage = load_voltage + analogRead (voltage_sense); } load_voltage = load_voltage / purata; load_voltage = ((load_voltage * MAX_VOLT) /1024.0) * 6; mengembalikan beban_voltage; }
Ini adalah gelung sebenar. Di sini, langkah beralih diukur dan data dihantar ke DAC. Setelah menghantar data, arus arus sebenar dan voltan beban diukur. Kedua-dua nilai ini akhirnya dicetak pada LCD.
gelung void () { state1 = analogRead (kenaikan); jika (nyatakan1> 500) { kelewatan (50); state1 = analogRead (kenaikan); jika (nyatakan1> 500) { volt = volt + 0.02; } } state2 = analogRead (penurunan); jika (nyatakan2> 500) { kelewatan (50); state2 = analogRead (penurunan); if (state2> 500) { if (volt == 0) { volt = 0; } lain { volt = volt-0.02; } } } nombor = volt / 0.0012210012210012; tukar_DAC (nombor); voltan = read_voltage (); semasa = read_current (); lcd.setCursor (0, 0); lcd.print ("Tetapkan Nilai"); lcd.print ("="); Tetapkan = (volt / 2) * 10000; lcd.print (Set); lcd.print ("mA"); lcd.setCursor (0, 1); lcd.print ("I"); lcd.print ("="); lcd.print (semasa); lcd.print ("A"); lcd.print ("V"); lcd.print ("="); lcd.print (voltan); lcd.print ("V"); // lcd.print (load_voltage); //lcd.print("mA "); // kelewatan (1000); //lcd.clear (); }
Menguji Beban DC Laras kami
Litar beban digital disolder dan dihidupkan menggunakan sumber kuasa 12V. Saya menggunakan bateri Lithium 7.4V saya di sisi sumber kuasa dan menyambungkan meter penjepit untuk memeriksa bagaimana ia berfungsi. Seperti yang anda lihat ketika arus set 300mA litar menarik 300mA dari bateri yang juga diukur oleh meter pengapit sebagai 310mA.
Kerja litar yang lengkap boleh didapati dalam video yang dipautkan di bawah. Harap anda memahami projek dan menikmati membina sesuatu yang berguna. Sekiranya anda mempunyai sebarang pertanyaan, tinggalkan di bahagian komen atau gunakan Forum.