from machine import Pin
import time
F_OFF_DL_FR_DR = False
F_OFF_DL_FR_AS = False
F_OFF_NEW_POWER_SW = False
IN_RR_DOOR_SW = Pin( 0, Pin.IN, Pin.PULL_UP ) # リア右 ドア スイッチ(スライドドア開閉センサー)
IN_RL_DOOR_SW = Pin( 1, Pin.IN, Pin.PULL_UP ) # リア左 ドア スイッチ(スライドドア開閉センサー)
IN_DL_FR_DR = Pin( 2, Pin.IN, Pin.PULL_UP ) # ドアロック フロント ドライバー(ドアノブロックスイッチ)
IN_DL_FR_AS = Pin( 3, Pin.IN, Pin.PULL_UP ) # ドアロック フロント アシスタント(ドアノブロックスイッチ)
IN_NEW_POWER_SW = Pin( 4, Pin.IN, Pin.PULL_UP ) # 新設パワースイッチ
OUT_RR_DOOR_SW = Pin( 16, Pin.OUT ) # リア右 ドア スイッチ(スライドドア開閉センサー)
OUT_RL_DOOR_SW = Pin( 17, Pin.OUT ) # リア左 ドア スイッチ(スライドドア開閉センサー)
OUT_DL_FR_DR = Pin( 18, Pin.OUT ) # ドアロック フロント ドライバー(ドアノブロックスイッチ)
OUT_DL_FR_AS = Pin( 19, Pin.OUT ) # ドアロック フロント アシスタント(ドアノブロックスイッチ)
OUT_SS21 = Pin( 20, Pin.OUT ) # Powerスイッチ+
OUT_SS22 = Pin( 21, Pin.OUT ) # Powerスイッチ-
OUT_BRK_DIAG = Pin( 22, Pin.OUT ) # ブレーキスイッチ
# 無限ループでボタンの状態を監視
while True:
# 右のスライドドアが開いた場合
if IN_RR_DOOR_SW.value() == 0:
OUT_RR_DOOR_SW.on() # 右スライドドアを開いた事にする
# 左のスライドドアが開いた場合
if IN_RL_DOOR_SW.value() == 0:
OUT_RL_DOOR_SW.on() # 左スライドドアを開いた事にする
# 右のスライドドアが閉じた場合
if IN_RR_DOOR_SW.value() == 1:
OUT_RR_DOOR_SW.off() # 右スライドドアを閉じた事にする
# 左のスライドドアが閉じた場合
if IN_RL_DOOR_SW.value() == 1:
OUT_RL_DOOR_SW.off() # 左スライドドアを閉じた事にする
# 右ロックボタンが押された場合
if IN_DL_FR_DR.value() == 0:
if F_OFF_DL_FR_DR == True:
OUT_RR_DOOR_SW.off() # 右スライドドアを閉じた事にする
OUT_RL_DOOR_SW.off() # 左スライドドアを閉じた事にする
time.sleep(0.1)
OUT_DL_FR_DR.on() # 右ロックボタンを押した事にする
time.sleep(0.1)
OUT_DL_FR_DR.off() # 右ロックボタンを離した事にする
F_OFF_DL_FR_DR = False
else:
F_OFF_DL_FR_DR = True
# 左ロックボタンが押された場合
if IN_DL_FR_AS.value() == 0:
if F_OFF_DL_FR_AS == True:
OUT_RR_DOOR_SW.off() # 右スライドドアを閉じた事にする
OUT_RL_DOOR_SW.off() # 左スライドドアを閉じた事にする
time.sleep(0.1)
OUT_DL_FR_AS.on() # 右ロックボタンを押した事にする
time.sleep(0.1)
OUT_DL_FR_AS.off() # 右ロックボタンを離した事にする
F_OFF_DL_FR_AS = False
else:
F_OFF_DL_FR_AS = True
# NewPowerボタンが押された場合
if IN_NEW_POWER_SW.value() == 0:
if F_OFF_NEW_POWER_SW == True:
OUT_BRK_DIAG.on()
time.sleep(0.1)
OUT_SS21.on()
OUT_SS22.on()
time.sleep(0.1)
OUT_SS21.off()
OUT_SS22.off()
time.sleep(0.1)
OUT_BRK_DIAG.off()
F_OFF_NEW_POWER_SW = False
else:
F_OFF_NEW_POWER_SW = True
# BOOTSELボタンが押された場合
if rp2.bootsel_button() == 1:
machine.Pin(25, machine.Pin.OUT).on() # LEDを点灯
else:
machine.Pin(25, machine.Pin.OUT).off() # BOOTSELボタンが押されていない場合はLEDを消灯
time.sleep(0.1) # 0.1秒待機して次のループへ