LA 2 MODUL 2 PRAKTIKUM UP UC




Percobaan 7
Led RGB, Buzzer, Soil Moisture, & Push Button

1. Prosedur
[Kembali]

  1. Membuat rangkaian sesuai dengan percobaan 7.
  2. Buat program untuk STM32 di software STM32 CUBE ID.
  3. Setelah program selesai di buat, inputkan kode tersebut kedalam STM32 dengan stlink.
  4. Untuk simulasi, ketika Soil Moisture Sensor mendeteksi kelembaban pada tanah (kadar air banyak) maka LED RGB akan hidup dan buzzer berbunyi.
  5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. STM32F103C8



2. Resistor

3. Push Button

push button 4 kaki di Sabara Mikro | Tokopedia

4. Breadboard
BREADBOARD / PROJECTBOARD / PROTOBOARD 400 HOLES di M-kontrol | Tokopedia
 
5. RGB LED
Jual LED RGB 4 PIN WARNA MERAH HIJAU BIRU 5mm ( ARDUINO ) - Common Cathode  - Jakarta Barat - Ardushop-id | Tokopedia
 
6. Buzzer
Buzzer
7. Soil Moisture Sensor



Diagram Blok  :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi Sebelum dirunning:


Rangkaian Simulasi Setelah dirunning:

Prinsip Kerja : 
    
Soil Moisture sebagai input yang mendeteksi apakah tanah memiliki kadar air yang cukup atau tidak (mendeteksi kelembaban tanah). ketika tanah memiliki kadar air yang cukup, maka logam dari sensor akan mudah mengaliri arus listrik sehingga sensor memberi sinyal kepada output (LED dan Buzzer) untuk menyalakan keduanya. 
Sebaliknya, jika tanah tidak memiliki kelembaban yang cukup, maka resistansi antara kedua ujung logam akan menjadi tinggi sehingga arus tidak mengalir untuk menyalakan kedua output (LED dan Buzzer).

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(27, 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 mendeteksi perubahan cahaya


# 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 + 200:
        led_should_blink = True         # Nyalakan mode kedip
        buzzer.duty_u16(int(65535 * 0.45))  # Duty Cycle 45%


        start_time = utime.ticks_ms()


        # LED berkedip selama 4 detik
        while utime.ticks_diff(utime.ticks_ms(), start_time) <= 4000:     # Kedip selama 4 detik
           
            for i in range(500, 1000, 100):  # Variasi frekuensi buzzer agar suara tidak monoton
                buzzer.freq(i)
                utime.sleep(0.1)  # Memberi waktu untuk setiap frekuensi, sementara LED tetap berkedip


        #Kedip LED setiap 0.5 detik        
            current_time = utime.ticks_ms()
            if utime.ticks_diff(current_time, last_blink_time) >= 500:  # 0.5 detik kedip
                led_state = not led_state
                led.value(led_state)    #Membuat LED menyala dan mati selang 0,5 detik (kedip)
                last_blink_time = current_time
            utime.sleep(0.05)  # Delay kecil supaya tidak terlalu berat CPU


    # Setelah 4 detik, matikan LED dan buzzer
        led.off()
        buzzer.duty_u16(0)


    else:
        led_should_blink = False
        led.off()
        buzzer.duty_u16(0)


    utime.sleep(0.1)  # Delay antar pembacaan sensor

5. Video Demo [Kembali]




6. Analisa [Kembali]

7. Download File [Kembali]

Download HTML [Download]
Download Video Demo [Download]
Datasheet STM32 [Download]
Datasheet Push Button [Download]
Datasheet RGB LED [Download]
Datasheet Buzzer [Download]
 

Komentar

Postingan populer dari blog ini

MODUL 1 PRAKTIKUM UP & UC

Modul 1 Praktikum Sistem Digital

Modul 3 Praktikum Sistem Digital