H-Bridge Sine Wave Inverter Circuit Menggunakan Arduino

Coba Instrumen Kami Untuk Menghilangkan Masalah





Memahami Desain Sirkuit

Jika Anda tidak ingin membaca seluruh penjelasan, Anda dapat menonton video ini sebagai gantinya:

  Pesan peringatan: Listrik berbahaya, lanjutkan dengan hati -hati

Sekarang mari kita lihat diagram sirkuit di bawah ini dan pelajari bagaimana hal ini sebenarnya bekerja. Kami melihat bagian utama berikut di sirkuit:



  Arduino Sine Wave Full Bridge Inverter Circuit Diagram

Dewan Arduino - Ini otak kita. Ini memberikan pulsa SPWM yang memutuskan bagaimana sirkuit kita akan berjalan.

IR2110 MOSFET Driver ICS (IC1 dan IC2) -Perangkat ini mengambil sinyal SPWM standar dari Arduino dan membuatnya kompatibel untuk mengganti 4-saluran-H-Bridge MOSFET dengan benar, menggunakan metode bootstrap.



MOSFET (Q1, Q2, Q3, Q4) - Ini adalah sakelar daya. Mereka menghidupkan dan mematikan daya DC dengan cara tertentu untuk membuat AC pada output.

Dioda (1N4007) dan kapasitor - Ini untuk memungkinkan kerja yang benar dari jaringan bootstrap ICS untuk perpindahan sempurna dari 4 MOSFET.

Kapasitor dan resistor lainnya - Ini kecil tapi sangat penting karena semuanya berjalan dengan lancar.

Catu daya - Kami membutuhkan +12V dan +5V untuk Arduino dan IR2110 ICS, dan tegangan DC tinggi untuk MOSFET, sesuai spesifikasi beban.

Apa yang terjadi di sirkuit?

Sekarang mari kita lihat bagaimana ini bekerja langkah demi langkah:

Arduino menghasilkan sinyal SPWM pada dua pin output (pin 8 dan pin 9). Sinyal -sinyal ini terus mengubah lebar untuk menciptakan bentuk yang setara dengan gelombang sinus AC.

IR2110 ICS menerima sinyal PWM ini dan menggunakannya untuk menghidupkan dan mematikan MOSFET dengan cara yang sangat spesifik.

Jembatan-H yang dibuat menggunakan empat MOSFET mengubah pasokan bus DC menjadi output seperti AC dengan mengalihkan arah saat ini melalui beban menggunakan switching SPWM.

Pada output kami mendapatkan perkiraan gelombang sinus yang berarti terlihat seperti gelombang sinus tetapi sebenarnya terbuat dari pulsa yang beralih cepat.

Jika kami menambahkan sirkuit filter pada output maka kami dapat menghaluskan pulsa ini dan mendapatkan gelombang sinus yang lebih sempurna.

Kode Arduino kami untuk Sine Wave PWM

Jadi sekarang mari kita lihat kodenya. Inilah yang akan dijalankan Arduino untuk menghasilkan sinyal SPWM.

835EA9484999CA2B1A94FC3D1BB3E885B51FF2262

Apa yang terjadi dalam kode ini?

Pertama kami mengatur dua pin output (pin 8 dan pin 9). Ini akan mengirimkan sinyal PWM kami.

Kemudian di loop kita menghidupkan dan mematikan pin dalam pola khusus.

Kami mulai dengan pulsa sempit dan secara bertahap meningkatkan lebar pulsa dan kemudian kami menguranginya kembali. Ini menciptakan pola PWM gelombang sinus loncatan.

Setelah siklus babak pertama selesai maka kami mengulangi hal yang sama pada pin lain (pin 9) untuk siklus berikutnya.

Dengan cara ini h-bridge kami mengganti MOSFET dalam gelombang sinusoidal yang tepat seperti mode.

Apa yang bagus tentang desain ini

Desainnya sebenarnya sangat sederhana. Kami hanya menggunakan Arduino dan beberapa komponen umum.

Kami tidak membutuhkan generator gelombang sinus di sini, benar. Arduino itu sendiri membuat bentuk sinus menggunakan SPWM.

Jembatan-H bekerja secara efisien menggunakan IR2110 IC untuk memastikan MOSFET beralih dengan benar tanpa overheating.

Kami dapat menyempurnakan SPWM dengan mudah, jika kami menginginkan frekuensi gelombang sinus yang berbeda, maka kami hanya sedikit memodifikasi kode.

Bagaimana kita harus menangani penundaan boot Arduino

Sekarang satu hal yang sangat penting yang harus kita pahami adalah bahwa Arduino membutuhkan waktu untuk memulai setelah kita mengaktifkan daya.

