test_mux_board.py 2.33 KiB
"""
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=0X70# 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' ) 

        time.sleep(activation_time) 

if a not in ['1', '2']: 
    print ("Wrong choice !")