Isi kandungan:
- Langkah 1: Menjana Pwm Signal untuk 50Hz
- Langkah 2: Program Arduino untuk Kitaran Tugas Berubah
- Langkah 3: Bergantian pada Arduino Pin 50Hz
- Langkah 4: Memandu Jambatan H dan Menapis Isyarat Pwm
Video: Arduino Sinewave untuk Penyongsang: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Dalam projek ini, saya telah menghasilkan isyarat SPWM (sinus gelombang sinus lebar dimodulasi) dari dua output digital arduino pwm.
Kerana untuk membuat program seperti itu, saya harus membincangkan banyak fungsi dan sifat arduino yang lain untuk projek penuh termasuk gambar osiloskop dan untuk frekuensi yang berbeza sila lawati laman web saya:
eprojekszon
Langkah 1: Menjana Pwm Signal untuk 50Hz
Untuk menghasilkan isyarat 50Hz pada frekuensi yang lebih tinggi, perlu membuat beberapa pengiraan. Kekerapan dari arduino boleh berada pada 8MHz, tetapi kami mahukan isyarat dengan kitaran tugas berubah-ubah.
Untuk memahami jenis kitaran tugas berubah-ubah arduino, anda boleh membaca 3 bahagian ini pada pos 1, 2 dan 3 yang sama.
Anggaplah frekuensi kita 50Hz yang bermaksud jangka masa 20ms. Jadi 10ms adalah tempoh separuh kitaran. Dalam 10ms kita perlu mempunyai banyak denyutan dengan kitaran tugas yang berbeza bermula dengan kitaran tugas kecil, di tengah isyarat kita mempunyai kitaran tugas maksimum dan menyelesaikan juga dengan kitaran tugas kecil. Untuk menghasilkan gelombang sinus, kita akan menggunakan dua pin satu untuk separuh kitaran positif dan satu untuk separuh kitaran negatif. Dalam catatan kami untuk ini kami menggunakan pin 5 dan 6 yang bermaksud Pemasa 0.
Untuk isyarat yang lancar, kami memilih fasa pwm yang betul pada frekuensi 31372 Hz-lihat catatan sebelumnya. Salah satu masalah terbesar adalah bagaimana kita mengira kitaran tugas yang diperlukan untuk setiap nadi. Oleh itu, kerana frekuensi kita adalah f = 31372Hz, tempoh bagi setiap nadi adalah T = 1/31372 = 31.8 kita, jadi bilangan denyutan untuk setengah kitaran adalah N = 10ms / 31.8us = 314 denyutan. Sekarang untuk mengira kitaran tugas bagi setiap nadi kita mempunyai y = sinx, tetapi dalam persamaan ini kita memerlukan darjah sehingga separuh kitaran mempunyai 180deg untuk 314 denyutan. Untuk setiap nadi kita mempunyai 180/314 = 0,57deg / nadi. Itu bermaksud untuk setiap nadi kita bergerak ke hadapan dengan 0,57deg.
y ialah kitaran tugas dan x nilai kedudukan dalam kitaran separuh tugas. pada mulanya x ialah 0, selepas itu x = 0.57, x = 1.14 dan seterusnya sehingga x = 180.
jika kita mengira semua 314 nilai kita memperoleh elemen array 314 (taip "int" untuk dikira lebih mudah oleh arduino).
Susunan tersebut adalah:
int sinPWM = {1, 2, 5, 7, 10, 12, 15, 17, 19, 22, 24, 27, 30, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 61, 64, 66, 69, 71, 73, 76, 78, 80, 83, 85, 88, 90, 92, 94, 97, 99, 101, 103, 106, 108, 110, 113, 115, 117, 119, 121, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 169, 171, 173, 175, 177, 178, 180, 182, 184, 185, 187, 188, 190, 192, 193, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 209, 211, 212, 213, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 249, 249, 250, 250, 250, 250, 249, 249, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 246, 246, 245, 245, 244, 244, 243, 243, 242, 242, 241, 240, 240, 239, 238, 237, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 217, 21 6, 215, 213, 212, 211, 209, 208, 207, 205, 204, 202, 201, 199, 198, 196, 195, 193, 192, 190, 188, 187, 185, 184, 182, 180, 178, 177, 175, 173, 171, 169, 168, 166, 164, 162, 160, 158, 156, 154, 152, 150, 148, 146, 144, 142, 140, 138, 136, 134, 132, 130, 128, 126, 124, 121, 119, 117, 115, 113, 110, 108, 106, 103, 101, 99, 97, 94, 92, 90, 88, 85, 83, 80, 78, 76, 73, 71, 69, 66, 64, 61, 59, 57, 54, 52, 49, 47, 44, 42, 39, 37, 34, 32, 30, 27, 24, 22, 19, 17, 15, 12, 10, 7, 5, 2, 1};
Anda dapat melihat bahawa seperti gelombang sinus kitaran tugas paling rendah pada elemen pertama dan terakhir dan tertinggi di tengah.
Langkah 2: Program Arduino untuk Kitaran Tugas Berubah
Dalam gambar di atas kita mempunyai isyarat kitaran tugas berubah dengan nilai dari tatasusunan.
Tetapi bagaimana membuat isyarat sedemikian ??
bahagian program di bawah ini menggunakan gangguan untuk mengubah nilai kitaran tugas
sei (); // aktifkan gangguan
}
ISR (TIMER1_COMPA_vect) {// mengganggu apabila pemasa 1 sepadan dengan nilai OCR1A
jika (i> 313 && OK == 0) {// nilai akhir dari vektor untuk pin 6
i = 0; // pergi ke nilai vektor pertama (susunan)
OK = 1; // aktifkan pin 5
}
x = sinPWM ; // x mengambil nilai dari vektor yang sesuai dengan kedudukan i (i adalah sifar diindeks)-nilai kitaran tugas
i = i + 1; // pergi ke kedudukan seterusnya
}
Langkah 3: Bergantian pada Arduino Pin 50Hz
Kerana setiap pin hanya menghasilkan kitaran separuh tugas untuk membuat gelombang sinus penuh, kami menggunakan dua pin yang bergantian satu demi satu setelah 10msecond tepat (untuk 50Hz). Perubahan pin ini dibuat pada akhir array - setelah katakan pin 5 telah menghasilkan 314 denyutan pin ini dimatikan dan diaktifkan pin 6 yang membuat perkara yang sama tetapi untuk kitaran tugas negatif.
Kerana arduino hanya dapat menghasilkan isyarat positif kitaran tugas negatif dibuat di jambatan - anda boleh membaca di sini mengenainya
Program untuk menukar pin:
sei (); // aktifkan gangguan
}
ISR (TIMER1_COMPA_vect) {// mengganggu apabila pemasa 1 sepadan dengan nilai OCR1A
jika (i> 313 && OK == 0) {// nilai akhir dari vektor untuk pin 6
i = 0; // pergi ke nilai vektor pertama
OK = 1; // aktifkan pin 5
}
jika (i> 313 && OK == 1) {// nilai akhir dari vektor untuk pin 5
i = 0; // pergi ke nilai vektor pertama
OK = 0; // aktifkan pin 6
}
x = sinPWM ; // x ambil nilai dari vektor yang sesuai dengan kedudukan i (i adalah sifar diindeks)
i = i + 1; // pergi ke kedudukan seterusnya
jika (OK == 0) {
OCR0B = 0; // buat pin 5 0
OCR0A = x; // aktifkan pin 6 ke kitaran tugas yang sepadan
jika (OK == 1) {
OCR0A = 0; // buat pin 6 0
OCR0B = x; // aktifkan pin 5 ke kitaran tugas yang sepadan
}
}
Langkah 4: Memandu Jambatan H dan Menapis Isyarat Pwm
Isyarat yang diperoleh dari arduino adalah bahagian kawalan untuk aplikasi penyongsang kerana keduanya positif. Untuk membuat gelombang sinus penuh dan penyongsang praktikal, kita harus menggunakan jambatan h dan membersihkan pwm penapis lulus rendah.
Jambatan H dipersembahkan di sini.
Penapis lorong rendah diuji dengan motor Ac kecil-di sini.
Disyorkan:
Penyongsang Solar Off-Grid Paling Efisien di Dunia: 3 Langkah (dengan Gambar)
Inverter Suria Off-Grid Paling Efisien di Dunia: Tenaga suria adalah masa depan. Panel boleh bertahan selama beberapa dekad. Katakan anda mempunyai sistem solar di luar grid. Anda mempunyai peti sejuk / penyejuk beku, dan pelbagai barang lain untuk dijalankan di kabin terpencil anda yang indah. Anda tidak mampu membuang tenaga
Cara Merangka dan Melaksanakan Penyongsang Fasa Tunggal: 9 Langkah
Cara Merancang dan Melaksanakan Penyongsang Fasa Satu: Instruksional ini meneroka penggunaan CMIC GreenPAK ™ Dialog dalam aplikasi elektronik kuasa dan akan menunjukkan pelaksanaan penyongsang fasa tunggal menggunakan pelbagai metodologi kawalan. Parameter yang berbeza digunakan untuk menentukan
Litar Penyongsang Mudah: 8 Langkah
Litar Inverter Mudah: Ini adalah litar penyongsang mudah berdasarkan 13007 Transistor. Inverter penting berfungsi pada konfigurasi Push-Pull. Inverter ini manis untuk muatan kecil seperti Mentol LED 15w, pengecas mudah alih, dan Aksesori Elektrik lain
Bagaimana Membina Penyongsang di Rumah ?: 7 Langkah
Bagaimana Membina Penyongsang di Rumah ?: Komponen Perkakasan Yang Perlu Bateri 12 V Bateri Rintangan 100W x2 Ketahanan 1.2kW x1 Pemangkas Tahan100kW x1 LED Merah x1MOSFET T
Cara Memperbaiki Penyongsang Daya Lampu Latar LCD. Menggunakan Fujiplus FP-988D. untuk $ 0 .: 9 Langkah
Cara Memperbaiki Penyongsang Daya Lampu Latar LCD. Menggunakan Fujiplus FP-988D. untuk $ 0: Dalam arahan ini, saya akan memandu anda untuk memperbaiki penyongsang kuasa lampu belakang lcd yang mati menggunakan bahagian yang anda miliki. Anda boleh mengetahui sama ada anda mempunyai cahaya belakang mati dengan terlebih dahulu menghilangkan kemungkinan lain. Periksa monitor di beberapa komputer. Pastikan