Ini terjadi karena ketika kita menghidupkan Arduino maka pertama -tama menjalankan bootloader internalnya yang membutuhkan waktu beberapa detik.

Jadi selama ini ICS IR2110 Gate Driver ICS dan MOSFET tidak dapat menerima sinyal yang tepat dari Arduino.

Jika itu terjadi maka MOSFET dapat menyala secara acak yang dapat merusak ICS secara instan, atau menyebabkan sirkuit pendek atau ledakan.

Untuk memastikan bahwa penundaan boot di atas tidak membakar ICS dan MOSFET selama daya awal, kita perlu memodifikasi kode di atas seperti yang ditunjukkan di bawah ini:

// By Swagatam - Full Bridge Sine Wave Inverter Code with Delay
void setup() {
    pinMode(8, OUTPUT);
    pinMode(9, OUTPUT);
    
    delay(3000); // Booting delay (wait for 3 seconds before starting)
}
void loop() {
    // First pin (8) switching pattern
    digitalWrite(8, HIGH);
    delayMicroseconds(500);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(750);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(1250);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(2000);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(1250);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(750);
    digitalWrite(8, LOW);
    delayMicroseconds(500);
    digitalWrite(8, HIGH);
    delayMicroseconds(500);
    digitalWrite(8, LOW);
    // Second pin (9) switching pattern
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(750);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(1250);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(2000);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(1250);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(750);
    digitalWrite(9, LOW);
    delayMicroseconds(500);
    digitalWrite(9, HIGH);
    delayMicroseconds(500);
    digitalWrite(9, LOW);
}

Daftar Bagian

Dewan Arduino Arduino Uno (atau papan apa pun yang kompatibel) 1
IC Driver MOSFET IR2110 Driver Sisi Tinggi & Rendah 2
MOSFET IRF3205 (atau N-Channel yang serupa) 4
Dioda 1N4007 (untuk bootstrap & perlindungan) 4
Resistor 1KΩ 1/4W (penarik gerbang MOSFET) 4
Resistor 150Ω 1/4W (Resistor Seri Gerbang MOSFET) 4
Kapasitor 100NF (kapasitor bootstrap) 2
Kapasitor 22UF 25V (filter catu daya) 2
Memuat Setiap beban resistif atau induktif 1
Catu daya +12V DC (untuk MOSFET) & +5V DC (untuk Arduino) 1
Kabel & Konektor Cocok untuk koneksi sirkuit Sesuai kebutuhan

Kiat Konstruksi

Sekarang ketika kita benar -benar membangun hal ini, kita harus sangat berhati -hati tentang beberapa hal penting. Kalau tidak, itu mungkin tidak berhasil atau lebih buruk, sesuatu mungkin terbakar kan? Jadi, inilah beberapa tips konstruksi super penting yang harus kita ikuti:

Bagaimana kita harus mengatur bagian -bagian di papan

Jika kami menggunakan papan tempat memotong roti maka sirkuit ini mungkin tidak berfungsi dengan baik karena MOSFET dan driver berdaya tinggi membutuhkan koneksi yang kuat dan solid.

Jadi kita harus menggunakan PCB (papan sirkuit cetak) atau setidaknya papan perf dan menyolder bagian -bagiannya dengan benar.

Jika kita membuat PCB maka kita harus menjaga MOSFET dan IR2110 ICs berdekatan sehingga sinyal tidak menjadi lemah atau tertunda.

Kabel tebal harus menempuh jalur arus tinggi seperti dari catu daya ke MOSFET dan dari MOSFET ke beban.

Kabel tipis hanya dapat digunakan untuk koneksi sinyal seperti dari Arduino ke IR2110 ICS.

Bagaimana kita harus menempatkan MOSFET

Keempat MOSFET harus ditempatkan dalam bentuk h-bridge yang tepat sehingga kabel tidak menjadi berantakan.

Setiap MOSFET harus memiliki koneksi pendek dan tebal ke IR2110 IC.

Jika kita menempatkan MOSFET terlalu jauh dari IR2110 maka sinyal mungkin menjadi lemah dan MOSFET mungkin tidak beralih dengan benar.

Jika itu terjadi maka MOSFET bisa menjadi panas dan bahkan terbakar.

Bagaimana kita harus memperbaiki masalah panas

Jika kita menggunakan IRF3205 MOSFET atau yang serupa, maka mereka akan memanas jika kita tidak memberi mereka heatsink.

Jadi kita harus memperbaiki heatsink aluminium besar ke MOSFET agar tetap dingin.

Jika kita membuat inverter daya tinggi (lebih dari 100W) maka kita juga harus memasang kipas pendingin pada heatsink.

