J'ai beaucoup joué avec le Raspberry Pi ces derniers temps. Mais j'ai un problème.
Lorsque je mets en place une broche d'entrée pour vérifier si l'électricité lui est envoyée ou non, cela me donne des réponses plutôt instables.
Quelques observations que j'ai faites pour clarifier mon problème:
Lorsque je connecte le circuit et que l'électricité circule sur la broche d'entrée, la valeur qu'elle me donne est VRAIMENT ou 1.
Lorsque je coupe le circuit en supprimant une LED qui en fait partie (lorsque la valeur d'entrée doit être 0), cela me donne des valeurs aléatoires, passant de 0 à 1.
Lorsque je retire tous les câbles de mon Pi, cela me donne la valeur constante de 0
Si j'ai retiré tous les câbles GPIO, cela me donne la valeur 0, mais si je touche simplement la broche d'entrée avec un morceau de métal conducteur d'électricité (ne menant à rien à l'autre extrémité), cela recommence avec les valeurs aléatoires. Il ne me donne pas de valeurs aléatoires à moins que je ne connecte également quelque chose à la broche de sortie. Il n'a pas à conduire n'importe où, il suffit de toucher la broche de sortie. Et un autre morceau de métal doit toucher la broche d'entrée. Aucune connexion entre eux.
Je me demande pourquoi il commence à me donner des valeurs aléatoires car la broche d'entrée GPIO touche n'importe quel métal.
Et encore plus intéressant, pourquoi cela me donne-t-il des 1 ou des VRAIS constants quand je lui envoie de l'électricité?
Réponses:
Le problème
Certes, mais que se passe-t-il lorsque la masse est connectée à la broche d'entrée GPIO? La valeur qu'il donnerait serait toujours fausse .
Lorsque rien n'est connecté, la broche est dans un état "flottant" et la sortie n'est pas prévisible. il est dans un état indéfini, ce n'est ni 0 ni 1, et la valeur détectée peut changer étrangement, d'où vos résultats aléatoires. En électronique, c'est ce qu'on appelle le troisième état .
Quelques détails supplémentaires à partir d'un article Wikipedia :
La solution générale
La solution est une résistance de rappel . Considérez cela comme un composant supplémentaire qui ne fait rien lorsque la ligne obtient un 0 ou 1. Mais lorsque la ligne est inactive, elle entre soudainement en action et donne un 0.
La solution Raspberry Pi
Heureusement pour vous, le Rpi a un menu déroulant intégré, vous devez l'activer par programme. Voici un script python pour cela:
Note complémentaire
Ne connectez pas l'alimentation directement à la broche car cela serait dangereux! Assurez-vous qu'il y a suffisamment de résistance dans le circuit. De plus, ne connectez jamais l'alimentation 5V directement au GPIO car il n'accepte que 3,3V.
la source