from machine import Pin, I2C, PWM
import ssd1306
import time
# Setup I2C untuk OLED di Pin 0 dan Pin 1
i2c = I2C(0, scl=Pin(1), sda=Pin(0))
# OLED display 128x64
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
# Fungsi tampilkan teks pada OLED
def display_text(line1, line2):
oled.fill(0)
oled.text(line1, 0, 0)
oled.text(line2, 0, 30)
oled.show()
# Fungsi untuk memainkan beep suara speaker dengan PWM
def play_beep(pin_no=15, freq=1000, duration=300):
speaker = PWM(Pin(pin_no))
speaker.freq(freq)
speaker.duty_u16(32768) # Set duty cycle 50%
time.sleep_ms(duration)
speaker.duty_u16(0)
speaker.deinit()
# Contoh nominal QRIS yang akan ditampilkan
nominal = 'Rp 25.000'
# Tampilkan teks QRIS dan nominal di OLED
display_text("QRIS Soundbox", nominal)
# Putar beep tanda siap
play_beep()
time.sleep(0.5)
play_beep(freq=1500)
# Loop utama (kosongkan atau untuk fungsi berikutnya)
while True:
time.sleep(10)