Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Komponen dan Perlengkapan

Alat dan Mesin yang Diperlukan

Aplikasi dan Layanan Online

Tentang Proyek Ini

Saya punya beberapa panel surya, aku 12 Volt, trafo, dan barang-barang lain yang tersimpan sambil meminta untuk dimanfaatkan. Dengan demikian, lahirnya perangkat ini - solusi PV kecil lengkap dalam satu papan. Mari kita tinjau terlebih dahulu apa yang berfungsi untuk apa:

Perangkat yang saya buat memiliki semua fitur ini, dua fitur terakhir didukung secara independen oleh baterai Li-ion papan. Dengan panel surya (hingga 100 Watt), baterai asam timbal 12 Volt, dan trafo - semua opsi dapat dimanfaatkan.

Versi Proto pada Uno

Versi pertama dikembangkan pada papan Uno dengan hardware minimum dan opsi minimum. Layar Nokia dipasang langsung dan sebuah pelindung MOSFET dikembangkan untuk mendukung pengisian/pengosongan baterai. Tidak ada kontrol menu, tidak ada inverter, tidak ada pengisian PWM dan fitur keren! Hanya pengisian on/off dan menampilkan tegangan baterai dan panel. Melakukan pekerjaan tetapi tidak memiliki daya tarik!

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Versi Lengkap pada Protoboard

Lalu saya mengembangkan yang baru ini dengan fitur-fitur berikut:

Menu berbasis scroll dan pilih yang dikontrol oleh 2 tombol/switch untuk kontrol pengguna, menampilkan opsi dan informasi status pada layar Nokia 5110. Sangat keren! Belakangnya diisolasi dengan Lem Panas untuk perlindungan terhadap objek logam!

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED
Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED
Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED
Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Akses menu pada layar Nokia 5110 dengan tombol pengguna ditunjukkan di sini:

Mari kita pelajari beberapa hal teknis!

Pengontrol charging dapat berupa tipe On/Off, PWM, atau MPPT. On/Off adalah bentuk paling sederhana (versi 1 saya - gambar di atas) dari pengontrol yang tidak membatasi arus pengisian saat tegangan baterai mendekati tegangan penuh.

Sedangkan PWM secara bertahap mengurangi arus pengisian saat baterai penuh. Pengontrol PWM memiliki manfaat berikut:

Namun PWM tidak dapat mendapatkan sebagian besar daya listrik dari panel surya PV, karena ia menarik panel untuk beroperasi dekat tegangan baterai. MPPT adalah solusi untuk masalah ini yang pada dasarnya adalah konverter buck-boost DC-DC yang dapat disesuaikan, dapat mengonversi sebagian besar daya surya dibandingkan pengontrol PWM.

Inverter dapat berupa tipe gelombang persegi, gelombang sinus modifikasi, dan gelombang sinus murni. Inverter gelombang persegi sangat sederhana dalam desain dan cukup baik untuk beban DC kecil seperti lampu AC, lampu CFL, kipas meja, soldering iron, tetapi tidak direkomendasikan untuk motor induktif, peralatan/supplies sensitif karena distorsi harmonik.

Gelombang sinus modifikasi adalah jenis gelombang sinus yang tertunda yang dibuat dari gelombang persegi, lebih baik dari inverter gelombang persegi biasa. Inverter gelombang sinus terbaik untuk semua jenis beban tetapi kompleks dalam desain hardware, algoritma perangkat lunak yang sulit untuk dioperasikan, dan mahal untuk dibuat.

Regulator buck adalah konverter DC-DC step down, di sini saya menggunakan modul buck untuk mengisi baterai Li-ion 4.2 V yang memberi daya pada pengontrol (Arduino + layar), power bank USB independen, lampu LED papan.

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Sekarang power bank USB pada dasarnya adalah konverter DC-DC boost yang dapat mengonversi rentang tegangan di bawah 5 (seperti rentang 3,3 hingga 4,2 volt) dari baterai Li-ion atau LiPo menjadi 5 volt yang merupakan tegangan bus USB yang dapat mengisi perangkat seluler.

