- Apa itu Sinyal PWM?
- Bagaimana cara mengubah sinyal PWM menjadi tegangan Analog?
- Diagram Sirkuit:
- Pemrograman MSP untuk sinyal PWM:
- Mengontrol Kecerahan LED dengan PWM:
Tutorial ini adalah bagian dari seri tutorial MSP430G2 LaunchPad di mana kita belajar menggunakan MSP430G2 LaunchPad dari Texas Instruments. Sejauh ini kita telah mempelajari dasar-dasar papan dan telah membahas cara membaca tegangan analog, antarmuka LCD dengan MSP430G2, dll. Sekarang kita lanjutkan dengan langkah selanjutnya untuk mempelajari PWM di MSP430G2. Kami akan melakukannya dengan mengontrol kecerahan LED dengan memvariasikan potensiometer. Jadi potensiometer akan dipasang ke pin analog dari MSP430 untuk membaca tegangan analognya, oleh karena itu disarankan untuk mengetahui melalui tutorial ADC sebelum melanjutkan.
Apa itu Sinyal PWM?
Pulse Width Modulation (PWM) adalah sinyal digital yang paling umum digunakan dalam rangkaian kontrol. Sinyal ini disetel tinggi (3,3v) dan rendah (0v) dalam waktu dan kecepatan yang telah ditentukan. Waktu di mana sinyal tetap tinggi disebut "waktu hidup" dan waktu di mana sinyal tetap rendah disebut "waktu mati". Ada dua parameter penting untuk PWM seperti yang dibahas di bawah ini:
Siklus kerja PWM:
Persentase waktu di mana sinyal PWM tetap TINGGI (tepat waktu) disebut siklus kerja. Jika sinyal selalu ON maka dalam siklus kerja 100% dan jika selalu mati itu adalah siklus kerja 0%.
Duty Cycle = Turn ON time / (Turn ON time + Turn OFF time)
Frekuensi PWM:
Frekuensi sinyal PWM menentukan seberapa cepat PWM menyelesaikan satu periode. Satu Periode lengkap ON dan OFF dari sinyal PWM seperti yang ditunjukkan pada gambar di atas. Dalam tutorial kami frekuensinya menjadi 500Hz karena ini adalah nilai default yang ditetapkan oleh Energia IDE.
Ada banyak aplikasi untuk sinyal PWM secara real time, tetapi untuk memberi Anda gambaran, sinyal PWM dapat digunakan untuk mengontrol Motor servo dan juga dapat diubah menjadi tegangan Analog yang dapat mengontrol kecerahan kecerahan LED. Mari belajar sedikit tentang bagaimana itu bisa dilakukan.
Berikut beberapa contoh PWM dengan Mikrokontroler lainnya:
- Pembangkit PWM menggunakan Mikrokontroler PIC dengan MPLAB dan XC8
- Kontrol Motor Servo dengan Raspberry Pi
- Dimmer LED Berbasis Arduino menggunakan PWM
Periksa semua proyek terkait PWM di sini.
Bagaimana cara mengubah sinyal PWM menjadi tegangan Analog?
Untuk sinyal PWM menjadi tegangan Analog kita dapat menggunakan rangkaian yang disebut RC filter. Ini adalah rangkaian sederhana dan paling umum digunakan untuk tujuan ini. Rangkaian ini hanya mencakup Resistor dan kapasitor secara seri seperti yang ditunjukkan pada rangkaian di bawah ini.
Jadi apa yang pada dasarnya terjadi di sini adalah ketika ketika sinyal PWM tinggi kapasitor mengisi melalui resistor dan ketika sinyal PWM rendah kapasitor melepaskan melalui muatan yang tersimpan. Dengan cara ini kita akan selalu memiliki tegangan konstan pada output yang akan sebanding dengan siklus kerja PWM.
Pada grafik di atas, yang berwarna kuning adalah sinyal PWM dan warna biru adalah tegangan analog keluaran. Seperti yang Anda lihat, gelombang keluaran tidak akan menjadi gelombang DC murni tetapi harus bekerja dengan sangat baik untuk aplikasi kita. Jika Anda membutuhkan gelombang DC murni untuk jenis aplikasi lain, Anda harus merancang rangkaian switching.
Diagram Sirkuit:
Diagram sirkuit cukup sederhana; itu hanya memiliki potensiometer dan resistor dan kapasitor untuk membentuk sirkuit rc dan led itu sendiri. Potensiometer digunakan untuk memberikan tegangan analog berdasarkan siklus tugas sinyal PWM yang dapat dikontrol. Output dari pot terhubung ke Pin P1.0 yang dapat membaca tegangan analog. Kemudian kita harus menghasilkan sinyal PWM, yang bisa dilakukan dengan menggunakan pin P1.2, sinyal PWM ini kemudian dikirim ke rangkaian RC Filter untuk mengubah sinyal PWM menjadi Tegangan Analog yang kemudian diberikan ke LED.
Sangat penting untuk dipahami bahwa tidak semua pin pada papan MSP dapat membaca tegangan analog atau dapat menghasilkan pin PWM. Pin khusus yang dapat melakukan tugas tertentu ditunjukkan pada gambar di bawah ini. Selalu gunakan ini sebagai panduan untuk memilih pin Anda untuk pemrograman.
Pasang rangkaian lengkap seperti yang ditunjukkan di atas, Anda dapat menggunakan papan tempat memotong roti dan beberapa kabel jumper dan dengan mudah membuat sambungan. Setelah koneksi selesai, papan saya terlihat seperti yang ditunjukkan di bawah ini.
Pemrograman MSP untuk sinyal PWM:
Setelah perangkat keras siap kita bisa mulai dengan pemrograman kita. Hal pertama dalam sebuah program adalah mendeklarasikan pin yang akan kita gunakan. Di sini kita akan menggunakan pin nomor 4 (P1.2) sebagai pin keluaran karena memiliki kemampuan untuk menghasilkan PWM. Jadi kami membuat variabel dan menetapkan nama pin sehingga mudah untuk merujuknya nanti dalam program. Program lengkap diberikan di akhir.
int PWMpin = 4; // Kami menggunakan pin ke-4 pada modul MSP sebagai pin PWM
Selanjutnya kita masuk ke fungsi pengaturan . Kode apa pun yang ditulis di sini hanya akan dijalankan sekali, di sini kami menyatakan bahwa kami menggunakan pin ke- 4 ini sebagai pin keluaran karena PWM adalah fungsionalitas keluaran. Perhatikan bahwa kami telah menggunakan variabel PWMpin di sini daripada angka 4 sehingga kode terlihat lebih bermakna
batal penyiapan () { pinMode (PWMpin, OUTPUT); // PEMpin disetel sebagai Outptut }
Akhirnya kita masuk ke fungsi loop . Apa pun yang kita tulis di sini akan dieksekusi berulang kali. Dalam program ini kita harus membaca tegangan analog dan menghasilkan sinyal PWM yang sesuai dan ini harus terjadi lagi dan lagi. Jadi pertama mari kita mulai dengan membaca tegangan analog dari pin A0 karena kita telah terhubung ke potensiometer.
Di sini kita membaca nilai menggunakan fungsi AanalogRead , fungsi ini akan mengembalikan nilai 0-1024 berdasarkan nilai tegangan yang diterapkan ke pin. Kami kemudian menyimpan nilai ini ke variabel yang disebut "val" seperti yang ditunjukkan di bawah ini
int val = analogRead (A0); // baca nilai ADC dari pin A0
Kita harus mengubah nilai 0 hingga 1024 dari ADC menjadi nilai 0 hingga 255 untuk memberikannya ke fungsi PWM. Mengapa kita harus mengubah ini? Saya akan segera mengatakannya, tetapi untuk saat ini ingatlah kita harus pindah agama. Untuk mengonversi satu kumpulan nilai ke kumpulan nilai lainnya, Energia memiliki fungsi peta yang mirip dengan Arduino. Jadi kami mengonversi nilai 0-1204 menjadi 0-255 dan menyimpannya kembali dalam variabel "val".
val = peta (val , 0, 1023, 0, 255); // ADC akan memberikan nilai 0-1023 mengubahnya menjadi 0-255
Sekarang kami memiliki nilai variabel 0-255 berdasarkan posisi potensiometer. Yang harus kita lakukan adalah, gunakan nilai ini pada pin PWM ini dapat dilakukan dengan menggunakan baris berikut.
analogWrite (PWMpin, val); // Tuliskan nilai itu ke pin PWM.
Mari kita kembali ke pertanyaan mengapa 0-255 ditulis ke pin PWM. Nilai 0-255 ini menentukan siklus kerja sinyal PWM. Misal jika nilai signal 0 maka artinya duty cycle 0% untuk 127 maka 50% dan untuk 255 100% seperti yang tertera pada bagian atas artikel ini.
Mengontrol Kecerahan LED dengan PWM:
Setelah Anda memahami perangkat keras dan kode, sekarang saatnya untuk bersenang-senang dengan cara kerja rangkaian. Unggah kode ke papan MSP430G2 dan putar kenop potensiometer. Saat anda memutar kenop tegangan pada pin 2 akan bervariasi yang akan terbaca oleh mikrokontroler dan sesuai dengan tegangan tersebut sinyal PWM akan dibangkitkan pada pin 4. Semakin besar tegangan maka semakin besar pula duty cycle dan sebaliknya.
Sinyal PWM ini kemudian diubah menjadi tegangan analog untuk menyalakan LED. The kecerahan LED berbanding lurus dengan siklus sinyal PWM. Selain LED pada papan tempat memotong roti, Anda juga dapat melihat LED smd (warna merah) yang berbeda kecerahannya mirip dengan led papan tempat memotong roti. LED ini juga terhubung ke pin yang sama, tetapi tidak memiliki jaringan RC sehingga berkedip sangat cepat. Anda dapat mengguncang papan di ruangan gelap untuk memeriksa sifatnya yang berkedip-kedip. Pengerjaan lengkapnya juga bisa dilihat pada video di bawah ini.
Sekian dulu sekian dulu, kita sudah belajar cara menggunakan sinyal PWM di papan MSP430G2, di tutorial selanjutnya kita akan belajar betapa mudahnya mengontrol motor servo menggunakan sinyal PWM yang sama. Jika Anda ragu mempostingnya di bagian komentar di bawah atau di forum untuk bantuan teknis.