Daftar Isi:

Baterai Digital Dioperasikan Powersupply: 7 Langkah (dengan Gambar)
Baterai Digital Dioperasikan Powersupply: 7 Langkah (dengan Gambar)

Video: Baterai Digital Dioperasikan Powersupply: 7 Langkah (dengan Gambar)

Video: Baterai Digital Dioperasikan Powersupply: 7 Langkah (dengan Gambar)
Video: Penjelasan Jenis KABEL PSU dan Kegunaanya - IT Problem Solved 2024, November
Anonim
Catu Daya yang Dioperasikan dengan Baterai Digital
Catu Daya yang Dioperasikan dengan Baterai Digital
Catu Daya yang Dioperasikan dengan Baterai Digital
Catu Daya yang Dioperasikan dengan Baterai Digital
Catu Daya yang Dioperasikan dengan Baterai Digital
Catu Daya yang Dioperasikan dengan Baterai Digital
Catu Daya yang Dioperasikan dengan Baterai Digital
Catu Daya yang Dioperasikan dengan Baterai Digital

Pernah menginginkan catu daya yang dapat Anda gunakan saat bepergian, bahkan tanpa stopkontak di dekat Anda? Dan bukankah lebih keren jika juga sangat presisi, digital, dan dapat dikontrol melalui PC?

Dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana membangunnya dengan tepat: catu daya yang dioperasikan dengan baterai digital, yang kompatibel dengan arduino dan dapat dikontrol melalui PC melalui USB.

Beberapa waktu yang lalu saya membuat powersupply dari PSU ATX lama, dan meskipun bekerja dengan baik, saya ingin meningkatkan permainan saya dengan powersupply digital. Seperti yang telah dikatakan, ini ditenagai oleh baterai (2 sel lithium tepatnya), dan dapat menghasilkan maksimum 20 V pada 1 A; yang banyak untuk sebagian besar proyek saya yang membutuhkan catu daya yang tepat.

Saya akan menunjukkan seluruh proses desain, dan semua file proyek dapat ditemukan di halaman GitHub saya:

Mari kita mulai!

Langkah 1: Fitur & Biaya

Fitur & Biaya
Fitur & Biaya

Fitur

  • Tegangan konstan dan mode arus konstan
  • Menggunakan regulator linier kebisingan rendah, didahului oleh preregulator pelacakan untuk meminimalkan disipasi daya
  • Penggunaan komponen yang dapat disolder agar proyek tetap dapat diakses
  • Didukung oleh ATMEGA328P, diprogram dengan Arduino IDE
  • Komunikasi PC melalui aplikasi Java melalui micro USB
  • Didukung oleh 2 sel Lithium Ion 18650 yang dilindungi
  • Colokan pisang dengan jarak 18 mm untuk kompatibilitas dengan adaptor BNC

spesifikasi

  • 0 - 1A, langkah 1 mA (10 bit DAC)
  • 0 - 20V, langkah 20 mV (10 bit DAC) (operasi 0V sebenarnya)
  • Pengukuran tegangan: resolusi 20 mV (10 bit ADC)
  • Pengukuran saat ini:

    • <40mA: resolusi 10uA (ina219)
    • <80mA: resolusi 20uA (ina219)
    • <160mA: resolusi 40uA (ina219)
    • <320mA: resolusi 80uA (ina219)
    • > 320mA: resolusi 1mA (10 bit ADC)

Biaya

Powersupply lengkap saya menghabiskan biaya sekitar $135, dengan semua komponen satu kali. Baterai adalah bagian yang paling mahal ($30 untuk 2 sel), karena mereka dilindungi 18650 sel lithium. Anda dapat menurunkan biaya secara signifikan jika tidak diperlukan pengoperasian baterai. Dengan menghilangkan baterai dan sirkuit pengisian, harganya turun menjadi sekitar $100. Meskipun ini mungkin tampak mahal, powersupply dengan kinerja dan fitur yang jauh lebih sedikit sering kali lebih mahal dari ini.

Jika Anda tidak keberatan memesan komponen dari ebay atau aliexpress, harga dengan baterai akan turun menjadi $100, dan $70 tanpa baterai. Diperlukan waktu lebih lama untuk mendapatkan suku cadang, tetapi ini adalah opsi yang layak.

Langkah 2: Skema & Teori Operasi

Skema & Teori Operasi
Skema & Teori Operasi

