pierre68
Posts: 56
Joined: Wed Nov 21, 2012 9:36 pm

Valeur entrée GPIO change toute seule

Thu May 02, 2013 8:46 pm

Bonjour,

j'ai un problème, j'utilise deux entrées GPIO afin de lire leur valeur pour une application qui n'a pas d'importance.
Le problème est que la valeur change constamment sans même que je n’appuie sur le bouton poussoir qui délivre la tension.

On m'a dit que le problème était les parasites et qu'il fallait remédier à cela par une résistance de tirage mais comment monter la résistance ?? quelle valeur choisir ?? etc etc..

je vous est fait un petit montage ultra simplifié de la configuration actuel:
Capture.PNG
Capture.PNG (5.18 KiB) Viewed 2927 times
Merci d'avance de vos réponses :)

JumpZero
Posts: 1218
Joined: Thu Mar 28, 2013 7:35 pm
Location: Arcachon, France

Re: Valeur entrée GPIO change toute seule

Thu May 02, 2013 11:51 pm

Bonjour,
cette question revient souvent, en fait dans ton schéma le problème c'est que quand tu n'appuies pas sur le bouton (le circuit est ouvert) le GPIO n'est connecté a rien, il ne peut pas lire 0. Pour qu'il lise 0 tu dois le connecter a la masse, de préférence a travers une résistance. La tu fais du pull down! Donc 0 quand le circuit est ouvert, et 1 quand il est fermé (appui sur le bouton).
Si tu fais l'inverse le GPIO: relié en permanence au + a travers une résistance, et le bouton qui ferme le circuit sur le ground, alors la tu fais du pull down.
Il s'agit d'un principe général de montage électronique, tapes GPIO pull down dqns Google pour t'en convaincre.
Si tu fais pas ça, et ben l'état du GPIO c'est au petit bonheur la chance, effectivement avec un fil qui fait antenne c'est souvent à 1.
Heureusement pour nous les fabricant du SOIC (la puce) on tout prévu et il y a pour chaque GPIO une resistance pull down et une pull up que l'on met ou met pas en service. Donc la bonne nouvelle pour toi c'est que tu n'as rien a rajouter mais juste a taper la bonne commande qui en bon anglais "enable or disable pull-up resistor or pull-down"
La commande ça dépend de ta librairie logicielle. Comme ton code est en C dans ton post précédent (si j'ai paslu trop vite) tu devrais trouver ta vie ici http://elinux.org/RPi_Low-level_peripherals
Sinon la distrib Raspbian embarque de base le package gpio qui a ces commandes http://elinux.org/RPi_Low-level_peripherals Python (et ligne de commande? j'sais plus)
Ou celui ci Python et ligne de commande http://pythonhosted.org/RPIO/rpio_cmd.html

Voir aussi http://en.wikipedia.org/wiki/General_Pu ... put/Output

Bon la je pense que j'ai répondu a ta question, non?
Amicalement
--
Jmp0

pierre68
Posts: 56
Joined: Wed Nov 21, 2012 9:36 pm

Re: Valeur entrée GPIO change toute seule

Fri May 03, 2013 5:35 am

Merci tu à tout à fait répondu à ma question :D

JumpZero
Posts: 1218
Joined: Thu Mar 28, 2013 7:35 pm
Location: Arcachon, France

Re: Valeur entrée GPIO change toute seule

Fri May 03, 2013 6:54 pm

J'ai retrouvé que j'avais ecrit ca:

Installer le package RPIO

$ sudo apt-get install python-setuptools
$ sudo easy_install -U RPIO

Faire ce montage
ButtonOnGpio23small.png
ButtonOnGpio23small.png (34.77 KiB) Viewed 2888 times
Tester
On ajoute un pull-up resistor on GPIO 23 pour forcer à 1 quand on n'appuie pas sur le bouton. Quand on appuie on met le GPIO a la masse et son etat logique devient 0. Ca ce fait avec une option de la commande rpio. Ici on defini GPIO 23 en entrée et active la resistance de pull up.

$ sudo rpio --setinput 23:pullup
Pour verifier il y a cette commande tres pratique qui fait partie du package RPIO.
$ sudo rpio-curses
rpio-curses_1.png
rpio-curses_1.png (24.81 KiB) Viewed 2888 times
On peut meme oublier sudo, il sera automatiquement ajouté.
Appuyer, confirmer sur l'ecran que l'etat change. Q pour quitter.

Voila
--
Jmp0

Return to “Français”