Minggu, 28 April 2019

TP 1 M2 Praktikum Mikroprosesor dan Mikrokontroler 2025

 




1. Prosedur
[Kembali]

- Rangkaian

    Rangkaian ini menggunakan Raspberry Pi Pico sebagai pusat kendali, yang terhubung dengan modul sensor cahaya berbasis LDR (Light Dependent Resistor). Sensor ini berfungsi untuk mengukur intensitas cahaya (lux) di sekitarnya. Sensor mendapatkan catu daya dari pin 3.3V dan GND Raspberry Pi Pico, sedangkan sinyal keluarannya dihubungkan ke salah satu pin GPIO untuk dibaca sebagai input analog atau digital. Pada rangkaian ini juga terdapat LED merah yang disambungkan ke salah satu pin GPIO melalui resistor pembatas arus, dengan katoda LED terhubung ke ground. Selain itu, buzzer dihubungkan ke pin GPIO lain dan ke ground, yang berfungsi sebagai output suara.

    Secara keseluruhan, sistem ini bekerja dengan mendeteksi tingkat pencahayaan di lingkungan sekitar melalui sensor LDR. Raspberry Pi Pico kemudian memproses data tersebut; jika pencahayaan berada di bawah atau di atas ambang batas tertentu, LED akan menyala sebagai indikator visual, dan buzzer akan berbunyi sebagai peringatan suara. Semua sambungan memperhatikan kebutuhan tegangan dan arus masing-masing komponen untuk memastikan rangkaian berjalan dengan stabil.


2. Hardware dan Diagram Blok [Kembali]

Raspberry Pi Pico sebagai mikrokontroler utama untuk mengendalikan input dari push button dan output ke LED. 


- Buzzer berfungsi sebagai output suara. Saat kondisi tertentu terpenuhi (misalnya cahaya terlalu redup atau terlalu terang), buzzer akan aktif dan mengeluarkan bunyi sebagai peringatan atau notifikasi.





 
- LED merah digunakan sebagai indikator visual yang menyala ketika menerima sinyal dari mikrokontroler. 


- Resistor dipasang seri dengan LED untuk membatasi arus dan mencegah kerusakan. Koneksi daya menggunakan pin VCC (3.3V)


Modul Sensor Cahaya (LDR Module), merupakan modul sensor berbasis LDR (Light Dependent Resistor) yang berfungsi untuk mendeteksi intensitas cahaya lingkungan. Sensor ini menghasilkan sinyal yang berubah tergantung pada tingkat pencahayaan, yang kemudian dikirimkan ke Raspberry Pi Pico untuk diproses.



 - Kabel Jumper, digunakan untuk menghubungkan semua komponen satu sama lain di atas breadboard atau langsung antar header, memastikan hubungan listrik antar komponen berlangsung dengan baik.


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

- Rangkaian


- Prinsip kerja

Rangkaian ini berfungsi untuk mendeteksi tingkat pencahayaan di lingkungan sekitar menggunakan sensor cahaya berbasis LDR. Sensor ini akan membaca intensitas cahaya dan mengubahnya menjadi sinyal yang dapat dibaca oleh Raspberry Pi Pico. Output dari sensor dihubungkan ke salah satu pin GPIO Pico, yang selanjutnya dipantau secara berkala.

Ketika Raspberry Pi Pico membaca nilai pencahayaan di bawah atau di atas batas ambang (threshold) yang telah diprogramkan, mikrokontroler akan mengaktifkan LED dan buzzer. LED menyala sebagai indikator visual bahwa intensitas cahaya tidak sesuai dengan kondisi normal, sementara buzzer berbunyi untuk memberikan peringatan suara. Jika tingkat pencahayaan kembali ke rentang normal, Raspberry Pi Pico akan mematikan LED dan buzzer.

Selama sistem bekerja, Raspberry Pi Pico terus menerus membaca data sensor dan mengatur output LED dan buzzer secara real-time berdasarkan perubahan intensitas cahaya.


4. Flowchart dan Listing Program [Kembali]



Flowchart :



Listing Program :

from machine import Pin, PWM, ADC

import utime

 

# Pin Setup

ldr = ADC(28)         # Pin AO dari LDR ke GP28

ldr_digital = Pin(0, Pin.IN)  # Pin DO dari LDR ke GP0

led = Pin(6, Pin.OUT)  # LED di GP6

buzzer = PWM(Pin(15))  # Buzzer di GP15 dengan PWM

 

# Konfigurasi PWM Buzzer

buzzer.freq(1000)      # Frekuensi awal buzzer (1kHz)

buzzer.duty_u16(0)     # Mulai dengan buzzer mati

 

# Fungsi untuk mengonversi nilai ADC ke lux 

def adc_to_lux(adc_value):

    return (adc_value / 65535) * 900 + 10  # Rentang 10 - 1000 lux

 

# Variabel untuk menyimpan kondisi normal awal

lux_normal = 0

 

# Variabel untuk kedip LED

last_blink_time = utime.ticks_ms()

led_state = False

led_should_blink = False  # hanya True saat kondisi mendeteksi perubahan cahaya

signifikan

 

# Loop utama

while True:

    analog_value = ldr.read_u16()

    lux = adc_to_lux(analog_value)  

    if lux_normal == 0:

lux_normal = lux

print(f"Lux Normal: {lux_normal}")

print(f"LDR Value: {analog_value} | Lux: {lux}")

if lux > lux_normal + 50:

led_should_blink = True  # nyalakan mode kedip

buzzer.duty_u16(30000)   # nyalakan buzzer

for i in range(500, 1000, 100):  # variasi frekuensi buzzer

buzzer.freq(i)

utime.sleep(0.1)

else:

led_should_blink = False

led.off()

buzzer.duty_u16(0)

# Kedip LED jika perlu

if led_should_blink:

current_time = utime.ticks_ms()

if utime.ticks_diff(current_time, last_blink_time) >= 1000:

led_state = not led_state

led.value(led_state)

last_blink_time = current_time

utime.sleep(0.1)  # sedikit delay supaya tidak terlalu cepat baca LDR


5. Video Demo [Kembali]



6. Kondisi [Kembali]

Kondisi 8
Buatlah rangkaian seperti gambar  pada percobaan 1, buatlah ketika LDR membaca lebih gelap  dari normal sebesar 300 LUX, LED merah dup berkedip selama 1 detik dan Duty Cycle Buzzer 15%


7. Video Simulasi [Kembali]



8. Download File[Kembali]

File HTML [disini]
Rangkaian [disini]
Listing Program [disini]
Video [disini]
Datasheet Raspberry Pi Pico [disini]

Datasheet  LDR [disini]

0 comments:

Posting Komentar