Jika MOSFET terlalu panas untuk disentuh maka itu berarti ada beberapa masalah dan kita perlu memeriksa sirkuit lagi.

Bagaimana kita harus memberi daya pada sirkuit

Bagian Arduino berjalan pada 5V dan MOSFET perlu 12V atau lebih untuk bekerja.

Jadi kita tidak boleh menghubungkan 12V ke Arduino, atau akan langsung terbakar!

IR2110 IC membutuhkan dua catu daya:

12V untuk MOSFET sisi tinggi

5V untuk bagian logika

Jika kita mencampur saluran listrik ini maka sirkuit tidak akan berfungsi dengan baik dan MOSFET tidak akan beralih dengan benar.

Bagaimana kita harus menghubungkan kabel

Koneksi tanah (GND) sangat penting. Jika kabel ground lemah atau panjang, maka sirkuit mungkin berperilaku aneh.

Kita harus menggunakan landasan bersama untuk semua bagian, yang berarti tanah Arduino, tanah IR2110 dan tanah sumber MOSFET harus dihubungkan bersama.

Jika kita melihat sirkuit berperilaku aneh (seperti output berkedip atau MOSFET menjadi hangat tanpa beban), maka kita harus memeriksa koneksi tanah terlebih dahulu.

Bagaimana kita harus memeriksa sirkuit sebelum menyalakannya

Sebelum kita mengaktifkan daya, kita harus memeriksa ulang semua koneksi untuk melihat apakah semuanya benar.

Jika kita memiliki multimeter maka kita harus menggunakannya untuk memeriksa tegangan pada titik yang berbeda sebelum memasukkan MOSFET.

Kami akan benar -benar membutuhkan osiloskop sehingga kami dapat memeriksa sinyal SPWM yang datang dari Arduino untuk melihat apakah mereka terlihat benar.

Bagaimana kita harus menguji sirkuit dengan hati -hati

Cara terbaik untuk menguji sirkuit ini dengan aman adalah dengan memulai dengan tegangan rendah.

Alih -alih 12V pertama -tama kita dapat mencoba dengan 6V atau 9V untuk melihat apakah MOSFET beralih dengan benar.

Jika sirkuit bekerja dengan baik pada tegangan rendah maka kita secara perlahan dapat meningkat menjadi 12V dan akhirnya ke tegangan penuh.

Jika kita tiba -tiba menerapkan tegangan penuh dan ada sesuatu yang salah maka ada sesuatu yang mungkin terbakar secara instan!

Jadi kita harus menguji langkah demi langkah dan terus memeriksa perilaku yang terlalu panas atau salah.

Bagaimana kita dapat menambahkan filter untuk output yang lebih halus

Sirkuit ini membuat output AC menggunakan PWM tetapi masih terbuat dari pulsa cepat.

Jika kita menginginkan gelombang sinus bersih maka kita harus menambahkan filter LC di output.

Filter LC ini hanyalah induktor besar dan kapasitor yang terhubung ke output.

Induktor menghilangkan pulsa switching cepat dan kapasitor menghaluskan bentuk gelombang.

Jika kita melakukan ini dengan benar maka kita bisa mendapatkan gelombang sinus murni yang aman untuk peralatan.

Bagaimana kita harus melindungi sirkuit dari kerusakan

Kita harus selalu menambahkan sekering secara seri dengan catu daya.

Jika sesuatu pendek atau MOSFET gagal maka sekering akan pecah terlebih dahulu dan menyimpan sirkuit dari pembakaran.

Jika MOSFET gagal maka terkadang mereka gagal disingkat (artinya mereka selalu tetap ada).

Jika itu terjadi maka arus besar dapat mengalir dan merusak transformator atau bagian lain.

Jadi selalu baik untuk memeriksa MOSFET menggunakan multimeter sebelum menerapkan daya tinggi.

Kesimpulan

Jadi di sini kita melihat bagaimana kita bisa membuat inverter gelombang sinus hanya menggunakan Arduino dan sirkuit H-Bridge Mosfet. Kami menggunakan driver IR2110 MOSFET untuk mengganti MOSFET dan kontrol PWM dengan benar dari Arduino untuk menghasilkan AC yang dimodulasi oleh sinus kami.

Sekarang satu hal yang perlu diingat adalah bahwa output ini masih terbuat dari pulsa yang mengalir cepat, jadi jika kita membutuhkan gelombang sinus murni maka kita harus menambahkan filter LC pada output untuk menghaluskannya.

Tapi secara keseluruhan ini adalah cara yang sangat praktis dan mudah untuk membuat inverter gelombang sinus di rumah!