Untuk memahami operasi rangkaian, kita harus melihat skema. Saya membaginya menjadi blok-blok fungsional, sehingga lebih mudah dipahami; Dengan demikian saya juga akan menjelaskan operasi langkah demi langkah. Bagian ini cukup mendalam dan membutuhkan pengetahuan elektronik yang baik. Jika Anda hanya ingin tahu cara membangun sirkuit, Anda dapat melompat ke langkah berikutnya.

Blok utama

Operasi ini didasarkan pada chip LT3080: ini adalah regulator tegangan linier, yang dapat menurunkan tegangan, berdasarkan sinyal kontrol. Sinyal kontrol ini akan dihasilkan oleh mikrokontroler; bagaimana ini dilakukan, akan dijelaskan secara rinci nanti.

Pengaturan tegangan

Sirkuit di sekitar LT3080 menghasilkan sinyal kontrol yang sesuai. Pertama, kita akan melihat bagaimana tegangan diatur. Setting tegangan dari mikrokontroler adalah sinyal PWM (PWM_Vset), yang difilter oleh lowpass filter (C9 & R26). Ini menghasilkan tegangan analog - antara 0 dan 5 V - sebanding dengan tegangan output yang diinginkan. Karena jangkauan output kami adalah 0 - 20 V, kami harus memperkuat sinyal ini dengan faktor 4. Hal ini dilakukan oleh konfigurasi opamp non-pembalik U3C. Gain ke pin set ditentukan oleh R23//R24//R25 dan R34. Resistor ini memiliki toleransi 0,1%, untuk meminimalkan kesalahan. R39 dan R36 tidak masalah di sini, karena mereka adalah bagian dari loop umpan balik.

Pengaturan saat ini

Pin set ini juga dapat digunakan untuk pengaturan kedua: mode saat ini. Kami ingin mengukur penarikan saat ini, dan mematikan output ketika ini melebihi arus yang diinginkan. Oleh karena itu, kita mulai lagi dengan sinyal PWM (PWM_Iset), yang dihasilkan oleh mikrokontroler, yang sekarang difilter lowpass dan dilemahkan untuk beralih dari rentang 0 - 5 V ke rentang 0 - 2 V. Tegangan ini sekarang dibandingkan dengan penurunan tegangan pada resistor penginderaan arus (ADC_Iout, lihat di bawah) oleh konfigurasi komparator opamp U3D. Jika arus terlalu tinggi, ini akan menyalakan led, dan juga menarik garis set LT3080 ke ground (melalui Q2), sehingga mematikan output. Pengukuran arus, dan pembangkitan sinyal ADC_Iout dilakukan sebagai berikut. Arus keluaran mengalir melalui resistor R7 - R16. Ini total 1 ohm; alasan untuk tidak menggunakan 1R di tempat pertama ada dua: 1 resistor harus memiliki peringkat daya yang lebih tinggi (perlu menghilangkan setidaknya 1 W), dan dengan menggunakan 10 resistor 1% secara paralel, kami mendapatkan presisi yang lebih tinggi daripada dengan resistor 1% tunggal. Video bagus tentang mengapa ini bekerja dapat ditemukan di sini: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Ketika arus mengalir melalui resistor ini, itu menciptakan penurunan tegangan, yang dapat kita ukur, dan itu adalah ditempatkan sebelum LT3080, karena penurunan tegangan yang melewatinya seharusnya tidak mempengaruhi tegangan keluaran. Penurunan tegangan diukur dengan penguat diferensial (U3B) dengan penguatan 2. Ini menghasilkan kisaran tegangan 0 - 2 V (lebih lanjut tentang itu nanti), maka pembagi tegangan pada sinyal PWM arus. Buffer (U3A) ada untuk memastikan bahwa arus yang mengalir ke resistor R21, R32 dan R33 tidak melalui resistor indera arus, yang akan mempengaruhi pembacaannya. Perhatikan juga bahwa ini harus menjadi opamp rel-ke-rel, karena tegangan input pada input positif sama dengan tegangan suplai. Penguat non pembalik hanya untuk pengukuran saja, untuk pengukuran yang sangat presisi, kami memiliki chip INA219. Chip ini memungkinkan kita untuk mengukur arus yang sangat kecil, dan dialamatkan melalui I2C.

Hal-hal tambahan

