[Résolu] D'un coup il inverse tout (True/False)

Bonjour,

préparant une maquette avec moteurs et capteurs j'ai créé une fonction :

def moteur_capteur(moteur, capteur):
    board.digital[moteur].write(1)
    while True:

        if capteur.read() == False:
            board.digital[moteur].write(0)
            time.sleep(1)
            break

Depuis toujours ça fonctionne sans soucis, quand le capteur est enclenché le moteur s'arrête.

Et la le moteur s'allume et se coupe après 1 seconde, comme si le capteur est déjà activé donc à False.

Pour que le moteur fonctionne je dois activer moi même le capteur, et dès que je le relache, le moteur s'arrête.

J'ai testé mon capteur, pour voir si son état change bien quand on l'enclenche, avec ce programme (réécrit ici de tête) :

while True:
print(capteur.read())

Et ça fonctionne bien comme il faut.

J'utilise PyCharm comme logiciel pour coder et Pyfirmata comme bibliothèque.

Edit : à présent le relais s'active et direct se coupe, même si je met : time.sleep(3) dans la fonction.
Edit 2 : J'ai ajouté #usr/bin/python (ou qqch comme ça), et ça a fonctionné une seule et unique fois

D'avance merci

c'est plutôt le forum arduino IDE et C++ ici...

N'oubliez pas d'indenter correctement le code sous le while.. C ou C++ utilisent des {} pour définir les groupes d'instructions, en Python c'est l'indentation qui fait cela et dans

while True:
print(capteur.read())

je ne vois pas d'indentation... à vérifier

C'est bien indenté. Serait - il possible de déplacer mon post au bon endroit ? Ou alors dites moi ou je dois le mettre et j'en fait une copie.

Merci

C’est tout le forum qui est arduino... y’a peut être un forum des utilisateurs de Pyfirmataou un forum python

Ma question était « quand vous avez ajouté print(capteur.read())ça semblait pas indenté

Dans ta fonction ajoute le 'print(capteur.read())' après le 'while True:' en indentant, et regarde ce qu'il affiche.

Bon !
Je m'excuse de ma réponse si tardive.

Finalement j'ai trouvé une "solution", j'ai crée un fichier clone et si le problème intervient, j'alterne avec ce fichier …

Ça n'explique rien, mais ça fonctionne ^^

D'avance merci pour votre aide.