Ini juga memiliki konverter buck untuk mengisi baterai tersebut. Dalam proyek saya, modul buck mengambil beberapa daya dari panel untuk mengisi baterai internal (papan).

Cara Kerja Hardware

Sebelum kita masuk ke detail, periksa gambar ini dari semua yang terhubung di sekitar perangkat:

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Sistem memiliki berbagai hardware untuk berbagai tujuan. Tentu saja otaknya adalah mikrokontroler AVR Atmega8A (dapat menggunakan Atmega328P dengan perubahan kecil, dibahas di bawah) yang diprogram dalam Arduino.

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Atmega8A segar dibakar dengan bootloader Arduino Optiboot8, Anda dapat membeli Arduino Mini/Atmega328 yang sudah Bootloaded untuk menghindari ribet.

Pengontrol, layar, lampu LED, dan power bank diberi daya dari baterai Li-ion papan. Dua tombol sentuh momenter untuk mengakses menu pada layar, yang memungkinkan pengguna untuk mengoperasikan berbagai fungsi perangkat. Tombol-tombol di-debounce secara hardware melalui kapasitor halus yang dihubungkan paralel.

Tombol geser memungkinkan untuk menyalakan/mematikan perangkat sesuai kebutuhan.

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Fungsi pengisian surya dilakukan oleh P-MOSFET yang didorong oleh rangkaian pengemudi berbasis transistor 2N2222 yang dikontrol melalui PWM dari mikrokontroler. PWM dikontrol berdasarkan level tegangan baterai eksternal. Arus dari panel surya mengalir melalui P-MOSFET ke baterai asam timbal. Saat baterai penuh, MOSFET dimatikan oleh mikrokontroler. Setelah pengisian dimatikan, tegangan baterai mulai gradually turun, saat mencapai 13,6 volt pengisian dilanjutkan lagi dengan siklus kerja rendah untuk mempertahankan pengisian floating.

Beban DC 12 Volt dikontrol melalui N-MOSFET dengan mengontrol pin Gate-nya dari Mikrokontroler.

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Lampu LED papan juga didorong melalui NMOS. Gate MOSFET ini dikontrol PWM untuk penyesuaian kecerahan LED.

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Blok inverter terdiri dari 2 N-MOSFET yang secara bergantian dinyalakan/matikan untuk mensimulasikan AC. Dengan menambahkan trafo center tapped eksternal, pasokan AC gelombang persegi dapat direalisasikan.

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Gambar berikut menjelaskan aksi inverter:

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Dengan mengizinkan arus mengalir melalui center tap dari gulungan trafo step up dalam arah yang berlawanan secara bergantian menggunakan MOSFET, tegangan AC sekunder dapat dibuat. Ini terjadi karena saat MOSFET atas menyala dan MOSFET bawah mati, arus mengalir ke atas. Tapi saat MOSFET atas mati dan MOSFET bawah menyala, arus mengalir ke bawah.

Kedua MOSFET harus diubah secara bergantian pada dua kali frekuensi AC. Periksa gambar berikut untuk memahaminya:

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Untuk membuat AC 50 Hz, Gelombang Persegi Bergantian diterapkan pada sisi rendah trafo center tapped 12-0-12V/220V. 50 Hz berarti waktu 20 ms untuk setiap gelombang.

Itu sebabnya 20ms/2 = 10 ms atau 100 kali Toggle Sinyal Gate yang diterapkan pada MOSFET pengemudi Trafo (MOSFET inverter).

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED
Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED
Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Peringatan !!! : Tegangan AC Mematikan bagi Manusia, dapat menyebabkan cedera/kematian ! Jangan pernah menyentuh sisi HV trafo dengan tangan telanjang !

Jika fungsi inverter tidak digunakan, opsi 2XDC Load memungkinkan penggunaan dua beban DC 12 volt tambahan pada terminal Inverter.

Magia Perangkat Lunak

