{"id":3931,"date":"2022-01-08T16:18:47","date_gmt":"2022-01-08T15:18:47","guid":{"rendered":"https:\/\/www.breizh56.fr\/crepp2024\/?page_id=3931"},"modified":"2022-06-13T19:28:21","modified_gmt":"2022-06-13T17:28:21","slug":"les-boutons-poussoirs","status":"publish","type":"page","link":"https:\/\/www.breizh56.fr\/crepp2024\/les-boutons-poussoirs\/","title":{"rendered":"Les boutons poussoirs"},"content":{"rendered":"\r\n<p>L&rsquo;objectif est de capter un appui sur un bouton poussoir.<\/p>\r\n\r\n<p><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" \/><\/a><\/p>\r\n\r\n<figure id=''><div class='cent' style='text-align:center;'><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp.jpg\"><img decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp.jpg\" style='max-width:60%;'><\/a><figcaption>Figure &#8211; Conventions du transistor bipolaire<\/figcaption><\/div><\/figure>\r\n\r\n<p>Cela permettra par exemple d&rsquo;allumer une LED lors d&rsquo;un appui sur celui-ci.<\/p>\r\n<h3>Principe<\/h3>\r\n<p>D&rsquo;un point de vue \u00e9lectrique, un bouton poussoir est un fil sectionn\u00e9 (circuit ouvert) quand il est au repos (bouton non press\u00e9) et se transforme en fil lorsqu&rsquo;il est press\u00e9.<br \/>Le bouton poussoir poss\u00e8de 4 broches et le courant traverse le bouton par les broches diagonalement oppos\u00e9es.<\/p>\r\n<blockquote>\r\n<p>Ah, bah tr\u00e8s bien, on met une broche \u00e0 5V et une autre vers une broche num\u00e9rique et le tour est jou\u00e9 ??<br \/><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp_bad.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3418\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp_bad-300x157.png\" alt=\"\" width=\"300\" height=\"157\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp_bad-300x157.png 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp_bad-768x402.png 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp_bad-1024x537.png 1024w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/bp_bad.png 1210w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\r\n<\/blockquote>\r\n<p>Ok, faisons cela.<\/p>\r\n<blockquote>\r\n<p>&#8211; Je pense qu&rsquo;il va y avoir un probl\u00e8me&#8230;. Que vaut la tension quand le bouton poussoir est au repos ??<\/p>\r\n<p>&#8211; HEu&#8230;.<\/p>\r\n<p>&#8211; C&rsquo;est bien l\u00e0 le probl\u00e8me&#8230;Vu que le bouton se comporte comme un fil sectionn\u00e9 au repos, le potentiel (tenson) sur l&rsquo;entr\u00e9e est <strong>indetermin\u00e9<\/strong>.<br \/>Du coup, l&rsquo;arduino va aussi bien lire un niveau logique 0 ou 5V !!<\/p>\r\n<\/blockquote>\r\n<p>Pour rem\u00e9dier \u00e0 ce probl\u00e8me, nous allons fixer le potentiel de l&rsquo;entr\u00e9e \u00e0 un niveau donn\u00e9.<\/p>\r\n<p>Il s&rsquo;agit des montages <strong>pull-up<\/strong> ou <strong>pull-down<\/strong><\/p>\r\n<h4>Montage pull-up<\/h4>\r\n<p>\u00c9tudions le cas du montage pull-up :<\/p>\r\n<p><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/arduino_2_bouton.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3399\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/arduino_2_bouton-300x173.png\" alt=\"\" width=\"300\" height=\"173\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/arduino_2_bouton-300x173.png 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/arduino_2_bouton-768x443.png 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/arduino_2_bouton-1024x590.png 1024w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/arduino_2_bouton.png 1053w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\r\n<p>Cette fois-ci, on constate que lorsque le bouton poussoir est au repos, l&rsquo;entr\u00e9e de l&rsquo;Arduino est directement reli\u00e9e au 5V par l&rsquo;interm\u00e9diaire d&rsquo;une r\u00e9sistance.<\/p>\r\n<p><strong>Un entr\u00e9e sur le 5V fixe le niveau logique \u00e0 5V. Objectif atteint !<\/strong><\/p>\r\n<blockquote>\r\n<p>Ne pourrions nous pas mettre un fil \u00e0 la place de la r\u00e9sistance ??<\/p>\r\n<\/blockquote>\r\n<p>-&gt; On pourrait mettre un fils dans le cas o\u00f9&#8230; nous n\u2019appuyons jamais sur le bouton poussoir !<\/p>\r\n<blockquote>\r\n<p>Comment \u00e7a ?<\/p>\r\n<\/blockquote>\r\n<p>Et bien, imaginez que vous appuyez sur le bouton poussoir&#8230; Que se passe-t-il ?<\/p>\r\n<p>Le courant \u00e0 tendance \u00e0 passer des potentiels les plus \u00e9lev\u00e9s (5V ici) aux potentiels les plus faibles (la masse).<\/p>\r\n<p>Le courant passe donc dans un premier fil (notre r\u00e9sistance &lsquo;nulle&rsquo;) et par un second fil (notre bouton poussoir) : <strong style=\"color: red;\">nous obtenons donc un joli court-circuit !<\/strong><\/p>\r\n<p>La valeur de la r\u00e9sistance importe peu tant qu&rsquo;elle soit suffisamment \u00e9lev\u00e9e (&gt;10 kOmh).<\/p>\r\n<p>Ce montage est appel\u00e9 <strong>pull-up<\/strong> car le potentiel est au niveau logique haut quand le bouton est au repos.<\/p>\r\n<h4>Montage pull-down<\/h4>\r\n<p>Le montage pull-down est le contraire en terme de placement de r\u00e9sistance et de bouton poussoir.<\/p>\r\n<p><a href=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/pull_down.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3426\" src=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/pull_down-300x161.png\" alt=\"\" width=\"300\" height=\"161\" srcset=\"https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/pull_down-300x161.png 300w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/pull_down-768x412.png 768w, https:\/\/www.breizh56.fr\/crepp2024\/wp-content\/uploads\/2020\/11\/pull_down.png 957w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\r\n<p>Au repos, le bouton poussoir d\u00e9livre un niveau logique 0.<\/p>\r\n<blockquote>\r\n<p>Dor\u00e9navant, nous utiliserons au choix le montage pull-up ou pull-down pour les boutons poussoirs.<br \/>Maintenant, passons au programme&#8230;<\/p>\r\n<\/blockquote>\r\n<h3>Programme bouton boussoir<\/h3>\r\n<blockquote>\r\n<p><strong>digitalRead(broche)<\/strong> est une instruction permettant de lire le niveau logique d&rsquo;une entr\u00e9e de l&rsquo;Arduino.<br \/>On lui pr\u00e9cise le num\u00e9ro de la broche et elle retourne le niveau logique de la broche.<\/p>\r\n<\/blockquote>\r\n<pre>\/\/VARIABLES\r\n int <strong>broche_bp<\/strong> = 3; \/\/Broche du bouton\r\n\r\nvoid setup()\r\n {\r\n pinMode(<strong>broche_bp<\/strong>, INPUT);\/\/Bouton en entr\u00e9e\r\n Serial.begin(9600); \/\/Communication avec le moniteur s\u00e9rie\r\n\r\n}\r\n void loop()\r\n {\r\n int valeur = digitalRead(<strong>broche_bp<\/strong>); \/\/On stocke la valeur lue dans une variable\r\n Serial.print(\"Valeur du bouton = \") ; \/\/Affichage de texte\r\n Serial.println(valeur); \/\/Affichage de valeur\r\n delay(100);\r\n\r\n}<\/pre>\r\n<blockquote>\r\n<p>Pour une lecture avec une carte ESP12 NodeMCU, on utilisera les broches appel\u00e9e DX avec X le num\u00e9ro inscrit sur la carte (D1, D2&#8230;). Il faudra avoir install\u00e9 les biblioth\u00e8ques ESP82 dans l&rsquo;Editeur Arduino<\/p>\r\n<\/blockquote>\r\n<pre>\/\/VARIABLES\r\n int <strong>broche_bp<\/strong> = D1; \/\/Broche du bouton\r\n\r\nvoid setup()\r\n {\r\n pinMode(<strong>broche_bp<\/strong>, INPUT);\/\/Bouton en entr\u00e9e\r\n Serial.begin(9600); \/\/Communication avec le moniteur s\u00e9rie\r\n\r\n}\r\n void loop()\r\n {\r\n int valeur = digitalRead(<strong>broche_bp<\/strong>); \/\/On stocke la valeur lue dans une variable\r\n Serial.print(\"Valeur du bouton = \") ; \/\/Affichage de texte\r\n Serial.println(valeur); \/\/Affichage de valeur\r\n delay(100);\r\n\r\n}<\/pre>\r\n<hr \/>\r\n\r\n\r\n<blockquote>La valeur de la variable valeur lors d&rsquo;un appui sur le bouton poussoir d\u00e9pend du type de montage s\u00e9lectionn\u00e9 (pull-up ou pull-down). Un montage pull-up va imposer la variable valeur \u00e0 0 quand le boton est press\u00e9, 1 pour le pull-down.<\/blockquote>\r\n","protected":false},"excerpt":{"rendered":"<p>L&rsquo;objectif est de capter un appui sur un bouton poussoir. Figure &#8211; Conventions du transistor bipolaire Cela permettra par exemple d&rsquo;allumer une LED lors d&rsquo;un appui sur celui-ci. Principe D&rsquo;un point de vue \u00e9lectrique, un bouton poussoir est un fil sectionn\u00e9 (circuit ouvert) quand il est au repos (bouton non press\u00e9) et se transforme en fil lorsqu&rsquo;il est press\u00e9.Le bouton [&#8230;]<\/p>\n","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3931","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/3931"}],"collection":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/comments?post=3931"}],"version-history":[{"count":16,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/3931\/revisions"}],"predecessor-version":[{"id":3935,"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/pages\/3931\/revisions\/3935"}],"wp:attachment":[{"href":"https:\/\/www.breizh56.fr\/crepp2024\/wp-json\/wp\/v2\/media?parent=3931"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}