from machine import Pin, I2C
from time import sleep
from pico_i2c_lcd import I2cLcd
# Inisialisasi I2C dan LCD
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
I2C_ADDR = i2c.scan()[0] # Deteksi otomatis alamat I2C
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)
# Inisialisasi PIR
pir_merah = Pin(2, Pin.IN) # GP2 untuk benda merah
pir_hijau = Pin(3, Pin.IN) # GP3 untuk benda hijau
# Inisialisasi counter dan status deteksi sebelumnya
counter_merah = 0
counter_hijau = 0
pir_merah_prev = 0
pir_hijau_prev = 0
# Tampilkan pesan awal
lcd.clear()
lcd.putstr("Counter Dimulai")
sleep(2)
lcd.clear()
# Loop utama
while True:
pir_merah_now = pir_merah.value()
pir_hijau_now = pir_hijau.value()
# Deteksi tepi naik PIR merah
if pir_merah_now == 1 and pir_merah_prev == 0:
counter_merah += 1
# Deteksi tepi naik PIR hijau
if pir_hijau_now == 1 and pir_hijau_prev == 0:
counter_hijau += 1
# Simpan status sebelumnya
pir_merah_prev = pir_merah_now
pir_hijau_prev = pir_hijau_now
# Tampilkan ke LCD
lcd.clear()
lcd.move_to(0, 0)
lcd.putstr("Merah : {}".format(counter_merah))
lcd.move_to(0, 1)
lcd.putstr("Hijau : {}".format(counter_hijau))
sleep(0.5)