tp modul 2 percobaan 2
1. Prosedur [kembali]
- Siapkan alat dan bahan
- Rangkai alat dan bahan sesuai dengan gambar pada modul
- Gunakan web Wokwi untuk mempermudah dalam merangkai
- Software yang digunakan yaitu Thonny
- Hubungkan hardware pada software
- Inputkan listing program sesuai dengan modul
- Running untuk mendapatkan hasilnya
2. Hardware dan Diagram Blok [kembali]
- Rasberry Pi Pico
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
prinsip kerja :
Rangkaian menggunakan Raspberry Pi Pico yang menghubungkan:
- Potensiometer (alat putar/manual input)
- Servo motor (motor penggerak posisi)
- Buzzer (pengeras suara kecil)
Berikut penjelasan prinsip kerjanya:
- Potensiometer sebagai input analog: Potensiometer membaca perubahan resistansi saat diputar. Nilai resistansi ini diubah menjadi tegangan analog yang dibaca oleh Raspberry Pi Pico melalui salah satu pin ADC (Analog to Digital Converter).
- Raspberry Pi Pico memproses sinyal: Pico membaca nilai ADC dari potensiometer. Berdasarkan nilai itu, Pico menghitung posisi yang diinginkan untuk servo motor.
- Servo Motor dikontrol: Pico mengirimkan sinyal PWM (Pulse Width Modulation) ke servo motor. Durasi pulsa PWM menentukan sudut rotasi servo, sehingga sudut servo akan mengikuti putaran potensiometer.
- Buzzer sebagai notifikasi: Buzzer diaktifkan saat kondisi tertentu (misalnya saat nilai potensiometer melewati batas tertentu, atau saat servo bergerak ke sudut maksimum/minimum). Pico mengontrol buzzer dengan memberikan logika HIGH (nyala) atau LOW (mati) ke pin buzzer.
Jalur kabel di gambar:
- Potensiometer
GND → GND Pico
VCC → 3.3V Pico
SIG → pin ADC di Pico
- Servo Motor:
Kabel coklat → GND
Kabel merah → VCC (mungkin 5V dari Pico atau eksternal)
Kabel oranye → Sinyal PWM dari Pico
- Buzzer:
(+) ke salah satu pin digital output Pico
(-) ke GND Pico
4. Flowchart dan Listing Program [kembali]
listning program :
#ADIB NAUFAL SAYYID
#PERCOBAAN 4 KONDISI 1
#MODUL 2 PRAKTIKUM MIKRO
from machine import Pin, PWM, ADC
from time import sleep
# Inisialisasi
pot = ADC(26) # Potensiometer di GP26 (ADC0)
servo = PWM(Pin(16)) # Servo di GP16
buzzer = PWM(Pin(14)) # Buzzer di GP14
# Konfigurasi frekuensi PWM
servo.freq(50) # Frekuensi servo 50Hz
buzzer.freq(1000) # Frekuensi buzzer 1kHz (bisa diubah)
def map_value(value, in_min, in_max, out_min, out_max):
# Fungsi untuk mapping nilai ADC ke rentang PWM
return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
while True:
pot_value = pot.read_u16() # Baca nilai ADC dari 0-65535
angle = map_value(pot_value, 0, 65535, 0, 180) # Mapping ke sudut 0-180 derajat
# Konversi sudut ke sinyal PWM servo (1300–7700 kira-kira duty untuk 0-180 derajat)
duty = map_value(angle, 0, 180, 1300, 7700)
servo.duty_u16(duty)
# Kondisi buzzer
if angle <= 0 or angle >= 180:
buzzer.duty_u16(30000) # Buzzer bunyi 50% duty cycle
else:
buzzer.duty_u16(0) # Buzzer mati
sleep(0.05) # Delay kecil untuk kestabilan pembacaan
5. Video Demo [kembali]
6. Kondisi [kembali]
Buatlah rangkaian seperti gambar pada percobaan 4, jika nilai pada potensiometer diperbesar maka servo bergerak searah jarum jam dan jika jika sudut servo <0 ° dan >180 ° buzzer berbunyi7. Video Simulasi [kembali]
8. Download file [kembali]
Komentar
Posting Komentar