Dua serangkaian kode disediakan, satu adalah kode lengkap dalam satu Tab Arduino, yang lain adalah Kode Tabbed sesuai fungsi terpisah.

Saya telah mengelompokkan sekelompok tugas ke dalam satu fungsi.

Misalnya:

Get_ADCVal() akan mengukur tegangan Panel, Baterai Internal, dan Baterai Eksternal, mengambil 20 sampel, mencari rata-rata nilai-nilai tersebut dan memperbarui Variabel yang menyimpan informasi tegangan.

Context_Control() akan melakukan Interaksi Pengguna, Kontrol Aksi, Pembaruan Info pada Layar terkait kegiatan.

Charging_Control(), Discharging_Control(), Load_Control() adalah fungsi latar belakang yang bertindak sebagai CLOSE LOOP untuk sistem, memantau level tegangan baterai, mengontrol fungsi Auto Load, kontrol perlindungan Overcharge/Deep Discharge, dll.

Masukan pengguna dikumpulkan melalui switch tekan momenter yang didorong Interrupt. Saat switch ini ditekan, ISR INT0/INT1 terkait dieksekusi. Dua variabel volatile dp dan ds berubah. Variabel ketiga level bersama dengan dp (pointer tampilan ->) dan ds (pemilih konten tampilan) memungkinkan pengguna untuk menavigasi menu/sub menu dan melakukan tindakan sesuai kebutuhan.

Timer1 16 bit AVR dikonfigurasi untuk menghasilkan Interrupt Overflow Timer setiap 10 ms dan memutar PIN_INVP dan PIN_INVN saat fungsi Inverter menyala.

Semua fungsi Lcd_....() memiliki sesuatu yang berkaitan dengan kontrol tampilan.

Atmega8A vs Atmega328P (Uno)

Sistem dapat dengan mudah ditingkatkan untuk bekerja dengan Atmega328P/Uno dengan melakukan perubahan berikut pada kode. Cari dan ganti:

 TIMSK with TIMSK1 #define ADC_VREF 2.69 with #define ADC_VREF 1.11 #define ADCVDIV_R1 22 with #define ADCVDIV_R1 8.2 

Pada bagian hardware, Anda perlu menggunakan resistor 8.2K alih-alih 22 K untuk menurunkan tegangan panel, baterai ke rentang pengukuran ADC.

Video Aksi

Saya biasanya tidak hanya membaca kata-kata tentang beberapa proyek, melainkan saya pergi ke video terlebih dahulu. Jika Anda seperti saya, nikmati videonya:

Ruang Lingkup Perbaikan

Saya kehabisan ruang Flash pada Atmega8A. Tidak dapat menambahkan beberapa fitur kritis seperti:

Jika Anda berencana untuk membuat sesuatu seperti ini, jangan lupa untuk menambahkan beberapa fitur ini!

Atmega328P(Uno) atau Arduino Mega mungkin menjadi calon yang lebih baik untuk menyertakan semua opsi ini.

Bagaimanapun, itu melakukan pekerjaan, saya senang dengan itu.

Sumber Daya Tambahan

Kode

