Isi kandungan:

Bekalan Kuasa Dikendalikan Bateri Digital: 7 Langkah (dengan Gambar)
Bekalan Kuasa Dikendalikan Bateri Digital: 7 Langkah (dengan Gambar)

Video: Bekalan Kuasa Dikendalikan Bateri Digital: 7 Langkah (dengan Gambar)

Video: Bekalan Kuasa Dikendalikan Bateri Digital: 7 Langkah (dengan Gambar)
Video: JANGAN Mulakan Perniagaan Sebelum TENGOK NI! 2024, November
Anonim
Bekalan Kuasa Bateri Digital
Bekalan Kuasa Bateri Digital
Bekalan Kuasa Bateri Digital
Bekalan Kuasa Bateri Digital
Bekalan Kuasa Bateri Digital
Bekalan Kuasa Bateri Digital
Bekalan Kuasa Bateri Digital
Bekalan Kuasa Bateri Digital

Pernah mahukan bekalan elektrik yang boleh anda gunakan semasa dalam perjalanan, walaupun tanpa stopkontak berdekatan? Dan bukankah lebih keren jika juga tepat, digital, dan terkawal melalui PC?

Dalam instruksional ini saya akan menunjukkan kepada anda bagaimana membuat tepat seperti itu: bekalan kuasa bateri digital yang dikendalikan, yang serasi dengan arduino dan dapat dikendalikan melalui PC melalui USB.

Beberapa saat yang lalu saya membina bekalan kuasa dari ATX PSU lama, dan sementara ia berfungsi dengan baik, saya mahu meningkatkan permainan saya dengan bekalan kuasa digital. Seperti yang telah disebutkan, ia dikuasakan oleh bateri (2 sel lithium tepat), dan dapat memberikan maksimum 20 V pada 1 A; yang banyak untuk kebanyakan projek saya yang memerlukan bekalan kuasa yang tepat.

Saya akan menunjukkan keseluruhan proses reka bentuk, dan semua fail projek boleh didapati di halaman GitHub saya:

Mari kita mulakan!

Langkah 1: Ciri & Kos

Ciri & Kos
Ciri & Kos

ciri-ciri

  • Mod voltan dan arus berterusan
  • Menggunakan pengatur linier kebisingan rendah, didahului oleh preregulator pelacakan untuk meminimumkan pelesapan daya
  • Penggunaan komponen yang boleh dipegang untuk memastikan projek dapat diakses
  • Dikuasakan oleh ATMEGA328P, diprogramkan dengan Arduino IDE
  • Komunikasi PC melalui aplikasi Java melalui USB mikro
  • Dikuasakan oleh 2 sel Lithium Ion 18650 yang dilindungi
  • Palam pisang jarak 18 mm untuk keserasian dengan penyesuai BNC

Spesifikasi

  • 0 - 1A, langkah 1 mA (10 bit DAC)
  • 0 - 20V, langkah 20 mV (10 bit DAC) (operasi 0V benar)
  • Pengukuran voltan: Resolusi 20 mV (10 bit ADC)
  • Pengukuran semasa:

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

Kos

Pembekalan kuasa yang lengkap berharga saya sekitar $ 135, dengan semua komponen sekali sahaja. Bateri adalah bahagian yang paling mahal ($ 30 untuk 2 sel), kerana ia dilindungi 18650 sel lithium. Adalah mungkin untuk menurunkan kos dengan ketara jika tidak memerlukan operasi bateri. Dengan menghilangkan bateri dan litar pengecasan, harganya turun menjadi sekitar $ 100. Walaupun ini kelihatan mahal, bekalan kuasa dengan prestasi dan ciri yang jauh lebih rendah selalunya lebih mahal daripada ini.

Sekiranya anda tidak keberatan memesan komponen anda dari ebay atau aliexpress, harga dengan bateri akan turun menjadi $ 100, dan $ 70 tanpa. Memerlukan bahagian yang lebih lama untuk masuk, tetapi ia adalah pilihan yang sesuai.

Langkah 2: Skematik & Teori Operasi

Skematik & Teori Operasi
Skematik & Teori Operasi

Untuk memahami operasi litar, kita perlu melihat skema. Saya membahagikannya kepada blok berfungsi, supaya lebih mudah difahami; Oleh itu, saya juga akan menerangkan operasi langkah demi langkah. Bahagian ini cukup mendalam dan memerlukan pengetahuan elektronik yang baik. Sekiranya anda hanya ingin mengetahui cara membina litar, anda boleh melangkah ke langkah seterusnya.

