import machine
import time
import os
# Fungsi untuk memilih file WAV dari kartu SD
def pilih_file():
# Implementasikan logika untuk menampilkan daftar file WAV dari kartu SD
# Gunakan tombol naik dan turun untuk navigasi dalam daftar
# Gunakan tombol OK untuk memilih file WAV yang dipilih
pass
# Fungsi untuk memainkan file WAV di output terkait
def mainkan_file(file_path):
# Implementasikan logika untuk memainkan file WAV di output terkait
# Misalnya, gunakan modul untuk memutar file WAV dari kartu SD
pass
# Inisialisasi pin untuk tombol dan input
pin_menu = machine.Pin(12, machine.Pin.IN, machine.Pin.PULL_UP)
pin_naik = machine.Pin(13, machine.Pin.IN, machine.Pin.PULL_UP)
pin_turun = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_UP)
pin_ok = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
input_1 = machine.Pin(16, machine.Pin.IN)
input_2 = machine.Pin(17, machine.Pin.IN)
input_3 = machine.Pin(18, machine.Pin.IN)
input_4 = machine.Pin(19, machine.Pin.IN)
# Variabel untuk menyimpan file WAV yang dipilih untuk masing-masing input
file_input_1 = None
file_input_2 = None
file_input_3 = None
file_input_4 = None
# Variabel untuk menandai apakah menu pengaturan sedang aktif
menu_pengaturan_aktif = False
# Inisialisasi kartu SD
sd = machine.SDCard(slot=3, width=1, sck=18, miso=19, mosi=23, cs=22)
os.mount(sd, '/sd')
# Inisialisasi LCD dan tampilkan teks saat dinyalakan
from machine import I2C
# Konfigurasi I2C untuk layar
i2c_lcd = I2C(0, scl=machine.Pin(22), sda=machine.Pin(21), freq=400000)
# Tampilkan teks pada layar
i2c_lcd.writeto(0x27, 'JAYA AUDIO BALI')
# Tunggu beberapa saat
time.sleep(2)
# Bersihkan layar
i2c_lcd.writeto(0x27, bytearray([0x01])) # Clear display command
# Tampilkan teks pada layar
i2c_lcd.writeto(0x27, 'DM5 ESP32')
# Tunggu beberapa saat
time.sleep(2)
# Bersihkan layar
i2c_lcd.writeto(0x27, bytearray([0x01])) # Clear display command
# Main loop
while True:
# Periksa tombol menu
if not pin_menu.value(): # Jika tombol menu ditekan
start_time = time.ticks_ms() # Catat waktu saat tombol ditekan
while not pin_menu.value(): # Tunggu hingga tombol dilepas
pass
# Tombol menu dilepas, hitung selisih waktu
end_time = time.ticks_ms()
press_duration = end_time - start_time
# Jika tombol ditekan selama lebih dari 3 detik
if press_duration >= 3000:
# Tampilkan menu pengaturan
menu_pengaturan_aktif = True
pilih_file()
# Jika menu pengaturan sedang aktif
if menu_pengaturan_aktif:
# Periksa tombol OK untuk menyimpan pengaturan
if not pin_ok.value():
# Menyimpan pengaturan dan keluar dari menu pengaturan
menu_pengaturan_aktif = False
# Jika input 1 diaktifkan dan file WAV telah dipilih
if input_1.value() and file_input_1:
mainkan_file(file_input_1)
# Jika input 2 diaktifkan dan file WAV telah dipilih
if input_2.value() and file_input_2:
mainkan_file(file_input_2)
# Jika input 3 diaktifkan dan file WAV telah dipilih
if input_3.value() and file_input_3:
mainkan_file(file_input_3)
# Jika input 4 diaktifkan dan file WAV telah dipilih
if input_4.value() and file_input_4:
mainkan_file(file_input_4)