Utilisation des broches GPIO dans un code en I2C

Bonjour,

J’essaie de fabriquer un photometre avec une Raspberry Pi zero.
Pour ce faire, j’ai investi dans un capteur as7262 qui fonctionne en I2C. J’aimerai allumer une led dès que le capteur a mesuré la couleur souhaitée (SPI).
j’ai essayé de créer des fonctions distinctes pour gérer les différents modes mais rien n’y fait. j’ai toujours cette erreur :

ValueError: A different mode has already been set!

Quelqu’un aurait une idée ? je suis vraiment novice en python.

mon code :

import time
import board
import RPi.GPIO as GPIO
from adafruit_as726x import *
GPIO.setwarnings(False)

def allumerled(onoff, ledno=36):
    GPIO.setmode(GPIO.BOARD)  # Définit le mode de numérotation (Board)
    led1 = ledno
    GPIO.setup(led1, GPIO.OUT)  # Active le contrôle du GPIO
    if onoff == 1:
        GPIO.output(led1, GPIO.HIGH)
        time.sleep(2)
    else:
        GPIO.output(led1, GPIO.LOW)
        time.sleep(2)
allumerled(1, 36)

def mesure():
        def value_sensor(x):
                return x
        i2c = board.I2C()
        sensor = AS726x_I2C(i2c)
        sensor.conversion_mode = sensor.MODE_2

        while value_sensor(sensor.red) < 130:
                time.sleep(0.1)
                print("\n")
                print('violet : ', value_sensor(sensor.violet),)
                print('bleu : ', value_sensor(sensor.blue),)
                print('vert : ', value_sensor(sensor.green),)
                print('jaune : ', value_sensor(sensor.yellow),)
                print('orange : ', value_sensor(sensor.orange),)
                print('rouge : ', value_sensor(sensor.red),)
                print("\n")
                print("rajouter une goutte")
                time.sleep(2)
        else :
                print("c est rouge ")
                time.sleep(5)
allumerled(1, 36)
mesure()
allumerled(2, 36)

merci par avance pour votre aide

hello,

l’import de adafruit_as726x doit contenir un GPIO.setmode(GPIO.BCM) et on peut pas pour des raisons évidente faire cohabiter les deux…
si j’ai raison tu vires ton setmode et tu codes tes led en BCM et ça devrait le faire !

1 « J'aime »

Bonjour,

Merci pour ta réponse ! Je viens de tester et ca fonctionne à merveille. Je m’arrachais les cheveux depuis 2 jours. je n’avais pas pensé à ça…

Nico