Blok utama

Operasi ini dibuat berdasarkan cip LT3080: ini adalah pengatur voltan linier, yang dapat menurunkan voltan, berdasarkan isyarat kawalan. Isyarat kawalan ini akan dihasilkan oleh pengawal mikro; bagaimana ini dilakukan, akan dijelaskan secara terperinci kemudian.

Tetapan voltan

Litar di sekitar LT3080 menghasilkan isyarat kawalan yang sesuai. Pertama, kita akan melihat bagaimana voltan ditetapkan. Pengaturan voltan dari mikrokontroler adalah isyarat PWM (PWM_Vset), yang disaring oleh penapis lowpass (C9 & R26). Ini menghasilkan voltan analog - antara 0 dan 5 V - sebanding dengan voltan keluaran yang dikehendaki. Oleh kerana julat keluaran kami adalah 0 - 20 V, kami harus memperkuat isyarat ini dengan faktor 4. Ini dilakukan oleh konfigurasi opamp U3C yang tidak terbalik. Keuntungan pada pin set ditentukan oleh R23 // R24 // R25 dan R34. Perintang ini bertoleransi 0.1%, untuk mengurangkan ralat. R39 dan R36 tidak penting di sini, kerana mereka adalah sebahagian daripada gelung maklum balas.

Tetapan semasa

Pin set ini juga dapat digunakan untuk pengaturan kedua: mode saat ini. Kami ingin mengukur undian semasa, dan mematikan output apabila ini melebihi arus yang diinginkan. Oleh itu, kita mulakan sekali lagi dengan isyarat PWM (PWM_Iset), yang dihasilkan oleh mikrokontroler, yang kini ditapis rendah dan dilemahkan untuk pergi dari julat 0 - 5 V ke julat 0 - 2 V. Voltan ini kini dibandingkan dengan penurunan voltan merintangi perintang rasa semasa (ADC_Iout, lihat di bawah) oleh konfigurasi pembanding opamp U3D. Sekiranya arus terlalu tinggi, ini akan menyalakan led, dan juga menarik garis set LT3080 ke tanah (melalui Q2), sehingga mematikan output. Pengukuran arus, dan penjanaan isyarat ADC_Iout dilakukan seperti berikut. Arus keluaran mengalir melalui perintang R7 - R16. Jumlah keseluruhan 1 ohm; alasan untuk tidak menggunakan 1R di tempat pertama adalah dua kali ganda: 1 perintang perlu mempunyai penarafan daya yang lebih tinggi (ia perlu menghapuskan sekurang-kurangnya 1 W), dan dengan menggunakan 10 perintang 1% secara selari, kita mendapat ketepatan yang lebih tinggi daripada dengan perintang 1% tunggal. Video yang bagus tentang mengapa ini berfungsi boleh didapati di sini: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Semasa arus mengalir melalui perintang ini, ia akan membuat penurunan voltan, yang dapat kita ukur, dan ia adalah diletakkan sebelum LT3080, kerana penurunan voltan di atasnya tidak boleh mempengaruhi voltan keluaran. Penurunan voltan diukur dengan penguat pembezaan (U3B) dengan keuntungan 2. Ini menghasilkan julat voltan 0 - 2 V (lebih banyak kemudian), oleh itu pembahagi voltan pada isyarat PWM arus. Penyangga (U3A) ada untuk memastikan bahawa arus yang mengalir ke perintang R21, R32 dan R33 tidak melalui perintang rasa semasa, yang akan mempengaruhi pembacaannya. Perhatikan juga bahawa ini harus menjadi rel-to-rail opamp, kerana voltan input pada input positif sama dengan voltan bekalan. Penguat bukan pembalik hanya untuk pengukuran kursus walaupun, untuk pengukuran yang sangat tepat, kami mempunyai cip INA219. Cip ini membolehkan kita mengukur arus yang sangat kecil, dan ditangani melalui I2C.

Perkara tambahan

