From fd686ca32c7424abc806d585d9bfade546947d9d Mon Sep 17 00:00:00 2001 From: Clement Remi <remi.clement@irstea.fr> Date: Tue, 7 Dec 2021 14:50:24 +0100 Subject: [PATCH] new python file for testing mux_board --- test_mux_board.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 test_mux_board.py diff --git a/test_mux_board.py b/test_mux_board.py new file mode 100644 index 00000000..62188d83 --- /dev/null +++ b/test_mux_board.py @@ -0,0 +1,78 @@ +""" +Created on Tue Dec 7 06:39:33 2021 +Code for testing switch MUX for ohmpi 2 +@author: remi.clement +""" + +import time , board, busio,adafruit_tca9548a +from adafruit_mcp230xx.mcp23017 import MCP23017 +import digitalio +from digitalio import Direction + + +address=0X71# choose the mux board address +activation_time=1 # choose your activation time in second + + +i2c = busio.I2C(board.SCL, board.SDA) #activation du protocle I2C +def switch_mux_on(electrode,address): + tca= adafruit_tca9548a.TCA9548A(i2c, address) + if electrode < 17: + nb_i2C=7 + a=electrode + elif electrode > 16 and electrode< 33: + nb_i2C=6 + a=electrode-16 + elif electrode > 32 and electrode < 49: + nb_i2C=5 + a=electrode-32 + elif electrode > 48 and electrode < 65: + nb_i2C=4 + a=electrode-48 + + mcp2 = MCP23017(tca[nb_i2C]) + mcp2.get_pin(a-1).direction=Direction.OUTPUT + mcp2.get_pin(a-1).value=True + +def switch_mux_off(electrode,address): + tca= adafruit_tca9548a.TCA9548A(i2c, address) + if electrode < 17: + nb_i2C=7 + a=electrode + elif electrode > 16 and electrode < 33: + nb_i2C=6 + a=electrode-16 + elif electrode > 32 and electrode < 49: + nb_i2C=5 + + a=electrode-32 + elif electrode > 48 and electrode < 65: + nb_i2C=4 + a=electrode-48 + + mcp2 = MCP23017(tca[nb_i2C]) + mcp2.get_pin(a-1).direction=digitalio.Direction.OUTPUT + mcp2.get_pin(a-1).value=False + +a=input(' if vous want try 1 channel choose 1, if you want try all channel choose 2!') + +if a=='1': + b=0 + print ("run channel by channel test") + electrode=int(input(' Choose your electrode number (integer):')) + switch_mux_on(electrode,address) + print('electrode:',electrode,' activate' ) + time.sleep(activation_time) + switch_mux_off(electrode,address) + print('electrode:',electrode,' deactivate' ) + +if a== '2': + for electrode in range(1, 65): + switch_mux_on(electrode,address) + print('electrode:',electrode,' activate' ) + time.sleep(activation_time) + switch_mux_off(electrode,address) + print('electrode:',electrode,' deactivate' ) + +if a not in ['1', '2']: + print ("Wrong choice !") -- GitLab