Laprak 1






1. Prosedur [kembali]

  • Siapkan alat dan bahan
  • Rangkai alat dan bahan sesuai dengan gambar pada modul
  • Hubungkan hardware pada software
  • Inputkan listing program
  • Uji Coba hasilnya

2. Hardware dan Diagram Blok [kembali]



  • RGB LED



  • RESISTOR

  • Potensiometer


  • Motor Servo
  • Buzzer


3. Rangkaian Simulasi dan Prinsip Kerja [kembali]


Prinsip Kerja:
d
  • Potensiometer sebagai Input Analog:

    • Potensiometer menghasilkan tegangan analog (0–3.3V) tergantung pada posisi putarannya.

    • Raspberry Pi Pico membaca tegangan ini melalui pin ADC (misalnya pin GP26).

    • Nilai ADC ini dikonversi ke nilai digital (misalnya dari 0–65535 atau 0–1023 tergantung konversi).

  • Kontrol Sudut Servo Motor:

    • Nilai dari potensiometer digunakan untuk menghitung sudut servo (biasanya 0° sampai 180°).

    • Raspberry Pi Pico mengirimkan sinyal PWM ke pin kontrol servo (misalnya GP16).

    • Servo bergerak sesuai dengan nilai potensiometer.

  • Pengaturan Warna LED RGB:

    • LED RGB disambungkan ke tiga pin GPIO (misalnya untuk R, G, dan B).

    • Raspberry Pi Pico mengatur tingkat kecerahan masing-masing warna LED dengan sinyal PWM.

    • Warna yang ditampilkan merupakan kombinasi dari ketiga sinyal PWM dan berubah tergantung nilai potensiometer



  • 4. Flowchart dan Listing Program [kembali]


    LISTING PROGRAM:
    from machine import Pin, PWM, ADC
    import utime
    # Definisi pin
    servo = PWM(Pin(16)) # Servo pada GP16
    pot = ADC(Pin(28)) # Potensiometer pada GP28
    led_red = Pin(1, Pin.OUT) # LED Merah pada GP1
    led_green = Pin(2, Pin.OUT) # LED Hijau pada GP2
    led_blue = Pin(3, Pin.OUT) # LED Biru pada GP3
    # Konfigurasi servo (frekuensi 50Hz)
    servo.freq(50)
    # Fungsi map seperti di Arduino
    def map_value(value, in_min, in_max, out_min, out_max):
        return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)
    # Variabel untuk kontrol kedipan LED
    last_blink = utime.ticks_ms()
    led_state = True # Mulai dalam keadaan menyala

    while True:
    # Waktu sekarang
        now = utime.ticks_ms()
    # Membaca nilai potensiometer (0 - 65535)
    pot_value = pot.read_u16()
    # Konversi ke sudut servo (0° - 180°)
    angle = map_value(pot_value, 0, 65535, 0, 180)
    # Konversi sudut ke duty cycle (1500 - 7500) → sesuai servo PWM
    duty = map_value(angle, 0, 180, 1500, 7500)
    servo.duty_u16(duty)
    # Print untuk debugging
    print(f"Pot Value: {pot_value}, Angle: {angle}, Duty: {duty}")
    # Jika sudah lewat 1000 ms (1 detik), ubah status LED RGB
    if utime.ticks_diff(now, last_blink) >= 1000:
        led_state = not led_state
    last_blink = now # reset waktu blink
    # Nyalakan salah satu warna LED berdasarkan sudut
    if 0 <= angle <= 60:
        led_red.value(led_state)
        led_green.value(0)
        led_blue.value(0)
    elif 60 < angle <= 120:
        led_red.value(0)
        led_green.value(led_state)
        led_blue.value(0)
    else:
        led_red.value(0)
        led_green.value(0)


    5. Video Demo [kembali]


    6. Kondisi [kembali]

    Percobaan 6

    Motor Servo, LED RGB, & Potensiometer
    7. Video Simulasi [kembali]



    8. Download file [kembali]
    Download Video Klik Disini
    Download Video Klik Disini

    Tidak ada komentar:

    Posting Komentar

         BAHAN PRESENTASI     MATA KULIAH ELEKTRONIKA 2022 Oleh Muhammad Farhan Pramasta 2210953033 DOSEN PENGAMPU DR. DARWISON, M.T. Referensi ...