Pada keluaran LT3080, kami memiliki beberapa barang lagi. Pertama-tama, ada wastafel saat ini (LM334). Ini menarik arus konstan 677 uA (diatur oleh resistor R41), untuk menstabilkan LT3080. Namun tidak terhubung ke ground, tetapi ke VEE, tegangan negatif. Ini diperlukan untuk memungkinkan LT3080 beroperasi hingga 0 V. Saat terhubung ke ground, tegangan terendah adalah sekitar 0,7 V. Ini tampaknya cukup rendah, tetapi perlu diingat bahwa ini mencegah kita mematikan catu daya sepenuhnya. Dioda zener D3 digunakan untuk menjepit tegangan output jika melebihi 22 V, dan pembagi resistor menurunkan rentang tegangan output dari 0 - 20 V menjadi 0 - 2 V (ADC_Vout). Sayangnya, sirkuit ini berada pada output dari LT3080, yang berarti arusnya akan berkontribusi pada arus keluaran yang ingin kita ukur. Untungnya, arus ini konstan jika tegangan tetap konstan; sehingga kita dapat mengkalibrasi arus saat beban diputus terlebih dahulu.

Pompa pengisian daya

Tegangan negatif yang kami sebutkan sebelumnya dihasilkan oleh sirkuit kecil yang aneh: pompa muatan. Untuk pengoperasiannya, saya akan merujuk ke sini: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Ini diumpankan oleh 50% PWM dari mikrokontroler (PWM)

Tingkatkan Konverter

Sekarang mari kita lihat tegangan input dari blok utama kita: Vboost. Kami melihat bahwa itu adalah 8 - 24V, tetapi tunggu, 2 sel lithium secara seri memberikan maksimum 8,4 V? Memang, dan itulah mengapa kita perlu meningkatkan tegangan, dengan apa yang disebut konverter boost. Kami selalu dapat meningkatkan tegangan hingga 24 V, apa pun keluaran yang kami inginkan; namun, ini akan membuang banyak daya di LT3080 dan segalanya akan menjadi panas! Jadi alih-alih melakukan itu, kami akan meningkatkan tegangan menjadi sedikit lebih tinggi daripada tegangan keluaran. Sekitar 2,5 V lebih tinggi sesuai, untuk memperhitungkan penurunan tegangan pada resistor indera arus dan tegangan putus-putus dari LT3080. Tegangan diatur oleh resistor pada sinyal output dari konverter boost. Untuk mengubah tegangan ini dengan cepat, kami menggunakan potensiometer digital, MCP41010, yang dikendalikan melalui SPI.

Pengisian Baterai

Ini membawa kita ke tegangan input yang sebenarnya: baterai! Karena kami menggunakan sel yang dilindungi, kami hanya perlu menempatkannya secara seri dan selesai! Penting untuk menggunakan sel yang dilindungi di sini, untuk menghindari arus berlebih atau pelepasan muatan berlebih, dan dengan demikian merusak sel. Sekali lagi, kami menggunakan pembagi tegangan untuk mengukur tegangan baterai, dan menurunkannya ke kisaran yang dapat digunakan. Sekarang ke bagian yang menarik: sirkuit pengisian. Kami menggunakan chip BQ2057WSN untuk tujuan ini: dalam kombinasi dengan TIP32CG, pada dasarnya membentuk catu daya linier itu sendiri. Chip ini mengisi sel melalui lintasan CV CC yang sesuai. Karena baterai saya tidak memiliki pemeriksaan suhu, input ini harus diikat ke setengah tegangan baterai. Ini menyimpulkan bagian pengaturan tegangan dari catu daya.

pengatur 5V

Tegangan suplai 5 V dari arduino dibuat dengan regulator tegangan sederhana ini. Ini bukan output 5 V yang paling tepat, tetapi ini akan diselesaikan di bawah ini.

Referensi tegangan 2.048 V

Chip kecil ini memberikan referensi tegangan 2.048 V yang sangat akurat. Ini digunakan sebagai referensi untuk sinyal analog ADC_Vout, ADC_Iout, ADC_Vbatt. Itu sebabnya kami membutuhkan pembagi tegangan untuk menurunkan sinyal ini ke 2 V. Mikrokontroler Otak dari proyek ini adalah ATMEGA328P, ini adalah chip yang sama yang digunakan di Arduino Uno. Kami sudah membahas sebagian besar sinyal kontrol, tetapi ada beberapa tambahan yang menarik. Rotary encoder terhubung ke 2 pin interupsi eksternal arduino: PD2 dan PD3. Ini diperlukan untuk implementasi perangkat lunak yang andal. Sakelar di bawahnya menggunakan resistor pullup internal. Lalu ada pembagi tegangan aneh ini pada garis pilih chip dari potensiometer (Pot). Pembagi tegangan pada output, untuk apa itu; Anda mungkin mengatakan. Seperti disebutkan sebelumnya, suplai 5 V tidak terlalu akurat. Dengan demikian akan baik untuk mengukur ini secara akurat, dan menyesuaikan siklus kerja sinyal PWM yang sesuai. Tapi karena saya tidak punya input lagi, saya harus membuat pin pull double duty. Saat powersupply boot, pin ini pertama kali diset sebagai input: pin ini mengukur rel suplai dan mengkalibrasi dirinya sendiri. Selanjutnya, itu diatur sebagai output dan dapat menggerakkan jalur pemilihan chip.

