Tugas Pendahuluan 1 M2




PERCOBAAN 6 KONDISI 1

1. Prosedur[Kembali]

  • Rangkai semua komponen di Wokwi sesuai dengan percobaan pada modul 
  • Buat program untuk Rspberry pi pico, sesuaikan konfigurasinya dengan rangkaian pada wokwi dan kondisi yang dipakai
  • Masukkan Program ke wokwi (micropython)
  • Simulasikan rangkaian

2. Hardware dan Diagram Blok[Kembali]

1. Raspberry PI PICO



2. LED


3. Resistor



4. Motor Servo


5. Potensio






3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian Simulasi: 





Prinsip Kerja:

Hasil dari potensio akan menghasilkan sinyal analog yang dikonversikan menjadi bit yang nanti bit itu akan dimasukan menjadi inputan pada motor servo, yang dimana sudut pada motor servo ini akan mempengaruhi kondisi pada kodingan pada led rgb nya

4. Flowchart dan Listing Program[Kembali] 


Flowchart:




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

# Loop utama
while True:
    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 servo (1500 - 7500)
    duty = map_value(angle, 0, 180, 1500, 7500)
    servo.duty_u16(duty)

    # Debug output
    print(f"Pot Value: {pot_value}, Angle: {angle}, Duty: {duty}")

    # Toggle LED state setiap 2 detik (2000 ms)
    if utime.ticks_diff(now, last_blink) >= 2000:
        led_state = not led_state
        last_blink = now

    # Kontrol LED berdasarkan sudut servo
    if 0 <= angle <= 60:
        led_red.value(led_state)
        led_green.value(0)
        led_blue.value(led_state)
    elif 60 < angle <= 90:
        led_red.value(led_state)
        led_green.value(0)
        led_blue.value(0)
    elif 90 < angle <= 120:
        led_red.value(0)
        led_green.value(0)
        led_blue.value(0)
    else:  # 120 - 180
        led_red.value(0)
        led_green.value(0)
        led_blue.value(led_state)

    utime.sleep_ms(50)  # Delay pendek agar pembacaan stabil



5. Kondisi[Kembali]
Buatlah rangkaian seperti gambar pada percobaan 6, Buatlah ketika servo 0° - 60° (Merah & Biru menyala, Hijau mati), 60° - 90° (Merah menyala, Hijau & Biru mati), 90° - 120° (Semua LED mati), dan 120° - 180° (Biru menyala, Merah & Hijau mati). Masing-masing LED berkedip 2 Detik

6. Video Simulasi[Kembali]





7. Download File[Kembali]

Rangkaian [Klik disini]
Video simulasi [download]
Datasheet Raspberry Pi Pico [Download]
Datasheet Resistor [Download]
Datasheet LED [Download]



Komentar

Postingan populer dari blog ini

Modul 1 Pratikum Mikro

Modul 1 Pratikum Sistem Digital

Modul 2 Pratikum SISDIG