Pada keluaran LT3080, kami mempunyai lebih banyak barang. Pertama sekali, terdapat sink semasa (LM334). Ini menarik arus tetap 677 uA (ditetapkan oleh perintang R41), untuk menstabilkan LT3080. Walau bagaimanapun, ia tidak disambungkan ke tanah, tetapi ke VEE, voltan negatif. Ini diperlukan untuk membolehkan LT3080 beroperasi hingga 0 V. Apabila disambungkan ke tanah, voltan terendah adalah sekitar 0.7 V. Ini nampaknya cukup rendah, tetapi perlu diingat bahawa ini menghalang kita daripada mematikan bekalan kuasa sepenuhnya. Diod zener D3 digunakan untuk menjepit voltan keluaran jika berada di atas 22 V, dan pembahagi perintang menurunkan julat voltan keluaran dari 0 - 20 V hingga 0 - 2 V (ADC_Vout). Malangnya, litar ini berada pada output dari LT3080, yang bermaksud arus mereka akan menyumbang kepada arus keluaran yang ingin kita ukur. Nasib baik, arus ini berterusan jika voltan tetap; jadi kita dapat menentukur arus semasa beban terputus terlebih dahulu.

Pam cas

Voltan negatif yang kami sebutkan sebelumnya dihasilkan oleh litar kecil yang ingin tahu: pam pengecas. Untuk pengoperasiannya, saya akan merujuk di sini: https://www.youtube.com/embed/1WAhTdWErrU&t=1s Ia diberi makan oleh 50% PWM mikrokontroler (PWM)

Penukar Boost

Sekarang mari kita lihat voltan input blok utama kami: Vboost. Kami melihat bahawa ia adalah 8 - 24V, tetapi tunggu, 2 sel litium secara bersiri memberikan maksimum 8.4 V? Memang, dan itulah sebabnya kita perlu meningkatkan voltan, dengan konverter rangsangan yang disebut. Kami sentiasa dapat meningkatkan voltan hingga 24 V, tidak kira apa output yang kami mahukan; namun, ini akan membuang banyak tenaga di LT3080 dan keadaan akan menjadi panas! Oleh itu, daripada melakukan itu, kita akan meningkatkan voltan sedikit lebih tinggi daripada voltan keluaran. Lebih kurang 2.5 V lebih tinggi adalah wajar, untuk menjelaskan penurunan voltan pada perintang pancaran arus dan voltan putus LT3080. Voltan ditetapkan oleh perintang pada isyarat output penukar rangsangan. Untuk menukar voltan ini dengan cepat, kami menggunakan potensiometer digital, MCP41010, yang dikendalikan melalui SPI.

Mengecas Bateri

Ini membawa kita ke voltan input sebenar: bateri! Oleh kerana kita menggunakan sel yang dilindungi, kita hanya perlu memasukkannya ke dalam siri dan kita sudah selesai! Penting untuk menggunakan sel yang dilindungi di sini, untuk mengelakkan arus berlebihan atau berlebihan, dan dengan itu merosakkan sel. Sekali lagi, kami menggunakan pembahagi voltan untuk mengukur voltan bateri, dan menjatuhkannya ke julat yang boleh digunakan. Sekarang ke bahagian yang menarik: litar pengecasan. Kami menggunakan cip BQ2057WSN untuk tujuan ini: dalam kombinasi dengan TIP32CG, pada dasarnya ia membentuk bekalan kuasa linear itu sendiri. Cip ini mengecas sel melalui lintasan CV CC yang sesuai. Oleh kerana bateri saya tidak mempunyai probe suhu, input ini harus diikat pada separuh voltan bateri. Ini menyimpulkan bahagian peraturan voltan bekalan kuasa.

Pengatur 5V

Voltan bekalan 5 V arduino dibuat dengan pengatur voltan sederhana ini. Ini bukan output 5 V yang paling tepat, tetapi ini akan diselesaikan di bawah.

Rujukan voltan 2.048 V

Cip kecil ini memberikan rujukan voltan 2.048 V yang sangat tepat. Ini digunakan sebagai rujukan untuk isyarat analog ADC_Vout, ADC_Iout, ADC_Vbatt. Itulah sebabnya kami memerlukan pembahagi voltan untuk menurunkan isyarat ini kepada 2 V. Mikrokontroler Otak projek ini adalah ATMEGA328P, ini adalah cip yang sama yang digunakan di Arduino Uno. Kami sudah melalui kebanyakan isyarat kawalan, namun ada beberapa penambahan yang menarik. Pengekod putar disambungkan ke 2 pin gangguan luaran arduino sahaja: PD2 dan PD3. Ini diperlukan untuk pelaksanaan perisian yang boleh dipercayai. Suis di bawahnya menggunakan perintang penarik dalaman. Kemudian ada pembahagi voltan pelik ini pada garis pilih cip potensiometer (Pot). Pembahagi voltan pada output, apa gunanya; anda mungkin berkata. Seperti disebutkan sebelumnya, bekalan 5 V tidak terlalu tepat. Oleh itu, adalah baik untuk mengukur ini dengan tepat, dan menyesuaikan kitaran tugas isyarat PWM dengan sewajarnya. Tetapi kerana saya tidak mempunyai input percuma lagi, saya harus membuat tugas tarik pin. Ketika powerupply boot, pin ini pertama kali ditetapkan sebagai input: ia mengukur rel bekalan dan menentukurnya sendiri. Seterusnya, ia ditetapkan sebagai output dan dapat memacu garis pilih cip.