Tampilan Driver

Untuk tampilan, saya menginginkan layar lcd hitachi yang tersedia secara umum - dan murah. Mereka digerakkan oleh 6 pin, tetapi karena saya tidak memiliki pin lagi, saya membutuhkan solusi lain. Sebuah register geser untuk menyelamatkan! 74HC595 memungkinkan saya menggunakan jalur SPI untuk mengontrol tampilan, sehingga hanya membutuhkan 1 jalur pemilihan chip tambahan.

FTDI

Bagian terakhir dari power supply ini adalah koneksi dengan dunia luar yang kejam. Untuk ini, kita perlu mengubah sinyal serial menjadi sinyal USB. Ini dilakukan oleh chip FTDI, yang terhubung ke port micro USB untuk koneksi yang mudah.

Dan hanya itu yang ada!

Langkah 3: PCB & Elektronik

PCB & Elektronik
PCB & Elektronik
PCB & Elektronik
PCB & Elektronik
PCB & Elektronik
PCB & Elektronik
PCB & Elektronik
PCB & Elektronik

Sekarang setelah kita memahami cara kerja rangkaian, kita dapat mulai membangunnya! Anda cukup memesan PCB secara online dari pabrikan favorit Anda (biaya tambang sekitar $10), file gerber dapat ditemukan di GitHub saya, bersama dengan bill of material. Merakit PCB pada dasarnya adalah masalah menyolder komponen pada tempatnya sesuai dengan sablon dan tagihan bahan.

Langkah pertama adalah menyolder komponen SMD. Kebanyakan dari mereka mudah dilakukan dengan tangan, kecuali dari chip FTDI dan konektor micro USB. Oleh karena itu, Anda dapat menghindari menyolder 2 komponen tersebut sendiri, dan menggunakan papan breakout FTDI sebagai gantinya. Saya menyediakan pin header tempat ini bisa disolder.

Ketika pekerjaan SMD selesai, Anda dapat melanjutkan ke semua komponen lubang. Ini sangat mudah. Untuk chip, Anda mungkin ingin menggunakan soket daripada menyoldernya langsung ke papan. Lebih baik menggunakan ATMEGA328P dengan bootloader Arduino, jika tidak, Anda harus mengunggahnya menggunakan header ICSP (ditampilkan di sini).

Satu-satunya bagian yang perlu sedikit lebih diperhatikan adalah layar lcd, karena perlu dipasang miring. Solder beberapa header bersudut pria ke atasnya, dengan potongan plastik menghadap ke bagian bawah layar. Ini akan memungkinkan penempatan layar yang baik pada PCB. Setelah itu, dapat disolder di tempat seperti komponen lubang lainnya.

Satu-satunya yang tersisa untuk dilakukan adalah menambahkan 2 kabel, yang akan terhubung ke terminal pisang di pelat depan.

Langkah 4: Kasus & Perakitan

Kasus & Perakitan
Kasus & Perakitan
Kasus & Perakitan
Kasus & Perakitan
Kasus & Perakitan
Kasus & Perakitan

Dengan PCB yang dibuat, kita dapat beralih ke kasing. Saya secara khusus mendesain PCB di sekitar casing hammond ini, jadi tidak disarankan menggunakan casing lain. Namun, Anda selalu dapat mencetak kasing 3D dengan dimensi yang sama.

Langkah pertama adalah menyiapkan panel akhir. Kita perlu mengebor beberapa lubang untuk sekrup, sakelar, dll. Saya melakukannya dengan tangan, tetapi jika Anda memiliki akses ke CNC, itu akan menjadi pilihan yang lebih akurat. Saya membuat lubang sesuai dengan skema dan mengetuk lubang sekrup.