Kode Tab Tunggal
#define PIN_SCE 12 #define PIN_RESET 13 #define PIN_DC 8 #define PIN_SDIN 7 #define PIN_SCLK 6 #define PIN_INVP 4 #define PIN_INVN 5 #define PIN_LOAD 9 // 12 v dc load #define PIN_LAMP 10 // WHITE LED LIGHT #define PIN_BATTPWM 11 // Drives PMOS for Ext BAtt Charging #define PIN_BATTint_Sense A2 #define PIN_SOLAR_Sense A0 #define PIN_BATText_Sense A3 #define ADC_VREF 2.695 // internal ref voltage, around 1.11V for Arduino Uno aka Atmega328P, here my Atmega8A gives this ! #define ADCVDIV_R1 22 // 22 K voltage divider lower Resistor #define ADCVDIV_R2 175 // 175 K voltage divider upper Resistor //const uint8_t skulljoke[] PROGMEM ={2,} ; // PIN 2 & 3 USED AS INTERRUPT SWITCH // PIN 0 & 1 AS PROGRAMMING // PIN RESET AS #define LCD_C LOW #define LCD_D HIGH #define LCD_X 84 #define LCD_Y 48 uint8_t x=0; uint8_t level=0; uint8_t blinker=0; boolean Load_Auto_Enable=0; float maxADC_Voltage=0.0; float BattInt_Voltage=0.0; float BattExt_Voltage=0.0; float PV_Voltage=0.0; volatile int y=0; volatile uint8_t dp =0; volatile uint8_t ds =0; volatile boolean cycle=0; volatile uint8_t cdc_level =0; void setup(void) { LcdInitialise(); LcdClear(); LcdString(""*ARDUBOY PV*"); LcdString("" CONTROLLER,"); LcdString(""AC INVERTER,"); LcdString(""POWER BANK, "); LcdString(""LAMP THING!!"); delay(3000); analogReference(INTERNAL); maxADC_Voltage=(ADC_VREF/ADCVDIV_R1)*(ADCVDIV_R1+ADCVDIV_R2); pinMode(PIN_LOAD,OUTPUT); digitalWrite(PIN_LOAD,LOW); pinMode(2, INPUT_PULLUP); attachInterrupt(0, SW1, FALLING);// Interrupt for Swithc 1 pinMode(3, INPUT_PULLUP); attachInterrupt(1, SW2, FALLING);// Interrupt for Swithc 2 } void loop(void) { Get_ADCVal(); Context_Control(); Charging_Control(); Discharging_Control(); Load_Control(); LcdClear();; } ///////////// ADC /////////////// void Get_ADCVal(void) { int I=0; int J=0; int K=0; for(x=0;x<20;x++) { I=I+analogRead(PIN_BATTint_Sense); J=J+analogRead(PIN_BATText_Sense); K=K+analogRead(PIN_SOLAR_Sense); } // average voltage BattInt_Voltage=I/20.0; BattExt_Voltage=J/20.0; PV_Voltage=K/20.0; BattInt_Voltage=maxADC_Voltage*BattInt_Voltage/1023.0; BattExt_Voltage=maxADC_Voltage*BattExt_Voltage/1023.0; PV_Voltage=maxADC_Voltage*PV_Voltage/1023.0; } //////////// Display and Control ////////////// void Context_Control(void) { if(ds==0) {show_menu();} if(ds==1 && dp == 0) {show_info(); delay(100);} } 
Kode Lengkap

Tidak ada pratinjau (hanya unduhan).

Bootloaders

Tidak ada pratinjau (hanya unduhan).

Skema Rangkaian

Hub Daya Surya All-in-One: Pengontrol Charging, Inverter, Power Bank & Lampu LED

Proses manufaktur

  1. Apa Itu Inverter Surya? Bagaimana Ini Mengubah Tenaga Surya Menjadi Listrik yang Dapat Digunakan
  2. Lampu Halogen: Teknologi, Sejarah, dan Masa Depan – Wawasan Ahli
  3. Lava Lamp: Sejarah, Desain, dan Rahasia Manufaktur
  4. Sistem Pemanas Surya: Dari Solusi Pasif hingga Aktif untuk Pemanasan Rumah Berkelanjutan
  5. Sirkuit Terpadu (IC): Chip Kompak dan Canggih yang Menggerakkan Elektronik Modern
  6. Sel Surya: Dari Eksperimen Awal hingga Fotovoltaik Modern – Teknologi, Produksi, dan Prospek Masa Depan
  7. Lampu Lalu Lintas Cerdas: Penerangan Jalan Pintu Adaptif Ditenagai IoT
  8. Pengontrol USB Game Arduino DIY – Buat Gamepad Tinggi Performa Sendiri
  9. Pelacak Surya V2.0 – Sistem Pelacak Panel Surya DIY Lanjutan
  10. Memanfaatkan Energi Surya: Panduan Lengkap untuk Energi Bersih dan Terpercaya