Pemandu Paparan

Untuk paparan, saya mahukan skrin lcd hitachi yang biasa - dan murah -. Mereka dipacu oleh 6 pin, tetapi kerana saya tidak mempunyai pin yang tersisa, saya memerlukan penyelesaian lain. Daftar peralihan untuk menyelamatkan! 74HC595 membolehkan saya menggunakan garis SPI untuk mengawal paparan, sehingga hanya memerlukan 1 baris pilih cip tambahan.

FTDI

Bahagian terakhir dari bekalan kuasa ini adalah hubungan dengan dunia luar yang kejam. Untuk ini, kita perlu menukar isyarat bersiri menjadi isyarat USB. Ini dilakukan oleh cip FTDI, yang disambungkan ke port USB mikro untuk sambungan yang mudah.

Dan hanya itu sahaja!

Langkah 3: PCB & Elektronik

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

Setelah kita memahami bagaimana rangkaian berfungsi, kita boleh mula membuatnya! Anda hanya boleh memesan PCB secara dalam talian dari pengeluar kegemaran anda (harga saya sekitar $ 10), fail gerber boleh didapati di GitHub saya, bersama dengan bil bahan. Pemasangan PCB pada dasarnya adalah soal pematerian komponen di tempatnya mengikut silkscreen dan bil bahan.

Langkah pertama adalah pematerian komponen SMD. Sebilangan besar daripadanya mudah dilakukan dengan tangan, kecuali dari cip FTDI dan penyambung USB mikro. Oleh itu, anda boleh mengelakkan pematerian 2 komponen itu sendiri, dan menggunakan papan pemecah FTDI sebagai gantinya. Saya menyediakan pin header di mana ini boleh disolder.

Apabila kerja SMD selesai, anda boleh beralih ke semua komponen lubang. Ini sangat mudah. Untuk cip tersebut, anda mungkin mahu menggunakan soket daripada menyoldernya terus ke papan. Sebaiknya gunakan ATMEGA328P dengan bootloader Arduino, jika tidak, anda perlu memuat naiknya menggunakan tajuk ICSP (ditunjukkan di sini).

Satu-satunya bahagian yang memerlukan perhatian lebih banyak adalah layar lcd, kerana ia perlu dipasang pada sudut. Selipkan beberapa kepala bersudut lelaki ke atasnya, dengan kepingan plastik menghadap ke bawah skrin. Ini akan membolehkan penempatan skrin pada pcb dengan baik. Selepas itu, ia boleh disolder di tempat seperti komponen lubang yang lain.

Yang tinggal hanyalah menambahkan 2 wayar, yang akan bersambung ke terminal pisang di piring depan.

Langkah 4: Kes & Perhimpunan

Kes & Perhimpunan
Kes & Perhimpunan
Kes & Perhimpunan
Kes & Perhimpunan
Kes & Perhimpunan
Kes & Perhimpunan

Dengan pcb yang dibuat, kita dapat meneruskan kes ini. Saya secara khusus merancang PCB di sekitar casing hammond ini, jadi tidak digalakkan menggunakan kes lain. Walau bagaimanapun, anda selalu dapat mencetak casing 3D dengan dimensi yang sama.

Langkah pertama adalah menyiapkan panel akhir. Kami perlu menggerudi beberapa lubang untuk skru, suis, dan lain-lain. Saya melakukan ini dengan tangan, tetapi jika anda mempunyai akses ke CNC yang akan menjadi pilihan yang lebih tepat. Saya membuat lubang mengikut skema dan mengetuk lubang skru.