Sebaiknya tambahkan beberapa bantalan sutra sekarang, dan tahan di tempatnya dengan setetes kecil lem super. Ini akan mengisolasi LT3080 dan TIP32 dari pelat belakang, sambil tetap memungkinkan perpindahan panas. Jangan lupakan mereka! Saat memasang chip ke panel belakang, gunakan pencuci mika untuk memastikan isolasi!

Kita sekarang dapat fokus pada panel depan, yang hanya meluncur di tempatnya. Sekarang kita dapat menambahkan banana jack dan knob untuk rotary encoder.

Dengan kedua panel terpasang, sekarang kita dapat memasukkan rakitan ke dalam casing, menambahkan baterai, dan menutup semuanya. Pastikan Anda menggunakan baterai yang terlindungi, Anda tidak ingin selnya meledak!

Pada titik ini perangkat keras sudah selesai, sekarang yang tersisa hanyalah meniupkan kehidupan ke dalamnya dengan perangkat lunak!

Langkah 5: Kode Arduino

Kode Arduino
Kode Arduino

Otak dari proyek ini adalah ATMEGA328P, yang akan kami program dengan Arduino IDE. Di bagian ini, saya akan membahas operasi dasar kode, detailnya dapat ditemukan sebagai komentar di dalam kode.

Kode pada dasarnya mengulang langkah-langkah ini:

  1. Baca data serial dari java
  2. Tombol polling
  3. Ukur tegangan
  4. Ukur arus
  5. Ukur arus dengan INA219
  6. Kirim data serial ke java
  7. Konfigurasikan boostconvertor
  8. Dapatkan pengisian daya baterai
  9. Perbarui layar

Rotary encoder ditangani oleh rutin layanan interupsi agar seresponsif mungkin.

Kode sekarang dapat diunggah ke papan melalui port micro USB (jika chip memiliki bootloader). Papan: Arduino pro atau pro mini Programmer: AVR ISP / AVRISP MKII

Sekarang kita dapat melihat interaksi antara Arduino dan PC.

Langkah 6: Kode Java

Kode Jawa
Kode Jawa

Untuk logging data dan mengontrol power supply melalui PC, saya membuat aplikasi java. Ini memungkinkan kita untuk dengan mudah mengontrol papan melalui GUI. Seperti dengan kode Arduino, saya tidak akan membahas semua detail, tetapi memberikan gambaran umum.

Kita mulai dengan membuat jendela dengan tombol, bidang teks, dll; hal-hal dasar GUI.

Sekarang tiba bagian yang menyenangkan: menambahkan port USB, yang saya gunakan perpustakaan jSerialComm. Setelah port dipilih, java akan mendengarkan data yang masuk. Kami juga dapat mengirim data ke perangkat.

Selanjutnya semua data yang masuk disimpan ke dalam file csv, untuk pengolahan data selanjutnya.

Saat menjalankan file.jar, pertama-tama kita harus memilih port yang tepat dari menu dropdown. Setelah menghubungkan data akan mulai masuk, dan kami dapat mengirim pengaturan kami ke powersupply.

Meskipun program ini cukup mendasar, akan sangat berguna untuk mengontrolnya melalui PC dan mencatat datanya.

Langkah 7: Sukses

Kesuksesan!
Kesuksesan!
Kesuksesan!
Kesuksesan!
Kesuksesan!
Kesuksesan!

Setelah semua pekerjaan ini, kami sekarang memiliki catu daya yang berfungsi penuh!

Saya juga harus berterima kasih kepada beberapa orang atas dukungan mereka:

  • Proyek ini didasarkan pada proyek uSupply EEVBLOG dan skema Rev C-nya. Jadi, terima kasih khusus kepada David L. Jones karena telah merilis skemanya di bawah lisensi open source dan berbagi semua pengetahuannya.
  • Terima kasih yang sebesar-besarnya kepada Johan Pattyn karena telah memproduksi prototipe proyek ini.
  • Juga Cedric Busschots dan Hans Ingelberts layak mendapat pujian atas bantuan pemecahan masalah.

Kita sekarang dapat menikmati pasokan listrik buatan kita sendiri, yang akan berguna saat mengerjakan proyek luar biasa lainnya! Dan yang paling penting: kami telah belajar banyak hal selama ini.

Jika Anda menyukai proyek ini, silakan pilih saya dalam kontes powersupply, saya akan sangat menghargainya!https://www.instructables.com/contest/powersupply/

Kontes Catu Daya
Kontes Catu Daya
Kontes Catu Daya
Kontes Catu Daya

Hadiah Kedua dalam Kontes Power Supply

Direkomendasikan: