Inverter 12 -220 volt pada sinus tulen Arduino dengan kod program penuh.
Teori
Mencapai output gelombang sinus agak sukar dan tidak disyorkan untuk penyongsang, kerana elektronik Peranti biasanya tidak menyukai arus atau tegasan yang meningkat secara eksponen. Oleh sebab inverter terutamanya dibuat menggunakan peranti elektronik keadaan pepejal, bentuk gelombang sinusoidal biasanya dihapuskan.
Peranti kuasa elektronik ketika bekerja dengan gelombang sinusoidal memberikan hasil yang tidak berkesan, kerana peranti, sebagai peraturan, dipanaskan dibandingkan dengan denyutan persegi panjang.
Oleh itu, pilihan terbaik untuk melaksanakan gelombang sinus pada penyongsang adalah PWM, yang bermaksud modulasi lebar denyut atau PWM.
PWM adalah cara yang lebih baik (versi digital) pendedahan pendedahan bentuk eksponen melalui lebar denyutan persegi yang berubah-ubah, nilai bersih yang dikira dengan tepat mengikut nilai bersih bentuk gelombang eksponen yang terpilih, di sini nilai "tulen" merujuk kepada nilai RMS. Oleh itu, PWM yang dikira dengan merujuk kepada gelombang sinus tertentu boleh digunakan sebagai setara ideal untuk replikasi gelombang sinus tertentu. Di samping itu, PWM akan sesuai dengan peranti kuasa elektronik (mosfets, BJTs, IGBTS) dan membenarkan penggunaannya dengan haba yang minimum.
Apakah SPWM?
Kaedah yang paling biasa adalah untuk menghasilkan PWM sinewaver (gelombang sinus) atau SPWM, dengan menggunakan beberapa isyarat yang berubah-ubah secara beransur-ansur kepada input penguat operasi untuk pemprosesan yang diperlukan. Di antara dua isyarat masukan, satu harus lebih tinggi dalam kekerapan berbanding yang lain.
Menggunakan dua isyarat masukan
Seperti yang disebutkan dalam bahagian sebelumnya, prosedur melibatkan membekalkan dua isyarat yang berbeza-beza ke input penguat operasi.
Di sini, penguat operasi dikonfigurasi sebagai pembanding biasa, jadi kita boleh mengandaikan bahawa penguat operasi akan segera mula membandingkan tahap voltan seketika kedua-dua isyarat superimposed pada saat ia muncul atau digunakan pada inputnya.
Untuk penguat operasi untuk melaksanakan dengan betul PWM sinusoidal yang diperlukan pada outputnya, adalah salah satu isyarat yang mempunyai frekuensi yang lebih tinggi daripada yang lain. Kekerapan yang lebih perlahan di sini adalah yang sepatutnya menjadi gelombang sinus sampel, yang harus disimulasikan (direplikasi) oleh PWMs.
Sebaik-baiknya, kedua-dua isyarat harus sinusoidal (satu dengan kekerapan yang lebih tinggi daripada yang lain), tetapi yang sama dapat direalisasikan dengan memasukkan gelombang segitiga (frekuensi tinggi) dan gelombang sinus (gelombang selektif dengan frekuensi yang rendah). Seperti yang dapat dilihat dalam imej-imej berikut, isyarat frekuensi tinggi selalu disalurkan kepada input pembalik (-) penguat kendalian, manakala isyarat sinusoidal yang lebih perlahan dibekalkan kepada input bukan pengaliran (+) penguat operasi. Dalam kes yang paling teruk, kedua-dua isyarat boleh menjadi gelombang segi tiga dengan tahap kekerapan yang disyorkan, seperti yang diterangkan di atas. Walau bagaimanapun, ini akan membantu dalam mencapai setara setara PWM sinewave.
Isyarat dengan frekuensi yang lebih tinggi dipanggil isyarat pembawa, manakala isyarat sampel yang perlahan dipanggil input modulasi.
Buat SPWM dengan gelombang segitiga dan tendon
Merujuk kepada angka di atas, adalah mungkin untuk memvisualisasikan secara jelas melalui titik diplotkan pelbagai titik voltan yang berlainan atau bertindih dari kedua-dua isyarat untuk tempoh masa tertentu. Paksi mendatar menunjukkan tempoh masa bentuk gelombang, manakala paksi menegak menunjukkan tahap voltan 2 secara serentak berjalan, bentuk gelombang superimposed. Angka ini memberitahu kita bagaimana penguat operasi akan bertindak balas terhadap tahap voltan seketika bersamaan yang ditunjukkan dari kedua-dua isyarat dan menghasilkan PWM sinusoidal yang sesuai yang berubah pada outputnya. Penguat operasi (op-amp) hanya membandingkan, tahap voltan gelombang segitiga cepat serta-merta menukar gelombang sinus (ia juga boleh menjadi gelombang segitiga), dan memeriksa kes-kes di mana voltan bentuk gelombang segitiga boleh lebih rendah daripada voltan gelombang sinus dan bertindak balas segera buat logik tinggi pada pintu keluar anda.
Ini dikekalkan selagi gelombang potensi segitiga terus menjadi lebih rendah daripada potensi gelombang sinus, dan ketika potensi gelombang sinus dikesan menjadi lebih rendah daripada potensi seketika gelombang segitiga, output kembali dengan minimum dan bertahan sehingga keadaan mengulangi.
Perbandingan berterusan tahap potensi seketika dua bentuk gelombang superimposed pada dua input penguat operasi membawa kepada penciptaan PWM yang sepadan dengan perubahan, yang dengan tepat dapat mengulangi bentuk sinusoidal yang digunakan untuk input bukan pengaliran penguat operasi.
Penguatkuasaan Operasi dan SPWM
Gambar berikut menunjukkan pemodelan operasi di atas:
Di sini kita dapat melihat bagaimana ia dilaksanakan dalam amalan, dan inilah bagaimana penguat operasi akan melakukan perkara yang sama (walaupun pada kelajuan yang lebih tinggi, dalam MS).
Operasi ini agak jelas dan jelas menunjukkan bagaimana penguat operasi harus memproses gelombang sinus PWM dengan membandingkan dua isyarat yang berubah secara bersamaan pada inputnya, seperti yang diterangkan dalam bahagian sebelumnya.
Malah, penguat operasi akan memproses PWM sinusoidal lebih tepat daripada simulasi yang ditunjukkan di atas, ia boleh menjadi 100 kali lebih baik, menjadikan PWM yang sangat seragam dan diukur dengan sepadan dengan sampel yang dibekalkan. Gelombang sinus.
Penyongsang Arduino dua litar
senarai bahagian
Semua 1/4 Watt Resistors, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4pcs
• MOSFET IRF540 = 2pcs
• Arduino UNO = 1
• Transformer = 9-0-9V / 220V / 120V.
• Bateri = 12V
Semua 1/4 Watt Resistors, 5% CFR
• 10K = 4
• 1K = 2
• BC547 = 4pcs
• MOSFET IRF540 = 2pcs
• Arduino UNO = 1
• Transformer = 9-0-9V / 220V / 120V.
• Bateri = 12V
Reka bentuk sebenarnya sangat mudah seperti yang ditunjukkan dalam angka berikut.
Pin # 8 dan pin # 9 membuat PWM secara bergantian dan menukar Mosfets dengan PWM yang sama.
Mosfet, pada gilirannya, mendorong gelombang SPWM yang sangat aktif pada pengubah, menggunakan kuasa bateri, menyebabkan pengubah menengah untuk menghasilkan bentuk gelombang yang sama.
Litar inverter Arduino yang dicadangkan boleh dinaik taraf kepada mana-mana tahap kuasa yang lebih tinggi pilihan dengan hanya menggantikan Mosfets dan pengubah, masing-masing, sebagai alternatif, anda juga boleh menukar ini kepada jambatan penuh atau jambatan gelombang sinus
Arduino Board Power
Imej Gelombang untuk Arduino SPWM
Oleh kerana Arduino akan menghasilkan keluaran 5V, ini mungkin tidak sesuai untuk mengawal transistor MOS secara langsung.
Oleh itu, adalah perlu untuk meningkatkan tahap strob ke 12V supaya Mosfets akan berfungsi dengan betul tanpa memanaskan peranti.
Untuk memastikan bahawa Mosfety tidak bermula apabila Arduino bermula atau dimulakan, anda perlu menambah penjana kelewatan berikut dan sambungkannya ke pangkalan transistor BC547. Ini akan melindungi Mosfets dan menghalangnya daripada terbakar semasa suis kuasa dan ketika Arduino menaikkan.
Menambah Pengawal Voltan Automatik
Sama seperti mana-mana penyongsang lain, pada output reka bentuk ini, arus boleh meningkat kepada had tidak selamat apabila bateri dicas sepenuhnya.
Untuk mengawal ini, tambah pengatur voltan automatik.
Pengumpul BC547 mesti disambungkan ke pangkalan-pangkalan pasangan BC547 kiri, yang disambungkan ke Arduino melalui perintang 10K.
Versi kedua inverter menggunakan cip sn7404 / k155ln1
Penting:
Untuk mengelakkan daripada menukar secara tidak sengaja sebelum memuatkan Arduino, kelewatan mudah dalam litar pemasa boleh dimasukkan ke dalam reka bentuk di atas, seperti ditunjukkan di bawah:
Kod program:
/ *
Kod ini didasarkan pada kod SPWM Swagatam dengan perubahan yang dibuat untuk menghapus ralat. Gunakan kod ini kerana anda akan menggunakan karya Swagatam yang lain.
Risiko Atton 2017
* /
const int sPWMArray [] = {500,500,750,500,1250,500,2000,500,1250,500,750,500,500}; / / Ini adalah array dengan nilai-nilai SPWM mengubahnya pada kehendak
const int sPWMArrayValues = 13; // Anda memerlukan ini sejak C tidak memberikan panjang Array
/ // Pin
const int sPWMpin1 = 10;
const int sPWMpin2 = 9;
// Suis pin
bool sPWMpin1Status = true;
bool sPWMpin2Status = true;
batal persediaan ()
{
pinMode (sPWMpin1, OUTPUT);
pinMode (sPWMpin2, OUTPUT);
}
kekosongan gelung ()
{
// Gelung untuk pin 1
untuk (int i (0); i! = sPWMArrayValues; i ++)
{
jika (sPWMpin1Status)
{
digitalWrite (sPWMpin1, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = false;
}
lain
{
digitalWrite (sPWMpin1, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin1Status = benar;
}
}
// Gelung untuk pin 2
untuk (int i (0); i! = sPWMArrayValues; i ++)
{
jika (sPWMpin2Status)
{
digitalWrite (sPWMpin2, HIGH);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = false;
}
lain
{
digitalWrite (sPWMpin2, LOW);
delayMicroseconds (sPWMArray [i]);
sPWMpin2Status = benar;
}
}
}
Semoga berjaya.