Sebaiknya tambahkan beberapa alas sutera sekarang, dan letakkan di tempatnya dengan setetes lem super kecil. Ini akan mengasingkan LT3080 dan TIP32 dari plat belakang, sementara masih membenarkan pemindahan haba. Jangan lupa! Semasa memasukkan kerepek ke panel belakang, gunakan mesin basuh mika untuk memastikan pengasingan!

Kita sekarang boleh fokus pada panel depan, yang hanya meluncur di tempatnya. Kita sekarang boleh menambah bicu pisau dan tombol untuk pengekod putar.

Dengan kedua panel di tempatnya sekarang kita dapat memasukkan unit ke dalam casing, menambah bateri dan menutup semuanya. Pastikan anda menggunakan bateri terlindung, anda tidak mahu sel meletup!

Pada ketika ini perkakasan sudah selesai, sekarang yang tinggal hanyalah membuang masa dengan perisian!

Langkah 5: Kod Arduino

Kod Arduino
Kod Arduino

Otak projek ini adalah ATMEGA328P, yang akan kami atur dengan Arduino IDE. Pada bahagian ini, saya akan menjalani operasi asas kod, perinciannya boleh didapati sebagai komen di dalam kod tersebut.

Kod pada dasarnya melengkung melalui langkah-langkah berikut:

  1. Baca data bersiri dari java
  2. Butang undian
  3. Ukur voltan
  4. Ukur arus
  5. Ukur arus dengan INA219
  6. Hantar data bersiri ke java
  7. Konfigurasikan boostconvertor
  8. Dapatkan pengecasan bateri
  9. Kemas kini skrin

Pengekod putar dikendalikan oleh rutin perkhidmatan gangguan agar mereka responsif mungkin.

Kodnya kini boleh dimuat ke papan melalui port USB mikro (jika cip mempunyai bootloader). Papan: Arduino pro atau pro mini Programmer: AVR ISP / AVRISP MKII

Sekarang kita dapat melihat interaksi antara Arduino dan PC.

Langkah 6: Kod Java

Kod Java
Kod Java

Untuk log data dan mengawal bekalan kuasa melalui PC, saya membuat aplikasi java. Ini membolehkan kita mengawal papan dengan mudah melalui GUI. Seperti dengan kod Arduino, saya tidak akan membahas semua butiran, tetapi memberikan gambaran keseluruhan.

Kita mulakan dengan membuat tetingkap dengan butang, medan teks dan lain-lain; perkara asas GUI.

Sekarang datang bahagian yang menyeronokkan: menambah port USB, yang mana saya menggunakan perpustakaan jSerialComm. Setelah port dipilih, java akan mendengar data yang masuk. Kami juga boleh menghantar data ke peranti.

Selanjutnya, semua data masuk disimpan ke fail csv, untuk rawatan data kemudian.

Semasa menjalankan fail.jar, pertama-tama kita harus memilih port yang betul dari menu dropdown. Setelah menyambungkan data akan mula masuk, dan kami dapat mengirim tetapan kami ke bekalan kuasa.

Walaupun program ini cukup asas, sangat berguna untuk mengendalikannya melalui PC dan mencatat datanya.

Langkah 7: Berjaya

Berjaya!
Berjaya!
Berjaya!
Berjaya!
Berjaya!
Berjaya!

Selepas semua kerja ini, kita kini mempunyai bekalan kuasa berfungsi sepenuhnya!

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

  • Projek ini berdasarkan projek uSupply EEVBLOG dan skema Rev C. Oleh itu, terima kasih khas kepada David L. Jones kerana melepaskan skema di bawah lesen sumber terbuka dan berkongsi semua pengetahuannya.
  • Terima kasih banyak kepada Johan Pattyn kerana menghasilkan prototaip projek ini.
  • Juga Cedric Busschots dan Hans Ingelberts layak mendapat pujian atas bantuan menyelesaikan masalah.

Kita sekarang dapat menikmati bekalan elektrik buatan sendiri, yang akan sangat berguna semasa mengerjakan projek hebat lain! Dan yang paling penting: kami telah mempelajari banyak perkara di sepanjang perjalanan.

Sekiranya anda menyukai projek ini, sila pilih saya dalam peraduan bekalan kuasa, saya sangat menghargainya! Https: //www.instructables.com/contest/powersupply/

Peraduan Bekalan Kuasa
Peraduan Bekalan Kuasa
Peraduan Bekalan Kuasa
Peraduan Bekalan Kuasa

Hadiah Kedua dalam Peraduan Bekalan Kuasa

Disyorkan: