make_me_a_sandwich
Posts: 2
Joined: Wed Aug 22, 2012 3:04 pm

Utilisation d'un bouton (GPIO)

Wed Aug 22, 2012 3:16 pm

Bonjour,

Pour un petit projet j'ai besoin d'utiliser 10 boutons, mais voila je n'ai que peu de connaissance en électronique. J'ai donc cherché des schémas et j'ai trouvé via google ceci :
Image

et voila ce que j'aurais fait :
Image

Alors voila mes questions :
Mon branchement est il faux ? Si oui pourquoi ?
Si non quel est l’avantage de celui trouvé via Google ?

Merci d'avance :D

ernesto
Posts: 141
Joined: Thu Jul 19, 2012 10:09 am

Re: Utilisation d'un bouton (GPIO)

Wed Aug 22, 2012 7:22 pm

Bonsoir
1)le schéma via Google comporte une erreur : le fil gpio18 doit être branché entre la résistance et le bouton et non pas entre la masse et la résistance.

2) Je te conseille de lire le magpi n2 l'article in control page 10 qui traite de ton projet. http://www.themagpi.com/

Voilà le schéma préconisé, LED1 et R1 sont optionnelles est ne servent qu'à visualiser l’état du bouton.
Image

Bon projet

make_me_a_sandwich
Posts: 2
Joined: Wed Aug 22, 2012 3:04 pm

Re: Utilisation d'un bouton (GPIO)

Wed Aug 22, 2012 7:55 pm

Merci :D
Je vais lire ça.

Edit : Donc si j'ai bien compris le circuit préconisé sert à éviter les faux HIGH et LOW :D

User avatar
aboudou
Posts: 98
Joined: Wed Aug 08, 2012 12:38 pm
Location: Cintegabelle, France
Contact: Website

Re: Utilisation d'un bouton (GPIO)

Thu Aug 23, 2012 5:56 am

Sur le schéma tiré du magpi, tu as deux résistances importantes :
- R3, qui est là pour forcer l'état en lecture de IO0 à HIGH quand le bouton n'est pas pressé (et accessoirement, s'il n'y avait pas R2, à limiter le courant qui arrive sur IC0 depuis la ligne +3,3V pour ne pas griller le controleur GPIO par un court-circuit). L'appui sur le bouton met en contact IC0 et la masse, ce qui passe sont état à LOW.
- R2, qui est là par sécurité. En effet, si par accident tu commute IC0 en OUTPUT (donc crachant 3,3V), et que tu appuies sur le bouton, tu mets en court-circuit cette liaison avec la masse, et va dépasser les 16mA maximum autorisés par broche du GPIO. Avec R2 en place, tu fait chuter l'intensité du courant qui passera dans ce court circuit, et donc protège le controleur GPIO (avec l'exemple d'une résistance R2 de 10 kΩ, ça ne laisse passer qu'une intensité de 0,00033 A, soit 0,33 mA - la formule : Intensité (A) = Tension (V) / Résistance (Ω) soit dans le cas qui nous intéresse : 3,3V/10000Ω = 0,00033A)
https://goddess-gate.com/ - My main website
http://raspberrypi.goddess-gate.com/ - A website about (and hosted by) my Raspberry Pi
https://twitter.com/boudouarnaud - Follow me on Twitter
http://www.fablab-sud31.fr/ - Fab Lab Sud31-Val d'Ariège

User avatar
ecaheti
Posts: 140
Joined: Tue Aug 14, 2012 3:06 pm
Location: Normandie, France
Contact: Website

Re: Utilisation d'un bouton (GPIO)

Thu Aug 23, 2012 6:48 am

Amen ! Impecc aboudou =)

ernesto
Posts: 141
Joined: Thu Jul 19, 2012 10:09 am

Re: Utilisation d'un bouton (GPIO)

Thu Aug 23, 2012 8:10 am

Bonjour
Voilà ci dessous le schéma d'une entrée gpio. (voir le data sheet bcm2835 http://www.raspberrypi.org/wp-content/u ... herals.pdf).
Il y a sur le schéma deux résistances de pull up/down, que l'on active par logiciel.
Image Lien sur l'image: http://ev63.free.fr/pub/framboise/GPIO-fig6-1.jpg

Pour simplifier le schéma du bouton comme ci-dessous, il faut activer la résistance de pull-up.
Pour déterminer la valeur de la Rext il faut connaitre la valeur de R pull-up, et là je n'ai pas trouvé sur le web cette valeur. (si quelqu'un trouve ...)
Je n'ai pas testé ce schéma, mais de toute façon ne pas prendre Rext inférieure à 1kΩ
Image

User avatar
Gabriel
Posts: 73
Joined: Wed Aug 10, 2011 5:43 pm
Location: France

Re: Utilisation d'un bouton (GPIO)

Thu Aug 23, 2012 6:47 pm

Merci pour le sujet, pile ce dont j'avais besoin :)
My home-made case : http://goo.gl/nprcI ; My presentation http://goo.gl/5hSar et en français : http://goo.gl/28Vif ; Please think to the FAQ and to the Wiki

User avatar
Gabriel
Posts: 73
Joined: Wed Aug 10, 2011 5:43 pm
Location: France

Re: Utilisation d'un bouton (GPIO)

Mon Aug 27, 2012 6:48 pm

Petite question : est-il nécessaire de stabiliser grâce à un condensateur comme c'est parfois conseillé pour l'arduino ? ( ex : tuto du sdz pour l'arduino http://sciences.siteduzero.com/tutoriel ... ation.html - cours très bon aufait ;) )

Moi j'ai cablé un bouton et je suis content parceque ça marche plutôt bien. J'utilise deux résistances comme sur le schéma précédent : 14.3kOhm et 1.2kOhm (j'ai fait avec ce que j'avais sous la main :? ). Ces pages m'ont bien aidé : http://blog.idleman.fr/?p=1587 et https://goddess-gate.com/dc2/index.php/ ... irepcol.fr

J'ai également cablé une led avec une résistance de 150Ohm pour la protéger (la led est assez puissante et ne reste pas allumée longtemps donc ça suffit).

J'ai un projet concret (une radio avec un écran lcd usb) donc j'ai commencé à jouer avec la récupération d'informations sur le bouton.
Le système sera composé de 3 "parties" :
- un back-end mplayer (en mode esclave et commandé depuis un fifo)
- un écran lcd (128*128 px, qui affiche l'image .png qu'on lui demande grâce à un programme assez simple ne prenant que quelques paramètres)
- 5 boutons (une croix directionnelle + ok au centre).

Là j'en suis au choix -difficile- du langage de programmation/script : mplayer et l'écran se commandent assez facilement en bash (quelques truc à régler sur mplayer mais ça marche) mais pour les boutons je ne sais pas trop : est-ce qu'il faut que je programme un petit truc en C qui permettrais d'avoir un meilleur temps de réponse (et serait intégré au script bash principal) ou est-ce que bash peut suffire (ou est-ce que bash est une mauvaise idée et que je dois tout faire en C) ?
Actuellement je travaille sur le bouton avec du bash et j'ai fait un script qui permet de savoir combien de temps le bouton à été pressé et ça marche assez bien. J'ai fait une visionneuse d'image sur le lcd : appui court sur le bouton = image suivante ; appui long = image précédente.

J'aimerais aussi savoir si je pourrais assez simplement réduire le nombre de GPIOs utilisés par les boutons.
My home-made case : http://goo.gl/nprcI ; My presentation http://goo.gl/5hSar et en français : http://goo.gl/28Vif ; Please think to the FAQ and to the Wiki

Return to “Français”