import machine
import time
import pcd8544_fb # Nokia 5110 ekran kütüphanesi
# --- Pin Tanımlamaları ---
lcd_sck_pin = 18; lcd_mosi_pin = 19; lcd_dc_pin = 16
lcd_cs_pin = 17; lcd_rst_pin = 20; lcd_bl_pin = 21
mux_en_pin = 6; mux_s_pins_nums = [2, 3, 4, 5]
mux_sig_pin = 15 # GP15 OLARAK DEĞİŞTİRİLDİ
# Diğer pinler (buzzer, led) tanımlı kalabilir, bu testte kullanılmayacaklar.
buzzer_gpio_pin = 13
led_gpio_pin = 14
# --- Donanımları Ayarlama ---
# LCD
lcd_sck = machine.Pin(lcd_sck_pin); lcd_mosi = machine.Pin(lcd_mosi_pin)
lcd_dc = machine.Pin(lcd_dc_pin); lcd_cs = machine.Pin(lcd_cs_pin)
lcd_rst = machine.Pin(lcd_rst_pin); lcd_bl = machine.Pin(lcd_bl_pin, machine.Pin.OUT)
spi = machine.SPI(0, baudrate=2000000, sck=lcd_sck, mosi=lcd_mosi)
lcd = pcd8544_fb.PCD8544_FB(spi, lcd_cs, lcd_dc, lcd_rst)
lcd_bl.on()
def display_text(line1, line2="", line3="", line4=""):
lcd.fill(0); lcd.text(line1,0,0,1); lcd.text(line2,0,10,1); lcd.text(line3,0,20,1); lcd.text(line4,0,30,1); lcd.show()
display_text(f"GP{mux_sig_pin} PULL_UP", "Testi Basliyor", "MUX Devredisi", "...")
time.sleep(2)
mux_en = machine.Pin(mux_en_pin, machine.Pin.OUT)
# mux_s = [machine.Pin(p, machine.Pin.OUT) for p in mux_s_pins_nums] # Bu test için S pinlerine gerek yok
mux_en.high() # MUX'ı devredışı bırak (SIG pini yüksek empedanslı olur)
print("MUX devredisi birakildi (EN=HIGH).")
mux_sig = machine.Pin(mux_sig_pin, machine.Pin.IN, machine.Pin.PULL_UP)
time.sleep_ms(50) # PULL_UP'ın oturması için kısa bir bekleme
val_gp_direct = mux_sig.value()
print(f"GP{mux_sig_pin} (mux_sig) dogrudan okuma (PULL_UP ile, MUX devredisi): {val_gp_direct}")
if val_gp_direct == 1:
print(f"GP{mux_sig_pin} PULL_UP testi: BASARILI! (Deger 1 okundu)")
display_text(f"GP{mux_sig_pin} Testi:", "PULL_UP OK!", "Deger = 1", ":)")
else:
print(f"GP{mux_sig_pin} PULL_UP testi: BASARISIZ! (Deger {val_gp_direct} okundu, 1 bekleniyordu)")
display_text(f"GP{mux_sig_pin} Testi:", "PULL_UP SORUNU!", f"Deger = {val_gp_direct}", ":(")
print(f"GP{mux_sig_pin} PULL_UP testi bitti.")
while True:
pass