Affichage de 20 pages utilisant cette propriété.
<nowiki>C'est un interrupteur simple qui permet de contrôler les capacités d'une machine ou d'un objet. C'est le principal moyen d'interaction entre l'homme et la machine.<br /><br />Le bouton poussoir à la particularité de revenir dans son état initiale lorsque qu'on cesse d'appuyer dessus.<br /><br /><br />Il en existe de deux types :<br /><br />*Le plus courant c'est le bouton poussoir '''"normalement ouvert"''', le courant ne passe pas quand il est repos, c'est quand on appuie dessus que le courant passe.<br />*Il existe aussi le bouton poussoir dit '''"normalement fermé"''', au repos il laisse passer le courant, en appuie, il coupe le circuit, le courant ne passe pas.<br /><br /><br/>Ici, nous utilisons le bouton "normalement ouvert".<br /><br /><br/><br /><br />== Subtilité d'utilisation : ==<br />Pour que le micro-contrôleur reçoive un signal clair du bouton, nous pouvons utiliser des résistances de pull-up ou pull-down.<br /><br /><br />Enfin, un bouton, c'est système mécanique. Et contrairement à la théorie, la réalité est complexe. Lorsqu'on appuie et qu'on relâche un bouton, le signal n'est pas simple, ouvert ou fermé, mais il y a un "rebond", un peu comme si on tremblait quand on appuie sur le bouton. Le micro-contrôleur peut alors interpréter le signal comme plusieurs appuis sur le bouton, ce qui est embêtant dans certains cas.<br /><br /><br />Il existe deux solutions à ce problème :<br /><br />* mettre un délai de quelques centaines de millisecondes. Cette solution présente le défaut d'utiliser la fonction "delay(200)" qui met en pause le programme.<br />* mettre une temporisation avec la fonction "millis". Cette solution était bien meilleure, car elle ne bloque pas le programme.<br /><br />Gérer la temporisation : voir ce tuto très bien fait : http://wiki.t-o-f.info/Arduino/%c3%89liminationDuRebondissement<br /><br /><br /><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="lineno"> 1 </span><span class="cm">/*</span><br /><span class="lineno"> 2 </span><span class="cm">* Code repris de http://wiki.t-o-f.info/Arduino/%c3%89liminationDuRebondissement</span><br /><span class="lineno"> 3 </span><span class="cm">*/</span><br /><span class="lineno"> 4 </span><br /><span class="lineno"> 5 </span><span class="kr">int</span> <span class="n">BUTTON_PIN</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="c1">//GPIO 0 correspond à la broche D3</span><br /><span class="lineno"> 6 </span><span class="kr">int</span> <span class="n">previousButtonState</span><span class="p">;</span><br /><span class="lineno"> 7 </span><span class="kr">int</span> <span class="n">count</span> <span class="o">=</span><span class="mi">0</span><span class="p">;</span><br /><span class="lineno"> 8 </span><br /><span class="lineno"> 9 </span><span class="kr">unsigned</span> <span class="kr">long</span> <span class="n">debounceTimeStamp</span><span class="p">;</span><br /><span class="lineno">10 </span><br /><span class="lineno">11 </span><span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno">12 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">57600</span><span class="p">);</span><br /><span class="lineno">13 </span> <span class="nf">pinMode</span><span class="p">(</span> <span class="n">BUTTON_PIN</span> <span class="p">,</span> <span class="kr">INPUT_PULLUP</span> <span class="p">);</span><br /><span class="lineno">14 </span> <span class="n">previousButtonState</span> <span class="o">=</span> <span class="nf">digitalRead</span><span class="p">(</span> <span class="n">BUTTON_PIN</span> <span class="p">);</span><br /><span class="lineno">15 </span><span class="p">}</span><br /><span class="lineno">16 </span><br /><span class="lineno">17 </span><span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno">18 </span> <span class="k">if</span> <span class="p">(</span> <span class="nf">millis</span><span class="p">()</span> <span class="o">-</span> <span class="n">debounceTimeStamp</span> <span class="o">>=</span> <span class="mi">5</span> <span class="p">)</span> <span class="p">{</span><br /><span class="lineno">19 </span> <span class="kr">int</span> <span class="n">currentButtonState</span> <span class="o">=</span> <span class="nf">digitalRead</span><span class="p">(</span> <span class="n">BUTTON_PIN</span> <span class="p">);</span><br /><span class="lineno">20 </span> <span class="k">if</span> <span class="p">(</span> <span class="n">currentButtonState</span> <span class="o">!=</span> <span class="n">previousButtonState</span> <span class="p">)</span> <span class="p">{</span><br /><span class="lineno">21 </span> <span class="n">debounceTimeStamp</span> <span class="o">=</span> <span class="nf">millis</span><span class="p">();</span><br /><span class="lineno">22 </span> <span class="k">if</span> <span class="p">(</span> <span class="n">currentButtonState</span> <span class="o">==</span> <span class="kr">LOW</span> <span class="p">)</span> <span class="p">{</span><br /><span class="lineno">23 </span> <span class="n">count</span> <span class="o">=</span> <span class="n">count</span> <span class="o">+</span> <span class="mi">1</span><span class="p">;</span><br /><span class="lineno">24 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">count</span><span class="p">);</span><br /><span class="lineno">25 </span> <span class="p">}</span><br /><span class="lineno">26 </span> <span class="p">}</span><br /><span class="lineno">27 </span> <span class="n">previousButtonState</span> <span class="o">=</span> <span class="n">currentButtonState</span><span class="p">;</span><br /><span class="lineno">28 </span> <span class="p">}</span><br /><span class="lineno">29 </span><span class="p">}</span><br /></pre></div><br/><br /><br />==Câblage : ==<br /><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Bouton poussoir Boutonpoussoir2 bb.jpg" data-sourceimage="https://www.wikidebrouillard.org/images/9/9d/Item-Bouton_poussoir_Boutonpoussoir2_bb.jpg"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Bouton_poussoir_Boutonpoussoir2_bb.jpg" class="image"><img alt="Item-Bouton poussoir Boutonpoussoir2 bb.jpg" src="/images/thumb/9/9d/Item-Bouton_poussoir_Boutonpoussoir2_bb.jpg/200px-Item-Bouton_poussoir_Boutonpoussoir2_bb.jpg" width="200" height="268" data-file-width="465" data-file-height="624" /></a></div></div></span></div><br /><br />==Code Minimal : ==<br /><br/><br />{</nowiki>
Ces jolis boutons fonctionnent comme des [[Item:Bouton poussoir|boutons poussoirs]].
+Aussi vieux que le [http://fr.wikipedia.org/wiki/Format_35_mm format de pellicule 135 - 35 mm] ? non sans doute pas sous cette forme en plastique en 1892...
On peut en récupérer facilement chez les photographes, mais avec l'ère du numérique l'objet va devenir rare, à garder précieusement donc !
+Boîte en plastique qui peut servir de petit bac de récupération
+Pour réaliser des expériences sans endommager l'environnement et les espèces, il est conseillé d'utiliser des branches mortes, que l'on trouve facilement sur le sol dans les zones arborées. On regroupe sous ce terme des morceaux de bois de toutes tailles, de la brindille à la branche plus épaisse : bien vérifier sur la fiche expérience quel diamètre et quelle taille de branche est adaptée.
+Les platines d'expérimentation de type breadboard simples comportent généralement deux paires de rangées verticales, + (rouge) et - (bleu), de chaque côté prenant la totalité de la hauteur de la platine, et différentes lignes coupées en 2 en leur milieu. Les circuit intégrés sont généralement insérés au milieu, à cheval entre chacun des deux ensembles de rangées horizontales. Des câbles avec connections mâle type Dupont, sont également utilisés pour effectuer des connexions entre les différents éléments via les différentes rangées.
Sur les plus grande platines de montage basées sur des breadboard, on peut trouver différentes breadboard collées les unes aux autres. Elles sont parfois vendues avec un petit circuit d'alimentation.
On trouve dans les logiciels de plans de montage électronique ce type de carte, permettant de faciliter la création, et conservation des plans de montage.
+<nowiki>Le besoin de se protéger de façon durable des intempéries et des prédateurs impose à l'Homme de trouver des matériaux durs et résistants<sup class="need_ref_tag">[https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:V%C3%A9rifiabilit%C3%A9 [Information douteuse]] [?][https://fr.wikipedia.org/wiki/Aide:R%C3%A9f%C3%A9rence_n%C3%A9cessaire [réf. nécessaire]][https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:Travaux_in%C3%A9dits [interprétation personnelle]]</sup>. La [https://fr.wikipedia.org/wiki/Pierre_naturelle pierre naturelle] ou les troncs d'arbre peuvent remplir cet office dans les régions où ils peuvent être facilement prélevés. Dans les pays où la végétation est rare et notamment tous les pays méditerranéens, l'argile constitue l'un des premiers [https://fr.wikipedia.org/wiki/Mat%C3%A9riau_de_construction matériaux de construction] utilisés<sup id="cite_ref-Adam_1-0" class="reference">[https://fr.wikipedia.org/wiki/Brique_%28mat%C3%A9riau%29#cite_note-Adam-1 1]</sup>: la brique est facilement réalisable à partir d'[https://fr.wikipedia.org/wiki/Argile argile] ou de [https://fr.wikipedia.org/wiki/Terre_crue terre crue], on a parlé au <abbr class="abbr" title="19ᵉ siècle">XIX<sup>e</sup></abbr> siècle de ''[https://fr.wiktionary.org/wiki/terre_franche terre franche]''. Cette brique de terre crue d’autre part, abandonnée au feu, acquiert solidité et dureté. On lui enlève surtout l'inconvénient de se délayer dans l'eau. Ce progrès profite aux briques aussi bien qu'aux [https://fr.wikipedia.org/wiki/Tuile tuiles], aux [https://fr.wikipedia.org/wiki/Carreau_(construction) carreaux] et à la [https://fr.wikipedia.org/wiki/C%C3%A9ramique céramique] en général. Un grand et nouveau progrès est encore réalisé le jour où l'on a su recouvrir cette terre qui reste poreuse et absorbante, d'une couche vitreuse imperméable, d'une [https://fr.wikipedia.org/wiki/Gla%C3%A7ure glaçure]. Ce progrès profite toutefois plus aux tuiles et à la poterie, qu'aux briques pour lesquelles son usage reste marginal<sup id="cite_ref-Salvétat_2-0" class="reference">[https://fr.wikipedia.org/wiki/Brique_%28mat%C3%A9riau%29#cite_note-Salvétat-2 2]</sup>. La [https://fr.wikipedia.org/wiki/Porte_d%27Ishtar Porte d'Ishtar] dans l'actuel Irak, ou le palais de [https://fr.wikipedia.org/wiki/Darius_Ier Darius <abbr class="abbr" title="premier">I<sup>er</sup></abbr>] à [https://fr.wikipedia.org/wiki/Suse_(%C3%89lam) Suze] dans l'actuelle Iran, montrent l'usage maitrisé des décors en brique de terre cuite émaillée et colorée, qu'avaient les [https://fr.wikipedia.org/wiki/Empire_n%C3%A9o-babylonien néo-babyloniens] en [https://fr.wikipedia.org/wiki/-580 -580] et d'autre part les [https://fr.wikipedia.org/wiki/Ach%C3%A9m%C3%A9nides Achéménides] vers [https://fr.wikipedia.org/wiki/-500 -500]. Au [https://fr.wikipedia.org/wiki/XVe_si%C3%A8cle <abbr class="abbr" title="15ᵉ siècle">XV<sup>e</sup></abbr> siècle], le nord de l'Italie deviendra maître dans l'art de la décoration des habitations et monuments avec des frises, des guirlandes et des festons constitués tout de briques émaillées.<br /><br />D'abord modelée, la brique apparaît entre le huitième et le septième millénaire <abbr class="abbr nowrap" title="avant Jésus-Christ">av. J.-C.</abbr>, dans la région du [https://fr.wikipedia.org/wiki/Tigre_(fleuve) Tigre] et de l'[https://fr.wikipedia.org/wiki/Euphrate Euphrate]. Les premières maisons en brique ont été découvertes en [https://fr.wikipedia.org/wiki/M%C3%A9sopotamie Mésopotamie] - actuelle [https://fr.wikipedia.org/wiki/Irak Irak] - et l'on estime que l'usage de la brique s'étend rapidement dans tout le [https://fr.wikipedia.org/wiki/Moyen-Orient Moyen-Orient]<sup id="cite_ref-3" class="reference">[https://fr.wikipedia.org/wiki/Brique_%28mat%C3%A9riau%29#cite_note-3 3]</sup>.</nowiki>
Une '''brochette, pique à brochette ou pic à brochette''', en [https://fr.wikipedia.org/wiki/Cuisine cuisine], désigne une fine tige en [https://fr.wikipedia.org/wiki/M%C3%A9tal métal] ou en bois sur laquelle sont enfilés des morceaux de [https://fr.wikipedia.org/wiki/Viande viande] (bœuf, porc, volaille, canard, etc.), de [https://fr.wikipedia.org/wiki/Poisson poisson], de fruits, de légumes ou de fruits de mer et destinés à être cuits à la [https://fr.wikipedia.org/wiki/Broche broche], c’est-à-dire au-dessus des braises du [https://fr.wikipedia.org/wiki/Feu feu] ou au [https://fr.wikipedia.org/wiki/Barbecue barbecue]. Par [https://fr.wikipedia.org/wiki/M%C3%A9tonymie métonymie], une brochette désigne aussi les aliments cuits de cette façon.
La première apparition du terme brochette remonte au [https://fr.wikipedia.org/wiki/Moyen_%C3%82ge Moyen Âge] et ne désignait que l’accessoire métallique, terminé en son bout par une pointe acérée. On rencontre le terme pour la première fois dans une acception culinaire à la fin du <abbr class="abbr" title="14ᵉ siècle">XIV<sup>e</sup></abbr> siècle.
Source sous licence CC-By-Sa - [https://fr.wikipedia.org/wiki/Crayon Wikipédia]
+Le terme de "bâton" s'applique à des morceaux de bois de taille très variable. Pour utiliser des bâtons dans une expérience, il est conseillé de récupérer du bois sur des branches mortes, tombées au sol ou coupées, par exemple sur un bord de route. On évitera ainsi d'endommager des arbres, et l'on disposera de bois bien sec tout en donnant une nouvelle utilité à des matériaux rarement valorisés.
+Peut se récupérer en mangeant des glaces. Le coût en papeterie est d'environ 2.50€ pour une cinquantaine de bâtonnets.
+La technique du disque compact repose sur une méthode optique : un faisceau de lumière cohérente ([https://fr.wikipedia.org/wiki/Laser laser]) vient frapper le disque en rotation. Les irrégularités (appelées « ''pits'' », cavités dont la longueur varie entre 0,833 et 3,56 <abbr class="abbr" title="micromètre">[https://fr.wikipedia.org/wiki/Microm%C3%A8tre µm]</abbr>, et dont la largeur est de 0,6 μm) dans la surface réfléchissante de celui-ci produisent des variations [https://fr.wikipedia.org/wiki/Bit binaires]. Le [https://fr.wikipedia.org/wiki/Rayon_(optique) rayon] réfléchi est enregistré par un [https://fr.wikipedia.org/wiki/Capteur capteur]. Plus précisément, lorsque le faisceau passe de la surface plane à cette cavité, il se produit des [https://fr.wikipedia.org/wiki/Interf%C3%A9rence interférences] : lorsque le faisceau ne rencontre qu'une surface plane, l'intensité lumineuse du faisceau réfléchi vers le capteur est maximale, et fait correspondre à cet état la valeur binaire 0 ; quand le faisceau passe sur le ''pit'', le capteur détecte les interférences et l'intensité du signal reçu diminue.La valeur binaire 1 est alors attribuée<sup id="cite_ref-2" class="reference">[https://fr.wikipedia.org/wiki/Disque_compact#cite_note-2 2]</sup>. En effet, lorsque le laser est émis sur une telle discontinuité, une partie des rayons lumineux émis sera réfléchie depuis le creux, tandis que l'autre partie sera réfléchie depuis le plat. Aussi se crée-t-il une différence de marche entre ces deux rayons réfléchis, c'est-à-dire un déphasage entre les deux ondes. Or la profondeur du ''pit'' est très spécifique à celle du laser utilisé pour la lecture, en effet elle est ''λ''/4, avec ''λ'' la longueur d'onde du laser. Deux ondes issues d'une source cohérente sont dites constructives (c'est-à-dire que leurs amplitudes s'additionnent) lorsque la différence de marche notée ''δ'' vérifie : ''δ'' = ''λ''·''k'', avec ''k'' un entier relatif. C'est le cas lorsque le laser se réfléchit sur un plat ou un creux (''k'' = 0). Au contraire, lorsque le rayon se réfléchit sur un passage creux/plat (ou plat/creux), où l'onde réfléchie dans le creux parcourt donc la profondeur du ''pit'' multipliée par deux (aller plus retour) soit une distance ''d'' = 2''λ''/4 = ''λ''/2, la valeur de la différence de marche vérifie : ''δ'' = ''λ'' (''k'' + 0,5), correspondant à une différence de marche pour des ondes destructives (dont les amplitudes s'annulent). C'est donc l'intensité du signal lumineux réfléchi sur la piste du support de stockage et reçu par le capteur — lequel associe des variations de tension aux variations d'intensité reçues — qui est codée en binaire<sup id="cite_ref-3" class="reference">[https://fr.wikipedia.org/wiki/Disque_compact#cite_note-3 3]</sup>. Lorsque le disque compact est utilisé comme support pour l’écoute musicale (premières utilisations), l’information binaire est ensuite transformée en un signal [https://fr.wikipedia.org/wiki/Analogique analogique] par un [https://fr.wikipedia.org/wiki/Convertisseur_num%C3%A9rique-analogique convertisseur numérique-analogique].
Lors de la fabrication, des micro-organismes tels que bactéries et champignons microscopiques jouent un rôle majeur dans l’industrie de transformation du lait. Il se retrouve donc dans le camembert. Ainsi sur la croute, on retrouve une biodiversité bactérienne, qui permettent de donner le goût et l'aspect du camembert. Il se trouve chez votre fromager préféré, où dans les rayons frais des magasins alimentaires. Il se trouve chez votre fromager préféré, où dans les rayons frais des magasins alimentaires.
On le mange à la fin du repas, soit avant le désert soit à la place. On peut aussi le faire chauffer au four, entourer d'aluminium pour le rendre fondant.
+<nowiki>== Caractéristiques ==<br />Ce module de haute précision possède 12 boutons tactiles et supporte la communication I2C. <br /><br />Il peut être facilement interfacé avec n'importe quel microcontrôleur. <br /><br /><br />Il n'y a pas de régulateur sur la carte, donc la tension d'alimentation doit être comprise entre 1.7 et 3.6VDC.<br /><br /><br />Il comporte 18 broches :<br /><br /><br />6 broches à gauche :<br /><br />* VCC : Alimentation du module - 3.3V<br />* IRQ : Sortie d'interruption<br />* SCL : Entrée horloge série pour le protocole I2C<br />* SDA : Entrée/sortie de données série pour le protocole I2C<br />* ADD : Adresse d'ajustement pour le protocole I2C<br />* GND : Masse<br /><br />12 broches sur la droite :<br /><br />* 0-11 : Boutons tactiles<br /><br /><br/><br /><br />== Bibliothèque ==<br />Il peut s'utiliser avec plusieurs bibliothèques. A partir du gestionnaire de bibliothèque, ajoutez la bibliothèque Adafruit MPR121<br /><br />== Câblage ==<br /><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Capteur Capacitif MPR121 CapteurcapacitifMPR121 bb.png" data-sourceimage="https://www.wikidebrouillard.org/images/5/5c/Item-Capteur_Capacitif_MPR121_CapteurcapacitifMPR121_bb.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Capteur_Capacitif_MPR121_CapteurcapacitifMPR121_bb.png" class="image" title="Capteur tactile capacitif MPR121"><img alt="Capteur tactile capacitif MPR121" src="/images/5/5c/Item-Capteur_Capacitif_MPR121_CapteurcapacitifMPR121_bb.png" width="729" height="432" data-file-width="729" data-file-height="432" /></a></div></div></span></div><br/><br /><br />== Code minimal ==<br /><br/><br /><table class="wikitable" width="617" cellspacing="0" cellpadding="2"><br /><tr><br /><td width="98" height="17" bgcolor="#999999"><br /></td><td width="199" bgcolor="#999999"><br /></td><td width="308" bgcolor="#999999">MPR121<br /></td></tr><tr><br /><td rowspan="2" width="98" bgcolor="#999999">Avant le Setup<br /></td><td width="199" bgcolor="#999999">Importation de la bibliothèque<br /></td><td width="308">#include <Wire.h><br /><br />#include "Adafruit_MPR121.h"<br /></td></tr><tr><br /><td width="199" bgcolor="#999999">Création de l’objet<br /></td><td width="308">Adafruit_MPR121 capteur = Adafruit_MPR121();<br /><br /><br />// Déclaration de variable<br /><br />uint16_t actuelleTouche = 0;<br /></td></tr><tr><br /><td width="98" height="17" bgcolor="#999999">Dans le Setup<br /></td><td width="199" bgcolor="#999999">Démarrage de l’objet<br /></td><td width="308">if (!capteur.begin(0x5A)) {<br /><br />while (1);<br /><br />}<br /></td></tr><tr><br /><td width="98" height="17" bgcolor="#999999">Dans le Loop<br /></td><td width="199" bgcolor="#999999">Utilisation<br /></td><td width="308">actuelleTouche = capteur.touched();<br/><br /></td></tr></table><br /><br /><br />== Exemple ==<br /><br/><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="lineno"> 1 </span><span class="c1">////////////////////////</span><br /><span class="lineno"> 2 </span><span class="c1">// Capteur Capacitif //</span><br /><span class="lineno"> 3 </span><span class="c1">// MPR121 //</span><br /><span class="lineno"> 4 </span><span class="c1">////////////////////////</span><br /><span class="lineno"> 5 </span><br /><span class="lineno"> 6 </span><span class="cm">/*</span><br /><span class="lineno"> 7 </span><br /><span class="lineno"> 8 </span><span class="cm">LOLIN (wemos)D1 mini </span><br /><span class="lineno"> 9 </span><span class="cm"> _______________________________ Capteur capacitif MPR121</span><br /><span class="lineno">10 </span><span class="cm"> / _________________ \ _________________</span><br /><span class="lineno">11 </span><span class="cm"> / / D1 mini \ \ | L 11[ ]|</span><br /><span class="lineno">12 </span><span class="cm"> / |[ ]RST TX[ ]| \ | E 10[ ]|</span><br /><span class="lineno">13 </span><span class="cm"> | |[ ]A0 -GPIO RX[ ]| \ | D 9[ ]|</span><br /><span class="lineno">14 </span><span class="cm"> | |[ ]D0-16 5-D1[X]| SCL----------. \-|[X]3,3V / 8[ ]|</span><br /><span class="lineno">15 </span><span class="cm"> | |[ ]D5-14 4-D2[X]| SDA---------. \ |[ ]IRQ e 7[ ]|</span><br /><span class="lineno">16 </span><span class="cm"> | |[ ]D6-12 0-D3[ ]| \ \-|[X]SCL l 6[ ]|</span><br /><span class="lineno">17 </span><span class="cm"> | |[ ]D7-13 2-D4[ ]| LED_BUILTIN \--|[X]SDA e 5[ ]|</span><br /><span class="lineno">18 </span><span class="cm"> | |[ ]D8-15 GND[X]|--------------. |[ ]ADD c 4[ ]|</span><br /><span class="lineno">19 </span><span class="cm"> \--|[X]3V3 5V[ ]| \--|[X]GND t 3[ ]|</span><br /><span class="lineno">20 </span><span class="cm"> | +---+ | | r 2[ ]|</span><br /><span class="lineno">21 </span><span class="cm"> |_______|USB|_______| | o 1[ ]|</span><br /><span class="lineno">22 </span><span class="cm"> | MPR121 d 0[ ]|</span><br /><span class="lineno">23 </span><span class="cm"> |_________e_______| </span><br /><span class="lineno">24 </span><br /><span class="lineno">25 </span><span class="cm">Matériel :</span><br /><span class="lineno">26 </span><span class="cm"> - Des fils dupont</span><br /><span class="lineno">27 </span><span class="cm"> - Un LOLIN (ou Wemos) D1 mini</span><br /><span class="lineno">28 </span><span class="cm"> - Capteur capacitif MPR121</span><br /><span class="lineno">29 </span><br /><span class="lineno">30 </span><span class="cm"> </span><br /><span class="lineno">31 </span><span class="cm"> Schéma de l'Arduino en ASCII-ART CC-By http://busyducks.com/ascii-art-arduinos</span><br /><span class="lineno">32 </span><span class="cm"> Sous licence CC-By-Sa (http://creativecommons.org/licenses/by-nc-sa/3.0/)</span><br /><span class="lineno">33 </span><span class="cm"> ___</span><br /><span class="lineno">34 </span><span class="cm"> / ___ \</span><br /><span class="lineno">35 </span><span class="cm"> |_| | </span><br /><span class="lineno">36 </span><span class="cm"> /_/</span><br /><span class="lineno">37 </span><span class="cm"> _ ___ _</span><br /><span class="lineno">38 </span><span class="cm"> |_| |___|_| |_</span><br /><span class="lineno">39 </span><span class="cm"> ___|_ _|</span><br /><span class="lineno">40 </span><span class="cm"> |___| |_|</span><br /><span class="lineno">41 </span><span class="cm"> Les petits Débrouillards - février 2023 - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/</span><br /><span class="lineno">42 </span><br /><span class="lineno">43 </span><span class="cm"> Inspiré de : https://electropeak.com/learn/interfacing-mpr121-capacitive-touch-sensor-module-with-arduino/</span><br /><span class="lineno">44 </span><span class="cm"> Modified by MehranMaleki from Arduino Examples - janvier 2021</span><br /><span class="lineno">45 </span><span class="cm">*/</span><br /><span class="lineno">46 </span><br /><span class="lineno">47 </span><span class="cp">#include</span> <span class="cpf"><Wire.h></span><span class="cp"></span><br /><span class="lineno">48 </span><span class="cp">#include</span> <span class="cpf">"Adafruit_MPR121.h"</span><span class="cp"></span><br /><span class="lineno">49 </span><br /><span class="lineno">50 </span><span class="cp">#ifndef _BV</span><br /><span class="lineno">51 </span><span class="cp">#define _BV(bit) (1 << (bit))</span><br /><span class="lineno">52 </span><span class="cp">#endif</span><br /><span class="lineno">53 </span><br /><span class="lineno">54 </span><span class="c1">// Vous pouvez en avoir jusqu'à 4 MPR121 sur un bus i2c mais un seul suffit pour les tests !</span><br /><span class="lineno">55 </span><span class="n">Adafruit_MPR121</span> <span class="n">cap</span> <span class="o">=</span> <span class="n">Adafruit_MPR121</span><span class="p">();</span><br /><span class="lineno">56 </span><br /><span class="lineno">57 </span><span class="c1">// Garde la trace des dernières broches touchés.</span><br /><span class="lineno">58 </span><span class="c1">// Ainsi, nous savons quand les boutons sont 'relâchés'.</span><br /><span class="lineno">59 </span><span class="kr">uint16_t</span> <span class="n">precedentTouche</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span><br /><span class="lineno">60 </span><span class="kr">uint16_t</span> <span class="n">actuelTouche</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span><br /><span class="lineno">61 </span><br /><span class="lineno">62 </span><span class="kr">void</span> <span class="nb">setup</span> <span class="p">()</span> <span class="p">{</span><br /><span class="lineno">63 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span><br /><span class="lineno">64 </span><br /><span class="lineno">65 </span> <span class="k">while</span> <span class="p">(</span><span class="o">!</span><span class="nf">Serial</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// indispensable pour empêcher un Arduino leonardo/micro de démarrer trop vite !</span><br /><span class="lineno">66 </span> <span class="nf">delay</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span><br /><span class="lineno">67 </span> <span class="p">}</span><br /><span class="lineno">68 </span><br /><span class="lineno">69 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Programme de test du capteur capacitif MPR121 avec la bibliothèque Adafruit MPR121"</span><span class="p">);</span><br /><span class="lineno">70 </span><br /><span class="lineno">71 </span> <span class="c1">// L'adresse par défaut est 0x5A, si elle est liée à 3.3V, elle est 0x5B.</span><br /><span class="lineno">72 </span> <span class="c1">// Si elle est liée à SDA, c'est 0x5C et si elle est liée à SCL, c'est 0x5D.</span><br /><span class="lineno">73 </span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">cap</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mh">0x5A</span><span class="p">))</span> <span class="p">{</span><br /><span class="lineno">74 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Le MPR121 n'a pas été trouvé, vérifiez le cablage ?"</span><span class="p">);</span><br /><span class="lineno">75 </span> <span class="k">while</span> <span class="p">(</span><span class="mi">1</span><span class="p">);</span><br /><span class="lineno">76 </span> <span class="p">}</span><br /><span class="lineno">77 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"MPR121 trouvé !"</span><span class="p">);</span><br /><span class="lineno">78 </span><span class="p">}</span><br /><span class="lineno">79 </span><br /><span class="lineno">80 </span><span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno">81 </span> <span class="c1">// récupère les broches actuellement touchés</span><br /><span class="lineno">82 </span> <span class="n">actuelTouche</span> <span class="o">=</span> <span class="n">cap</span><span class="p">.</span><span class="n">touched</span><span class="p">();</span><br /><span class="lineno">83 </span><br /><span class="lineno">84 </span> <span class="k">for</span> <span class="p">(</span><span class="kr">uint8_t</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">12</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span><br /><span class="lineno">85 </span> <span class="c1">// si *est* touché et *n'était pas* touché avant, alerte !</span><br /><span class="lineno">86 </span> <span class="k">if</span> <span class="p">((</span><span class="n">actuelTouche</span> <span class="o">&</span> <span class="n">_BV</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="o">&&</span> <span class="o">!</span><span class="p">(</span><span class="n">precedentTouche</span> <span class="o">&</span> <span class="n">_BV</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="p">)</span> <span class="p">{</span><br /><span class="lineno">87 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Broche N° "</span><span class="p">);</span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">i</span><span class="p">);</span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">" touché"</span><span class="p">);</span><br /><span class="lineno">88 </span> <span class="p">}</span><br /><span class="lineno">89 </span> <span class="c1">// si elle *était* touchée et qu'elle ne l'est plus, alerte !</span><br /><span class="lineno">90 </span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="n">actuelTouche</span> <span class="o">&</span> <span class="n">_BV</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="o">&&</span> <span class="p">(</span><span class="n">precedentTouche</span> <span class="o">&</span> <span class="n">_BV</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> <span class="p">)</span> <span class="p">{</span><br /><span class="lineno">91 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Broche N° "</span><span class="p">);</span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">i</span><span class="p">);</span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"relachée"</span><span class="p">);</span><br /><span class="lineno">92 </span> <span class="p">}</span><br /><span class="lineno">93 </span> <span class="p">}</span><br /><span class="lineno">94 </span><br /><span class="lineno">95 </span> <span class="c1">// Mémorisation</span><br /><span class="lineno">96 </span> <span class="n">precedentTouche</span> <span class="o">=</span> <span class="n">actuelTouche</span><span class="p">;</span><br /><span class="lineno">97 </span><br /><span class="lineno">98 </span><span class="p">}</span><br /></pre></div><br/></nowiki>
<nowiki><div class="icon-instructions info-icon"><br /><div class="icon-instructions-icon"><i class="fa fa-info-circle"></i></div><br /><div class="icon-instructions-text">Il doit être alimenté en 5V</div><br /></div><br /><br /><br />plus d'infos : <br />=Caractéristiques=<br /><br />*alimentation maxi : 5V<br /><br /><br/><br />=Bibliothèque : =<br />Pour utiliser facilement cet Interrupteur, nous vous conseillons d'utiliser la bibliothèque<br /><br />ezButton (présente dans le gestionnaire de bibliothèques arduino)<br /><br />plus d'infos pour [[Importer des bibliothèques dans l'interface Arduino]]<br /><br/><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-End-Stop Sensor Library.png" data-sourceimage="https://www.wikidebrouillard.org/images/5/5f/Item-End-Stop_Sensor_Library.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-End-Stop_Sensor_Library.png" class="image"><img alt="Item-End-Stop Sensor Library" src="/images/5/5f/Item-End-Stop_Sensor_Library.png" width="1031" height="228" data-file-width="1031" data-file-height="228" /></a></div></div></span></div><br /><br /><br /><br />La bibliothèque est disponible ici : https://github.com/ArduinoGetStarted/button<br />=Câblage : =<br /><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-End-Stop Sensor.png" data-sourceimage="https://www.wikidebrouillard.org/images/9/97/Item-End-Stop_Sensor.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-End-Stop_Sensor.png" class="image"><img alt="Item-End-Stop Sensor" src="/images/9/97/Item-End-Stop_Sensor.png" width="1041" height="690" data-file-width="1041" data-file-height="690" /></a></div></div></span></div><br /><br /><br />=Le code minimal : =<br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">End-Stop Sensor<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">#include <ezButton.h><br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Création de l'objet et Configuration de la broche<br /></td><td valign="middle" align="left">ezButton limitSwitch(7); <br /></td></tr><tr><br /><td valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Configuration du temps de rebond<br /></td><td valign="middle" align="left">limitSwitch.setDebounceTime(50);<br /></td></tr><tr><br /><td valign="middle" height="41" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td valign="middle" align="left">limitSwitch.loop(); <br /><br /> if(limitSwitch.isPressed())<br /><br /> Serial.println("L'interrupteur de fin de course: NON TOUCHÉ -> TOUCHÉ");<br /><br /> if(limitSwitch.isReleased())<br /><br /> Serial.println("L'interrupteur de fin de course: TOUCHÉ -> NON TOUCHÉ");<br /><br /> int state = limitSwitch.getState();<br /><br /> if(state == HIGH)<br /><br /> Serial.println("L'interrupteur de fin de course: NON TOUCHÉ");<br /><br /> else<br /><br /> Serial.println("L'interrupteur de fin de course: TOUCHÉ");<br /></td></tr></table><br />=Autres fonctionnalités=<br />Aucune autres fonctionnalités<br />=Exemple : =<br /><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="lineno"> 1 </span><span class="cp">#include</span> <span class="cpf"><ezButton.h></span><span class="cp"></span><br /><span class="lineno"> 2 </span><br /><span class="lineno"> 3 </span><span class="n">ezButton</span> <span class="nf">limitSwitch</span><span class="p">(</span><span class="mi">7</span><span class="p">);</span> <span class="c1">// créer un objet ezButton qui s'attache à la broche 7</span><br /><span class="lineno"> 4 </span><br /><span class="lineno"> 5 </span><span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno"> 6 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span><br /><span class="lineno"> 7 </span> <span class="n">limitSwitch</span><span class="p">.</span><span class="n">setDebounceTime</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span> <span class="c1">// fixer le temps de rebond à 50 millisecondes</span><br /><span class="lineno"> 8 </span><br /><span class="lineno"> 9 </span><span class="p">}</span><br /><span class="lineno">10 </span><br /><span class="lineno">11 </span><span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno">12 </span> <span class="n">limitSwitch</span><span class="p">.</span><span class="nb">loop</span><span class="p">();</span> <span class="c1">// DOIT appeler la fonction loop() en premier</span><br /><span class="lineno">13 </span><br /><span class="lineno">14 </span> <span class="k">if</span><span class="p">(</span><span class="n">limitSwitch</span><span class="p">.</span><span class="nf">isPressed</span><span class="p">())</span><br /><span class="lineno">15 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"L'interrupteur de fin de course: NON TOUCHÉ -> TOUCHÉ"</span><span class="p">);</span><br /><span class="lineno">16 </span><br /><span class="lineno">17 </span> <span class="k">if</span><span class="p">(</span><span class="n">limitSwitch</span><span class="p">.</span><span class="n">isReleased</span><span class="p">())</span><br /><span class="lineno">18 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"L'interrupteur de fin de course: TOUCHÉ -> NON TOUCHÉ"</span><span class="p">);</span><br /><span class="lineno">19 </span><br /><span class="lineno">20 </span> <span class="kr">int</span> <span class="n">state</span> <span class="o">=</span> <span class="n">limitSwitch</span><span class="p">.</span><span class="n">getState</span><span class="p">();</span><br /><span class="lineno">21 </span> <span class="k">if</span><span class="p">(</span><span class="n">state</span> <span class="o">==</span> <span class="kr">HIGH</span><span class="p">)</span><br /><span class="lineno">22 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"L'interrupteur de fin de course: NON TOUCHÉ"</span><span class="p">);</span><br /><span class="lineno">23 </span> <span class="k">else</span><br /><span class="lineno">24 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"L'interrupteur de fin de course: TOUCHÉ"</span><span class="p">);</span><br /><span class="lineno">25 </span><br /><span class="lineno">26 </span><span class="p">}</span><br /></pre></div><span> </span></nowiki>
Le capteur Mi-flora fonctionne en Bluetooth
Il permet de mesurer les grandeurs suivantes :
- Température en °C
- Humidité du sol en %
- Conductivité en µS/cm (Indice de fertilisation)
- Luminosité en Lux
+<nowiki>'''DHT''' c'est pour "'''D'''igital-output relative '''H'''umidity & '''T'''emperature sensor", ce qui signifie à peu près capteur d'humidité relative et température à sortie numérique.<br /><br /><br />il fonctionne de 3,3 V à 6V et sur une plage de température de -40°C à +80°C. <br /><br /><br />Ses dimension sont de :<br /><br />*14*18*5.5mm, pour le petit modèle<br />*22*28*5mm , pour le grand modèle<br /><br />Il s'utilise avec Arduino, Raspberry pi ou n'importe quel microcontrôleur ou ordinateur.<br /><br /><br/><br /><br />==Caractéristiques : ==<br /><br />*Alimentation: 3,3 à 6 Vcc<br />*Consommation maxi: 1,5 mA<br />*Consommation au repos: 50 µA<br />*Plage de mesure: - température: -40 à +80 °C - humidité: 0 à 100 % RH<br />*Précision: - température: ± 0,5 °C - humidité: ± 2 % RH<br />*Dimensions: 25 x 15 x 9 mm<br /><br /><br/><br />==Bibliothèque : ==<br />Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque "'''''DHT Sensor Library by Adafruit'''''" (présente dans le gestionnaire de bibliothèques arduino)<br /><br />plus d'infos pour [[Importer des bibliothèques dans l'interface Arduino]]<div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Capteur dhumidite-Temperature DHT22 Arduino-lib-DHT.png" data-sourceimage="https://www.wikidebrouillard.org/images/8/8e/Item-Capteur_dhumidite-Temperature_DHT22_Arduino-lib-DHT.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Capteur_dhumidite-Temperature_DHT22_Arduino-lib-DHT.png" class="image"><img alt="Item-Capteur dhumidite-Temperature DHT22 Arduino-lib-DHT.png" src="/images/8/8e/Item-Capteur_dhumidite-Temperature_DHT22_Arduino-lib-DHT.png" width="780" height="100" data-file-width="780" data-file-height="100" /></a></div></div></span></div>La bibliothèque est ici : https://github.com/adafruit/DHT-sensor-library<br /><br /><br /><br />Installez la dépendance Adafruit Unified Sensor Library si le gestionnaire de Bibliothèque ne vous la propose pas :<div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Capteur dhumidite-Temperature DHT22 Capture decran du 2020-12-08 16-25-59.png" data-sourceimage="https://www.wikidebrouillard.org/images/e/e9/Item-Capteur_dhumidite-Temperature_DHT22_Capture_decran_du_2020-12-08_16-25-59.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Capteur_dhumidite-Temperature_DHT22_Capture_decran_du_2020-12-08_16-25-59.png" class="image"><img alt="Item-Capteur dhumidite-Temperature DHT22 Capture decran du 2020-12-08 16-25-59.png" src="/images/e/e9/Item-Capteur_dhumidite-Temperature_DHT22_Capture_decran_du_2020-12-08_16-25-59.png" width="831" height="128" data-file-width="831" data-file-height="128" /></a></div></div></span></div><br/><br /><br />==Câblage : ==<br />Attention utilisez une résistance de 10KOhm pour la résistance de PULLUP !<div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Capteur dhumidite-Temperature DHT22 DHT22 bb.jpg" data-sourceimage="https://www.wikidebrouillard.org/images/5/56/Item-Capteur_dhumidite-Temperature_DHT22_DHT22_bb.jpg"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Capteur_dhumidite-Temperature_DHT22_DHT22_bb.jpg" class="image"><img alt="Item-Capteur dhumidite-Temperature DHT22 DHT22 bb.jpg" src="/images/5/56/Item-Capteur_dhumidite-Temperature_DHT22_DHT22_bb.jpg" width="567" height="768" data-file-width="567" data-file-height="768" /></a></div></div></span></div><br/><br />==Code Minimal==<br /><br/><br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">Capteur DHT22<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">#include "DHT.h"<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Création de l’objet<br /></td><td valign="middle" align="left">DHT dht(broche, DHT22);<br /></td></tr><tr><br /><td valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Démarrage de l’objet<br /></td><td valign="middle" align="left">dht.begin();<br /></td></tr><tr><br /><td valign="middle" height="41" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td valign="middle" align="left">int temp = dht.readTemperature();<br />int hum = dht.readHumidity();<br /></td></tr></table><br /><br/><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="lineno"> 1 </span><span class="c1">//Ajout de la bibliothèque DHT Sensor Library</span><br /><span class="lineno"> 2 </span><span class="cp">#include</span> <span class="cpf">"DHT.h"</span><span class="cp"></span><br /><span class="lineno"> 3 </span><br /><span class="lineno"> 4 </span><span class="c1">// Broche où est connectée le capteur DHT</span><br /><span class="lineno"> 5 </span><span class="cp">#define DHTPIN D2</span><br /><span class="lineno"> 6 </span><br /><span class="lineno"> 7 </span><span class="c1">// Définir le type de capteur DHT</span><br /><span class="lineno"> 8 </span><span class="cp">#define DHTTYPE DHT22 </span><br /><span class="lineno"> 9 </span><br /><span class="lineno">10 </span><span class="c1">// Initialisation du Capteur DHT</span><br /><span class="lineno">11 </span><span class="n">DHT</span> <span class="nf">dht</span><span class="p">(</span><span class="n">DHTPIN</span><span class="p">,</span> <span class="n">DHTTYPE</span><span class="p">);</span><br /><span class="lineno">12 </span><br /><span class="lineno">13 </span><span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno">14 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span> <span class="c1">// démarrage de la connexion série</span><br /><span class="lineno">15 </span> <span class="n">dht</span><span class="p">.</span><span class="nf">begin</span><span class="p">();</span><br /><span class="lineno">16 </span><span class="p">}</span><br /><span class="lineno">17 </span><br /><span class="lineno">18 </span><span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno">19 </span> <span class="cm">/* Mesure de température et d'humidité */</span><br /><span class="lineno">20 </span> <span class="c1">//Lecture de l'humidité ambiante</span><br /><span class="lineno">21 </span> <span class="kr">float</span> <span class="n">h</span> <span class="o">=</span> <span class="n">dht</span><span class="p">.</span><span class="n">readHumidity</span><span class="p">();</span><br /><span class="lineno">22 </span> <span class="c1">// Lecture de la température en Celcius</span><br /><span class="lineno">23 </span> <span class="kr">float</span> <span class="n">t</span> <span class="o">=</span> <span class="n">dht</span><span class="p">.</span><span class="nf">readTemperature</span><span class="p">();</span><br /><span class="lineno">24 </span> <span class="c1">//Affichage de la température dans le moniteur série</span><br /><span class="lineno">25 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Température : "</span><span class="p">);</span><br /><span class="lineno">26 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">t</span><span class="p">);</span><br /><span class="lineno">27 </span> <span class="c1">//Affichage de l'humidité dans le moniteur série</span><br /><span class="lineno">28 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Humidité : "</span><span class="p">);</span><br /><span class="lineno">29 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">h</span><span class="p">);</span><br /><span class="lineno">30 </span><span class="p">}</span><br /></pre></div></nowiki>
<nowiki><div class="icon-instructions info-icon"><br /><div class="icon-instructions-icon"><i class="fa fa-info-circle"></i></div><br /><div class="icon-instructions-text">Il doit être alimenté en 5V</div><br /></div><br/><br />=Caractéristiques : =<br /><br />*alimentation maxi : 5V<br/><br /><br />=Bibliothèque : =<br />Pour utiliser le capteur d'inclinaison à bille il n'y a besoin d'aucunes bibliothèques <br />=Câblage : =<br /><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Capteur dinclinaison SW-520D.png" data-sourceimage="https://www.wikidebrouillard.org/images/f/f5/Item-Capteur_dinclinaison_SW-520D.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Capteur_dinclinaison_SW-520D.png" class="image"><img alt="Item-Capteur dinclinaison SW-520D" src="/images/f/f5/Item-Capteur_dinclinaison_SW-520D.png" width="1024" height="1024" data-file-width="1024" data-file-height="1024" /></a></div></div></span></div><br/><br />=Le code minimal : =<br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">SW-520D<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">Aucune Librairies<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Définition des pins et des variables<br /></td><td valign="middle" align="left">#define inPin 7<br />int value = 0<br /></td></tr><tr><br /><td valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Configuration des pins<br /></td><td valign="middle" align="left">pinMode(inPin, INPUT);<br />Serial.begin(9600);<br /></td></tr><tr><br /><td valign="middle" height="41" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td valign="middle" align="left">value = digitalRead(inPin);<br /></td></tr></table><br />=Autres fonctionnalités=<br />Aucune autres fonctionalités <br />=Exemple : =<br /><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#define inPin 7</span><br /><span class="kr">int</span> <span class="n">value</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span><br /><br /><span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span><br /> <span class="nf">pinMode</span><span class="p">(</span><span class="n">inPin</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span><br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span><br /><span class="p">}</span><br /><span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span><br /> <span class="n">value</span> <span class="o">=</span> <span class="nf">digitalRead</span><span class="p">(</span><span class="n">inPin</span><span class="p">);</span><br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Valeur: "</span><span class="p">);</span><br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">value</span><span class="p">);</span><br /><span class="p">}</span><br /></pre></div><span> </span><br /><br /><br/></nowiki>
<nowiki>==Principe: ==<br />Le capteur CO2 Sensair S8, est un capteur NDIR (InfraRouge non Dispersif), le principe de mesure est un principe optique :<br /><br />Une chambre de mesure est parcourue par un faisceau infrarouge et de l'autre coté de la chambre un capteur ultra sensible mesure les variations d’absorption de la lumière. En fonction des ondes absorbées par la présence de CO2 il en déduit la quantité. Cette mesure utilise le principe de la spectrométrie. (expérience en lien [[Lumière : dispersion de la lumière]] )<div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Schema de principe du capteur.png" data-sourceimage="https://www.wikidebrouillard.org/images/8/86/Schema_de_principe_du_capteur.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Schema_de_principe_du_capteur.png" class="image" title="Schema de principe"><img alt="Schema de principe" src="/images/8/86/Schema_de_principe_du_capteur.png" width="697" height="333" data-file-width="697" data-file-height="333" /></a></div></div></span></div><br /><br /><br />Selon le Fablab Central Supélec La Fabrique, les capteurs NDIR sont plus fiables et robustes que les capteurs de CO2 utilisant d'autres technologies (chimiques, MOX ...). Plus d'infos http://projetco2.fr/documents/presentation_PM_webinaireco2_v5_bpd.pdf<br />==Caractéristiques : ==<br />Document PDF : http://co2meters.com/Documentation/Manuals/DS_SE_0119_CM_0177_Revised8.pdf<br /><br />*Mesure du CO2 : infrarouge non dispersif (NDIR)<br />*Méthode de mesure : diffusion<br />*Plage de mesure : (0-10 000 ppm)<br />*Temps de réponse : 90% à 2 minutes<br />*Intervalle de mesure: 0,5 Hz (toutes les 2 secondes)<br />*Précision CO2: ± 70ppm ± 3% de la valeur mesurée<br />*Options de communication: UART Modbus<br />*Sortie disponible : analogique<br />*Espérance de vie du capteur : > 15 ans<br />*Intervalle de maintenance : aucun entretien requis<br />*Autodiagnostic : contrôle de fonctionnement complet au démarrage<br /><br /><br/><br />==Bibliothèque : ==<br />Pour utiliser facilement ce capteur, nous vous conseillons d'utiliser la bibliothèque ''AirGradient Air Quality Sensor'' que vous trouverez dans le catalogue de bibliothèques d'Arduino plus d'infos pour la procédure [[Importer des bibliothèques dans l'interface Arduino|<u>Importer des bibliothèques dans l'interface Arduino</u>]]<br /><br/><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Capteur de CO2 SENSEAIR S8 Image2.png" data-sourceimage="https://www.wikidebrouillard.org/images/7/7b/Item-Capteur_de_CO2_SENSEAIR_S8_Image2.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Capteur_de_CO2_SENSEAIR_S8_Image2.png" class="image"><img alt="Item-Capteur de CO2 SENSEAIR S8 Image2.png" src="/images/7/7b/Item-Capteur_de_CO2_SENSEAIR_S8_Image2.png" width="827" height="147" data-file-width="827" data-file-height="147" /></a></div></div></span></div><br/>Plus d'infos et sources : <u>https://github.com/airgradienthq/arduino</u><br />==Câblage==<br /><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Capteur de CO2 SENSEAIR S8 Capture decran du 2021-04-02 10-56-35.png" data-sourceimage="https://www.wikidebrouillard.org/images/7/75/Item-Capteur_de_CO2_SENSEAIR_S8_Capture_decran_du_2021-04-02_10-56-35.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Capteur_de_CO2_SENSEAIR_S8_Capture_decran_du_2021-04-02_10-56-35.png" class="image"><img alt="Item-Capteur de CO2 SENSEAIR S8 Imageschema.png" src="/images/thumb/7/75/Item-Capteur_de_CO2_SENSEAIR_S8_Capture_decran_du_2021-04-02_10-56-35.png/872px-Item-Capteur_de_CO2_SENSEAIR_S8_Capture_decran_du_2021-04-02_10-56-35.png" width="872" height="591" data-file-width="1386" data-file-height="939" /></a></div></div></span></div><br/><br />==Code Minimal==<br />Attention : l'utilisation de la bibliothèque à évolué. nous avons mis à jour le code le 9 août 2024. Si vous rencontrez des problèmes référez-vous toujours à la bibliothèque.<br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td rowspan="2" valign="middle" height="60" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">#include <AirGradient.h><br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Création de l’objet<br /></td><td valign="middle" align="left">AirGradient monCapteur = AirGradient(DIY_BASIC);<br /></td></tr><tr><br /><td valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Démarrage de l’objet<br /></td><td valign="middle" align="left">monCapteur.s8.begin(&Serial); // démarrage du capteur<br /></td></tr><tr><br /><td valign="middle" height="17" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td valign="middle" align="left">int CO2 = monCapteur.s8.getCo2();<br /></td></tr></table>Astuce: il est possible RX et TX soient inversé, dans ce cas il vous suffit d'inverser D3 et D4 dans votre code. ATTENTION Valable uniquement pour un wemos ESP8266<br />==Exemple==<br />Inspiré de TestCO2.ino de la bibliothèque AirGrandiant.<br/><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="lineno"> 0 </span><span class="cp">#include</span> <span class="cpf"><AirGradient.h> // import de la bibliothèque Air Gradient</span><span class="cp"></span><br /><span class="lineno"> 1 </span><span class="n">AirGradient</span> <span class="n">monCapteur</span> <span class="o">=</span> <span class="n">AirGradient</span><span class="p">(</span><span class="n">DIY_BASIC</span><span class="p">);</span> <span class="c1">// Création de l'objet "monCapteur"</span><br /><span class="lineno"> 2 </span><br /><span class="lineno"> 3 </span><span class="kr">void</span> <span class="nb">setup</span><span class="p">(){</span><br /><span class="lineno"> 4 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span> <span class="c1">// Démarrage de la liaison série</span><br /><span class="lineno"> 5 </span> <span class="n">monCapteur</span><span class="p">.</span><span class="n">s8</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="o">&</span><span class="nf">Serial</span><span class="p">);</span> <span class="c1">// Démarrage et initialisation de l'objet</span><br /><span class="lineno"> 6 </span><span class="p">}</span><br /><span class="lineno"> 7 </span><br /><span class="lineno"> 8 </span><span class="kr">void</span> <span class="nb">loop</span><span class="p">(){</span><br /><span class="lineno"> 9 </span><span class="kr">int</span> <span class="n">CO2</span> <span class="o">=</span> <span class="n">monCapteur</span><span class="p">.</span><span class="n">s8</span><span class="p">.</span><span class="n">getCo2</span><span class="p">();</span> <span class="c1">// mesure brute du CO2 placée dans la variable "CO2"</span><br /><span class="lineno">10 </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Taux de CO2 : "</span><span class="p">);</span><br /><span class="lineno">11 </span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">CO2</span><span class="p">);</span> <span class="c1">// Affichage du CO2 en ppm </span><br /><span class="lineno">12 </span><span class="nf">delay</span><span class="p">(</span><span class="mi">5000</span><span class="p">);</span> <span class="c1">// attente de 5 secondes (le temps de mesure du capteur est de 2s)</span><br /><span class="lineno">13 </span><span class="p">}</span><br /></pre></div><br /><br />==Le capteurs en ASCII pour de beaux codes !==<br />Pour bien illustrer vos code !<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span> <span class="n">_________________</span> <br /> <span class="o">/</span> <span class="n">D1</span> <span class="n">mini</span> <span class="err">\</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="n">RST</span> <span class="n">Tx</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <span class="o">-></span> <span class="n">UART_RxD</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="n">A0</span> <span class="o">-</span><span class="n">GPIO</span> <span class="n">Rx</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <span class="o">-></span> <span class="n">UART_TxD</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="n">D0</span><span class="o">-</span><span class="mi">16</span> <span class="mi">5</span><span class="o">-</span><span class="n">D1</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="n">D5</span><span class="o">-</span><span class="mi">14</span> <span class="mi">4</span><span class="o">-</span><span class="n">D2</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="n">D6</span><span class="o">-</span><span class="mi">12</span> <span class="mi">0</span><span class="o">-</span><span class="n">D3</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="n">D7</span><span class="o">-</span><span class="mi">13</span> <span class="mi">2</span><span class="o">-</span><span class="n">D4</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="n">D8</span><span class="o">-</span><span class="mi">15</span> <span class="n">GND</span><span class="p">[</span><span class="n">X</span><span class="p">]</span><span class="o">|</span> <span class="o">-></span> <span class="n">G0</span> <br /> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="mi">3</span><span class="n">V3</span> <span class="p">.</span> <span class="mi">5</span><span class="n">V</span><span class="p">[</span><span class="n">X</span><span class="p">]</span><span class="o">|</span> <span class="o">-></span> <span class="n">G</span><span class="o">+</span> <br /> <span class="o">|</span> <span class="o">+---+</span> <span class="o">|</span> <br /> <span class="o">|</span><span class="n">_______</span><span class="o">|</span><span class="n">USB</span><span class="o">|</span><span class="n">_______</span><span class="o">|</span> <br /><br /> <span class="n">________________________</span><br /> <span class="o">|</span> <span class="o">|</span><span class="err">°</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span><span class="o">|</span> <span class="o">|</span> <span class="o">|</span><br /> <span class="o">+</span><span class="mi">5</span><span class="n">V</span> <span class="o"><-</span> <span class="n">G</span><span class="o">+</span> <span class="o">|</span><span class="p">[</span><span class="n">X</span><span class="p">]</span><span class="o">|</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span><span class="o">/</span> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <span class="n">DVCC_out</span><br /> <span class="n">GND</span> <span class="o"><-</span> <span class="n">G0</span> <span class="o">|</span><span class="p">[</span><span class="n">X</span><span class="p">]</span><span class="o">|</span><span class="err">°</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span> <span class="err">°</span><span class="o">/</span> <span class="o">|</span><span class="p">[</span><span class="n">X</span><span class="p">]</span><span class="o">|</span> <span class="n">UART_RxD</span> <span class="o">-></span> <span class="n">Tx</span><br /> <span class="n">Alarm_OC</span> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span><span class="n">_</span><span class="err">°</span><span class="n">_</span><span class="err">°</span><span class="n">_</span><span class="err">°</span><span class="n">_</span><span class="err">°</span><span class="o">|</span> <span class="o">|</span><span class="p">[</span><span class="n">X</span><span class="p">]</span><span class="o">|</span> <span class="n">UART_TxD</span> <span class="o">-></span> <span class="n">Rx</span><br /> <span class="n">PWM</span> <span class="mi">1</span><span class="n">Khz</span> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <span class="n">UART_R</span><span class="o">/</span><span class="n">T</span><br /> <span class="o">|</span> <span class="o">|</span> <span class="n">SenseAir</span><span class="err">®</span> <span class="n">S8</span> <span class="o">|</span><span class="p">[</span> <span class="p">]</span><span class="o">|</span> <span class="n">bCAL_in</span><span class="o">/</span><span class="n">CAL</span><br /> <span class="o">|</span><span class="n">___</span><span class="o">|</span><span class="n">________________</span><span class="o">|</span><span class="n">___</span><span class="o">|</span><br /></pre></div><br /><br /><br /><br /><br/><br /><br />== A vous de jouer ! ==</nowiki>
<nowiki><div class="icon-instructions info-icon"><br /><div class="icon-instructions-icon"><i class="fa fa-info-circle"></i></div><br /><div class="icon-instructions-text">Il doit être alimenté en 5V</div><br /></div><br/><br />=Caractéristiques : =<br /><br />*alimentation maxi : 6V<br/><br /><br />=Bibliothèque : =<br />Pour utiliser le capteur de couleur il n'y a besoin d'aucunes bibliothèques<br /><br/><br /><br />=Câblage : =<br /><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item-Color Sensor TCS 3200.png" data-sourceimage="https://www.wikidebrouillard.org/images/2/26/Item-Color_Sensor_TCS_3200.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item-Color_Sensor_TCS_3200.png" class="image"><img alt="Item-Color Sensor TCS 3200" src="/images/2/26/Item-Color_Sensor_TCS_3200.png" width="842" height="501" data-file-width="842" data-file-height="501" /></a></div></div></span></div><br /><br /><br />=Le code minimal : =<br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">TCS 3200<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">Aucune Librairies<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Définition des pins et des variables<br /></td><td valign="middle" align="left">#define S0 4<br /><br />#define S1 5<br /><br />#define S2 6<br /><br />#define S3 7<br /><br />#define sensorOut 8<br /><br />int redFrequency = 0;<br /><br />int greenFrequency = 0;<br /><br />int blueFrequency = 0;<br /><br/><br /></td></tr><tr><br /><td valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Configuration des pins & initialisation des valeurs<br /></td><td valign="middle" align="left">pinMode(S0, OUTPUT);<br /><br />pinMode(S1, OUTPUT);<br /><br />pinMode(S2, OUTPUT);<br /><br />pinMode(S3, OUTPUT); <br /><br />pinMode(sensorOut, INPUT);<br /><br />digitalWrite(S0,HIGH);<br /><br />digitalWrite(S1,LOW);<br /></td></tr><tr><br /><td valign="middle" height="41" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td valign="middle" align="left">redFrequency = pulseIn(sensorOut, LOW);<br /><br />greenFrequency = pulseIn(sensorOut, LOW);<br /><br />blueFrequency = pulseIn(sensorOut, LOW);<br /></td></tr></table><br /><br />=Autres fonctionnalités=<br />Aucune autres fonctionalités<br /><br/><br /><br />=Exemple : =<br /><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#define S0 4</span><br /><span class="cp">#define S1 5</span><br /><span class="cp">#define S2 6</span><br /><span class="cp">#define S3 7</span><br /><span class="cp">#define sensorOut 8</span><br /><br /><span class="kr">int</span> <span class="n">redFrequency</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span><br /><span class="kr">int</span> <span class="n">greenFrequency</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span><br /><span class="kr">int</span> <span class="n">blueFrequency</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span><br /><br /><span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span><br /> <span class="nf">pinMode</span><span class="p">(</span><span class="n">S0</span><span class="p">,</span> <span class="kr">OUTPUT</span><span class="p">);</span><br /> <span class="nf">pinMode</span><span class="p">(</span><span class="n">S1</span><span class="p">,</span> <span class="kr">OUTPUT</span><span class="p">);</span><br /> <span class="nf">pinMode</span><span class="p">(</span><span class="n">S2</span><span class="p">,</span> <span class="kr">OUTPUT</span><span class="p">);</span><br /> <span class="nf">pinMode</span><span class="p">(</span><span class="n">S3</span><span class="p">,</span> <span class="kr">OUTPUT</span><span class="p">);</span><br /> <br /> <span class="nf">pinMode</span><span class="p">(</span><span class="n">sensorOut</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span><br /> <br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S0</span><span class="p">,</span><span class="kr">HIGH</span><span class="p">);</span><br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S1</span><span class="p">,</span><span class="kr">LOW</span><span class="p">);</span><br /> <br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span><br /><span class="p">}</span><br /><span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span><br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S2</span><span class="p">,</span><span class="kr">LOW</span><span class="p">);</span><br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S3</span><span class="p">,</span><span class="kr">LOW</span><span class="p">);</span><br /> <br /> <span class="n">redFrequency</span> <span class="o">=</span> <span class="nf">pulseIn</span><span class="p">(</span><span class="n">sensorOut</span><span class="p">,</span> <span class="kr">LOW</span><span class="p">);</span><br /> <br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"R = "</span><span class="p">);</span><br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">redFrequency</span><span class="p">);</span><br /> <span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span><br /> <br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S2</span><span class="p">,</span><span class="kr">HIGH</span><span class="p">);</span><br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S3</span><span class="p">,</span><span class="kr">HIGH</span><span class="p">);</span><br /> <br /> <span class="n">greenFrequency</span> <span class="o">=</span> <span class="nf">pulseIn</span><span class="p">(</span><span class="n">sensorOut</span><span class="p">,</span> <span class="kr">LOW</span><span class="p">);</span><br /> <br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">" V = "</span><span class="p">);</span><br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">greenFrequency</span><span class="p">);</span><br /> <span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span><br /> <br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S2</span><span class="p">,</span><span class="kr">LOW</span><span class="p">);</span><br /> <span class="nf">digitalWrite</span><span class="p">(</span><span class="n">S3</span><span class="p">,</span><span class="kr">HIGH</span><span class="p">);</span><br /> <br /> <span class="n">blueFrequency</span> <span class="o">=</span> <span class="nf">pulseIn</span><span class="p">(</span><span class="n">sensorOut</span><span class="p">,</span> <span class="kr">LOW</span><span class="p">);</span><br /> <br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">" B = "</span><span class="p">);</span><br /> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">blueFrequency</span><span class="p">);</span><br /> <span class="nf">delay</span><span class="p">(</span><span class="mi">100</span><span class="p">);</span><br /><span class="p">}</span><br /></pre></div><br/></nowiki>
<nowiki><div class="icon-instructions info-icon"><br /><div class="icon-instructions-icon"><i class="fa fa-info-circle"></i></div><br /><div class="icon-instructions-text">Il doit être alimenté en 5V</div><br /></div><br /><br /><br /><br />plus d'infos sur [https://pdf1.alldatasheet.fr/datasheet-pdf/view/652087/ETC2/SW-420.html la notice du composant "datasheet".]<br />=Caractéristiques=<br /><br />*alimentation maxi : 5V<br /><br /><br/><br />=Bibliothèque : =<br />Pour utiliser le capteur de vibration il n'y a besoin d'aucunes bibliothèques<br />=Câblage : =<br /><br/><div class="annotatedImageDiv" typeof="Image" data-resource="Fichier:Item Vibration Sensor SW420.png" data-sourceimage="https://www.wikidebrouillard.org/images/c/ce/Item_Vibration_Sensor_SW420.png"><span ><div class="center"><div class="floatnone"><a href="/wiki/Fichier:Item_Vibration_Sensor_SW420.png" class="image"><img alt="Item Vibration Sensor SW420" src="/images/c/ce/Item_Vibration_Sensor_SW420.png" width="971" height="518" data-file-width="971" data-file-height="518" /></a></div></div></span></div><br/><br />=Le code minimal : =<br /><table class="wikitable" cellspacing="0" border="0"><br /><tr><br /><td height="17" bgcolor="#999999" align="left"><br /></td><td valign="middle" bgcolor="#999999" align="center"><br /></td><td bgcolor="#999999" align="center">Vibration Sensor SW-420<br /></td></tr><tr><br /><td rowspan="2" valign="middle" height="49" bgcolor="#999999" align="center">Avant le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Importation de la bibliothèque<br /></td><td valign="middle" align="left">Aucunes bibliothèques<br /></td></tr><tr><br /><td valign="middle" bgcolor="#999999" align="center">Création des variables<br /></td><td valign="middle" align="left">int Vibration_signal = 7;<br />int Sensor_state = 1;<br /></td></tr><tr><br /><td valign="middle" height="17" bgcolor="#999999" align="center">Dans le Setup<br /></td><td valign="middle" bgcolor="#999999" align="center">Configuration de la broche<br /></td><td valign="middle" align="left">pinMode(Vibration_signal, INPUT);<br /></td></tr><tr><br /><td valign="middle" height="41" bgcolor="#999999" align="center">Dans le Loop<br /></td><td valign="middle" bgcolor="#999999" align="center">Utilisation<br /></td><td valign="middle" align="left">Serial.print("État des vibrations : ");<br /><br />Sensor_state = digitalRead(Vibration_signal);<br /><br />if (Sensor_state == 1) {<br /><br />Serial.println("Détection des vibrations");<br /><br />} else {<br /><br />Serial.println("Pas de vibration");<br /><br />}<br /><br />delay(50);<br /></td></tr></table><br />=Autres fonctionnalités=<br />Aucune autres fonctionnalités<br />=Exemple : =<br /><div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="lineno"> 1 </span><span class="kr">int</span> <span class="n">Vibration_signal</span> <span class="o">=</span> <span class="mi">7</span><span class="p">;</span><br /><span class="lineno"> 2 </span><span class="kr">int</span> <span class="n">Sensor_state</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span><br /><span class="lineno"> 3 </span><br /><span class="lineno"> 4 </span><span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno"> 5 </span> <span class="nf">pinMode</span><span class="p">(</span><span class="n">Vibration_signal</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span><br /><span class="lineno"> 6 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span><br /><span class="lineno"> 7 </span><span class="p">}</span><br /><span class="lineno"> 8 </span><br /><span class="lineno"> 9 </span><span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span><br /><span class="lineno">10 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"État des vibrations : "</span><span class="p">);</span><br /><span class="lineno">11 </span> <span class="n">Sensor_state</span> <span class="o">=</span> <span class="nf">digitalRead</span><span class="p">(</span><span class="n">Vibration_signal</span><span class="p">);</span><br /><span class="lineno">12 </span> <span class="k">if</span> <span class="p">(</span><span class="n">Sensor_state</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span> <span class="p">{</span><br /><span class="lineno">13 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Détection des vibrations"</span><span class="p">);</span><br /><span class="lineno">14 </span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span><br /><span class="lineno">15 </span> <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"Pas de vibration"</span><span class="p">);</span><br /><span class="lineno">16 </span> <span class="p">}</span><br /><span class="lineno">17 </span> <span class="nf">delay</span><span class="p">(</span><span class="mi">50</span><span class="p">);</span><br /><span class="lineno">18 </span><span class="p">}</span><br /></pre></div><span> </span></nowiki>