KEY_ROW_1 = 0 # --1 2 3 Board pin 2 KEY_ROW_2 = 3 # --4 5 6 Board pin 7 (far right) KEY_ROW_3 = 2 # --7 8 9 Board pin 6 KEY_ROW_4 = 1 # --# 0 * Board pin 4 # | | | KEY_COL_1 = 9 # --+ | | Board pin 3 KEY_COL_2 = 8 # ----+ | Board pin 1 (far left) KEY_COL_3 = 10 # ------+ Board pin 5 import time import SX1509 as SX io = SX.SX1509(0x3F) io.reset() time.sleep(0.1) # Needed by the keyscan engine and LED driver io.set_clock(internal_oscillator=True) # Rows (outputs) io.set_dirs_a(0b11110000) # Lower 4 pins are outputs io.set_open_drains_a(0b00001111) # Lower 4 pins are open-drain # Columns (inputs) io.set_dirs_b(0b11110111) # All inputs except for LED io.set_pull_ups_b(0b11110111) # All inputs pulled up io.write_register(SX.RegDebounceConfig, 0b00000011) # 4ms ... io.write_register(SX.RegDebounceEnableB, 0b11110111) # All inputs debounced io.write_register(SX.RegKeyConfig1, 0b00000100) # 16ms ...
# Digital OUT TPR_pin = 6 Heater_pin = 7 Stirrer_pin = 8 Lift_pin = 9 Lift2_pin = 10 Crusher_pin = 11 Cleaning_Pump_pin = 12 Circulator_pin = 13 Cooling_Fan_pin = 13 Pump_pin = 13 #---SET SX1509---------------------------------------------------------- addr = 0x3e sx = SX1509.SX1509(addr) ctl = Control.Control(sx) #======================================================================= #---GET Temperature----------------------------------------------------- def get_temp(): ''' heater temperature = top_temp = internal_temp stirrer temperature = bottom_temp = external_temp ''' global avg_bottom_temp, avg_top_temp global arr_count global bottom_temp_arr, top_temp_arr
PIN_LED_B_RIGHT = 4 PIN_VUSB = 1 PIN_LBO = 2 PIN_AMP_SD = 3 PIN_RESET_BUTTON = 10 DEVICE_ADDRESS = 0x3E # device address of SX1509 #Set up I2C comm_port = busio.I2C(board.SCL, board.SDA) device = I2CDevice(comm_port, DEVICE_ADDRESS) #Initialize the expander IOExpander = SX1509.SX1509(comm_port) IOExpander.clock(oscDivider=4) IOExpander.debounceTime(32) #Set up pins IOExpander.pinMode(PIN_LED_R_LEFT, IO_Types.PIN_TYPE_ANALOG_OUTPUT) IOExpander.pinMode(PIN_LED_G_LEFT, IO_Types.PIN_TYPE_ANALOG_OUTPUT) IOExpander.pinMode(PIN_LED_B_LEFT, IO_Types.PIN_TYPE_ANALOG_OUTPUT) IOExpander.pinMode(PIN_LED_R_RIGHT, IO_Types.PIN_TYPE_ANALOG_OUTPUT) IOExpander.pinMode(PIN_LED_G_RIGHT, IO_Types.PIN_TYPE_ANALOG_OUTPUT) IOExpander.pinMode(PIN_LED_B_RIGHT, IO_Types.PIN_TYPE_ANALOG_OUTPUT) IOExpander.pinMode(PIN_VUSB, IO_Types.PIN_TYPE_INPUT, True) IOExpander.pinMode(PIN_LBO, IO_Types.PIN_TYPE_INPUT, True) IOExpander.pinMode(PIN_AMP_SD, IO_Types.PIN_TYPE_OUTPUT) IOExpander.pinMode(PIN_RESET_BUTTON, IO_Types.PIN_TYPE_INPUT_PULLDOWN)