Pada rangkaian ini,
potensiometer dihubungkan ke pin GP26 yang berfungsi sebagai input analog
(ADC0) pada Raspberry Pi Pico. Potensiometer ini akan digunakan untuk
menghasilkan nilai analog yang kemudian diubah oleh mikrokontroler menjadi nilai
digital 16-bit dengan rentang antara 0 hingga 65535. Nilai tersebut dibaca
secara terus-menerus dalam loop utama program.
Nilai digital dari
potensiometer kemudian digunakan untuk dua fungsi sekaligus. Pertama, nilai ini
dipetakan ke dalam rentang sudut 0 hingga 180 derajat untuk menentukan posisi
servo motor. Sudut tersebut kemudian dikonversikan menjadi nilai duty cycle PWM
(antara 1500 hingga 7500) agar sesuai dengan kebutuhan sinyal servo, dan
dikirimkan melalui pin GP16. Akibatnya, ketika pengguna memutar potensiometer,
posisi lengan servo akan bergerak secara proporsional mengikuti nilai sudut
yang dihasilkan.
Fungsi kedua dari nilai
potensiometer adalah untuk mengatur frekuensi nada yang dihasilkan oleh buzzer.
Nilai potensiometer yang sama dipetakan ke dalam rentang frekuensi 200 Hz
hingga 2000 Hz dan kemudian dikirimkan sebagai sinyal PWM ke buzzer melalui pin
GP14. Duty cycle buzzer diatur tetap pada nilai 30000 untuk menjaga suara tetap
terdengar jelas. Dengan demikian, ketika potensiometer diputar, pengguna tidak
hanya melihat perubahan posisi pada servo, tetapi juga mendengar perubahan
frekuensi suara buzzer.
Program berjalan secara
terus-menerus, membaca nilai potensiometer dan memperbarui sinyal PWM untuk
servo dan buzzer, sehingga sistem ini sangat responsif terhadap perubahan
posisi potensiometer.
Tidak ada komentar:
Posting Komentar