{"id":5950,"date":"2021-03-29T15:34:43","date_gmt":"2021-03-29T13:34:43","guid":{"rendered":"https:\/\/www.ardpylab.fr\/?page_id=5950"},"modified":"2021-04-07T09:46:32","modified_gmt":"2021-04-07T07:46:32","slug":"les-sketchs-de-la-categorie-apprentissage","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=5950","title":{"rendered":"Cat\u00e9gorie \u00ab Apprentissage \u00bb"},"content":{"rendered":"\n<p><br>Dans cette cat\u00e9gorie, sont regroup\u00e9s les sketchs qui permettent l&rsquo;apprentissage du principe de fonctionnement des entr\u00e9es et sorties de l&rsquo;Arduino Uno.<br><br><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"330\" height=\"321\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/ListeSketch01.png\" alt=\"\" class=\"wp-image-5951\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/ListeSketch01.png 330w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/ListeSketch01-300x292.png 300w\" sizes=\"auto, (max-width: 330px) 100vw, 330px\" \/><\/figure><\/div>\n\n\n\n<h4>&nbsp;<\/h4>\n<h4><strong>1. <a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/Blink.zip\" data-wplink-edit=\"true\"><span style=\"text-decoration: underline;\">Blink<\/span><\/a><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Blink.jpg\" alt=\"\" class=\"wp-image-5952\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Blink.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Blink-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Blink-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p>Le sketch permet de faire clignoter une DEL rouge connect\u00e9e sur la broche 9.<\/p>\n<p>Cette activit\u00e9 a pour but l\u2019<a href=\"https:\/\/www.ardpylab.fr\/?page_id=192\">apprentissage de l\u2019utilisation des sorties digitales de l\u2019Arduino<\/a> qui ne peuvent prendre que 2 valeurs : 0 (niveau bas) ou 1 (niveau haut), soit \u00e9lectriquement : 0 V ou +5 V.<\/p>\n<p>Donc, pour allumer la DEL, la broche de l\u2019Arduino sur laquelle celle-ci est connect\u00e9e, doit \u00eatre au niveau haut (+5V) et pour l\u2019\u00e9teindre, elle doit \u00eatre au niveau bas (0 V).<\/p>\n<p>Pour r\u00e9aliser cette activit\u00e9, on va demander \u00e0 l\u2019Arduino d\u2019allumer la DEL (donc d\u2019appliquer un niveau haut sur la broche de la DEL) pendant une dur\u00e9e d\u00e9finie par une variable, puis de l\u2019\u00e9teindre (donc d\u2019appliquer un niveau bas sur la broche de la DEL) pendant une dur\u00e9e d\u00e9finie par une autre variable, puis \u00e0 nouveau de l\u2019allumer et cela ind\u00e9finiment.<\/p>\n<p>De cette fa\u00e7on, on verra la DEL clignoter.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinLed = 9; <br>const int TimeSleep1= 500;<br>const int TimeSleep2= 500;<\/p>\n<p>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup()<br>{<br>pinMode(PinLed, OUTPUT);<br>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop()<br>{<br>digitalWrite(PinLed, HIGH); <br>delay(TimeSleep1);<br>digitalWrite(PinLed, LOW);<br>delay(TimeSleep2);<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><br><strong>2. <a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/BoutonPoussoir.zip\"><span style=\"text-decoration: underline;\">Bouton_poussoir<\/span><\/a><br><br><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir.jpg\" alt=\"\" class=\"wp-image-5958\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p><br>Dans cette activit\u00e9, la DEL rouge s\u2019allume en appuyant sur le bouton poussoir et s\u2019\u00e9teint si on le rel\u00e2che. L\u2019objectif est de se familiariser avec <a href=\"https:\/\/www.ardpylab.fr\/?page_id=253\">les entr\u00e9es num\u00e9riques de l\u2019Arduino<\/a>.<\/p>\n<p>En effet, en appuyant sur le bouton poussoir, une tension de + 5V est appliqu\u00e9e sur la broche sur laquelle celui-ci est connect\u00e9. La broche est alors \u00e0 un niveau haut. Si on rel\u00e2che le bouton poussoir, le circuit \u00e9lectrique est ouvert, la tension sur la broche du bouton poussoir est alors de 0 V et passe \u00e0 un niveau bas.<\/p>\n<p>Si on demande \u00e0 l\u2019Arduino d\u2019interroger l\u2019\u00e9tat logique (niveau haut ou bas) de la broche du bouton poussoir qui a \u00e9t\u00e9 d\u00e9clar\u00e9 comme une entr\u00e9e num\u00e9rique, on peut savoir si celui-ci est appuy\u00e9 ou pas et donc lui donner l\u2019ordre d\u2019allumer ou d\u2019\u00e9teindre la DEL.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinLED = 9;<br>const int PinButton = 12;<\/p>\n<p>int ValButton = 0;<\/p>\n<p><br>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() { <br>pinMode (PinLED, OUTPUT);<br>pinMode (PinButton, INPUT);<br>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() {<br>ValButton = digitalRead(PinButton);<br>if (ValButton == HIGH) {<br>digitalWrite(PinLED, HIGH);<br>}<br>else {<br>digitalWrite(PinLED, LOW);<br>}<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><strong><br>3.<\/strong> <span style=\"text-decoration: underline;\"><strong><a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/Interrupteur.zip\">Interrupteur<\/a><br><br><\/strong><\/span><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Interrupteur.jpg\" alt=\"\" class=\"wp-image-5968\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Interrupteur.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Interrupteur-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Interrupteur-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p>&nbsp;<\/p>\n<p>Dans cette activit\u00e9, quand la DEL est \u00e9teinte, si on appuie sur le bouton poussoir, la DEL s\u2019allume, mais contrairement \u00e0 l\u2019activit\u00e9 \u00ab\u00a0Bouton-poussoir\u00a0\u00bb, la DEL ne s\u2019\u00e9teint pas quand on rel\u00e2che le bouton poussoir.<\/p>\n<p>En effet, si la DEL est allum\u00e9e, celle-ci s\u2019\u00e9teint en appuyant de nouveau sur le bouton poussoir.<\/p>\n<p>Le principe de fonctionnement du bouton poussoir est donc comme celui d\u2019un interrupteur.<\/p>\n<p>Pour r\u00e9aliser cette activit\u00e9, on va demander \u00e0 l\u2019Arduino d\u2019interroger l\u2019\u00e9tat logique (niveau haut ou bas) de la broche du bouton poussoir qui a \u00e9t\u00e9 d\u00e9clar\u00e9 comme une entr\u00e9e num\u00e9rique. <br>A l\u2019aide de variables permettant de stocker les valeurs (actuelle et pr\u00e9c\u00e9dente) de cet \u00e9tat, l\u2019Arduino pourra savoir quelle action effectuer (allumer ou \u00e9teindre la DEL) apr\u00e8s l\u2019appui sur le bouton poussoir.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinLED = 8;<br>const int PinButton = 12;<\/p>\n<p>int ValButton = 0;<br>int OldValButton = 0;<br>int State = 0;<\/p>\n<p><br>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() {<br><br>pinMode (PinLED, OUTPUT);<br>pinMode (PinButton, INPUT);<\/p>\n<p>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() {<br><br>ValButton = digitalRead(PinButton);<br>delay(10);<\/p>\n<p>if ((ValButton == HIGH) &amp;&amp; (OldValButton == LOW)) {<br>State = 1 &#8211; State;<br>}<br>OldValButton = ValButton;<\/p>\n<p>if (State == 1) { <br>digitalWrite(PinLED, HIGH);<br>}<br>else {<br>digitalWrite(PinLED, LOW);<br>}<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><strong><br>4. <span style=\"text-decoration: underline;\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/Potentiometre.zip\">Potentiometre<\/a><br><br><\/span><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Potentiometre.jpg\" alt=\"\" class=\"wp-image-5969\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Potentiometre.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Potentiometre-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Potentiometre-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p><br>L\u2019objectif de cette activit\u00e9 est l\u2019apprentissage du <a href=\"https:\/\/www.ardpylab.fr\/?page_id=256\">principe de fonctionnement des entr\u00e9es analogiques de l&rsquo;Arduino<\/a> et de l\u2019utilisation du moniteur s\u00e9rie.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinPOT = 0;<br>int ValPot = 0;<br>int OldValPot =0;<br>float Tension=0.00;<\/p>\n<p><br>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() {<br>Serial.begin(9600); <br>Serial.println(\u201dValeur A0 ; Tension (V):\u201d); <br>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() {<br>ValPot = analogRead(PinPOT);<br>if (abs(ValPot &#8211; OldValPot)&gt;=2) { <br>Serial.print(ValPot);<br>Serial.print(\u201d ; \u201d);<br>Tension=ValPot*5.00\/1023;<br>Serial.println(Tension);<br>OldValPot = ValPot;<br>}<br>delay(100);<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><strong><br>5. <span style=\"text-decoration: underline;\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/SortiesAnalogiques.zip\">Sorties_analogiques<\/a><br><br><\/span><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Sorties_analogiques.jpg\" alt=\"\" class=\"wp-image-5972\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Sorties_analogiques.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Sorties_analogiques-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Sorties_analogiques-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p>&nbsp;<\/p>\n<p>Le circuit d&rsquo;\u00e9tude dispose d\u2019un potentiom\u00e8tre dont le \u00ab point milieu \u00bb est reli\u00e9 \u00e0 la broche A0 de l\u2019Arduino.<br>Suivant la position du \u00ab\u00a0point milieu\u00a0\u00bb, la tension appliqu\u00e9e \u00e0 la broche A0 varie entre 0 et 5 V. On peut donc utiliser le potentiom\u00e8tre pour r\u00e9gler la luminosit\u00e9 de la DEL rouge.<\/p>\n<p>En effet, la DEL est connect\u00e9e sur une broche PWM et contrairement aux sorties num\u00e9riques qui ne peuvent avoir que deux valeurs 0 ou 1 (0 ou 5V), une sortie analogique (ou plut\u00f4t PWM) permet d\u2019obtenir une tension entre 0 et 5 V (les broches 3, 5, 6, 9, 10 et 11 peuvent \u00eatre configur\u00e9s en sortie analogique).<\/p>\n<p>Nous allons donc apprendre \u00e0 utiliser une <a href=\"https:\/\/ardpylab.fr\/?page_id=259\">sortie PWM<\/a>.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinPOT = 0;<br>const int PinLED = 9;<br>int ValPot = 0;<\/p>\n<p><br>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() {<br>pinMode(PinLED, OUTPUT);<br>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() {<br>ValPot = analogRead(PinPOT);<br>analogWrite(PinLED, int(ValPot\/4));<br>delay(100);<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><strong><br>6. <\/strong><span style=\"text-decoration: underline;\"><strong><a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/BoutonPoussoirAlternance.zip\">Bouton_poussoir_Alternance<\/a><br><br><\/strong><\/span><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir_Alternance.jpg\" alt=\"\" class=\"wp-image-5962\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir_Alternance.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir_Alternance-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/Bouton_poussoir_Alternance-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p>Dans cette activit\u00e9, l\u2019allumage en alternance des DELs est g\u00e9r\u00e9 par le bouton poussoir. Un premier appui sur le bouton allume la diode rouge, un deuxi\u00e8me appui allume la diode verte, un troisi\u00e8me appui allume la diode bleue et ainsi de suite\u2026<\/p>\n<p>Un appui prolong\u00e9 sur le bouton \u00e9teint la DEL allum\u00e9e.<\/p>\n<p>Comme pour l\u2019activit\u00e9 \u00ab\u00a0<strong>Interrupteur<\/strong>\u00ab\u00a0, c\u2019est \u00e0 l\u2019aide des variables permettant de stocker les valeurs<br>(actuelle et pr\u00e9c\u00e9dente) de l\u2019\u00e9tat logique de la broche du bouton poussoir, mais aussi d\u2019une variable pour compter le nombre d\u2019appui sur le bouton et de variables pour mesurer la dur\u00e9e d\u2019appui, que l\u2019Arduino pourra allumer ou \u00e9teindre les DELs.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinLEDR = 8;<br>const int PinLEDV = 7;<br>const int PinLEDB = 2;<br>const int PinButton = 12;<\/p>\n<p>int ValButton=0;<br>int OldValButton=0;<br>int ComptBtn=0;<br>unsigned long StartTime = 0;<br>unsigned long DeltaTime = 0;<\/p>\n<p><br>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() {<br>pinMode (PinLEDR, OUTPUT);<br>pinMode (PinLEDV, OUTPUT);<br>pinMode (PinLEDB, OUTPUT);<br>pinMode (PinButton, INPUT);<br>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() { <br>ValButton = digitalRead(PinButton);<br>delay(10);<br>if ((ValButton == HIGH)&amp;&amp; (OldValButton == LOW)) {<br>StartTime = millis();<br>ComptBtn = ComptBtn +1;<br>if (ComptBtn == 4) {<br>ComptBtn = 1;<br>}<br>}<\/p>\n<p>if ((ValButton == HIGH) &amp;&amp; (OldValButton == HIGH)) {<br>DeltaTime = millis() &#8211; StartTime;<br>if (DeltaTime &gt; 500) {<br>ComptBtn = 0;<br>}<br>}<\/p>\n<p>OldValButton = ValButton;<\/p>\n<p>switch (ComptBtn) {<br>case 1 :<br>digitalWrite(PinLEDR, HIGH);<br>digitalWrite(PinLEDV, LOW);<br>digitalWrite(PinLEDB, LOW);<br>break;<\/p>\n<p>case 2 :<br>digitalWrite(PinLEDR, LOW);<br>digitalWrite(PinLEDV, HIGH);<br>digitalWrite(PinLEDB, LOW);<br>break;<\/p>\n<p>case 3 :<br>digitalWrite(PinLEDR, LOW);<br>digitalWrite(PinLEDV, LOW);<br>digitalWrite(PinLEDB, HIGH);<br>break;<\/p>\n<p>case 0 :<br>digitalWrite(PinLEDR, LOW);<br>digitalWrite(PinLEDV, LOW);<br>digitalWrite(PinLEDB, LOW);<br>break;<br>}<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><strong><br>7. <span style=\"text-decoration: underline;\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/DELRVBBrightness.zip\">DEL_RVB_Brightness<\/a><br><br><\/span><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Brightness.jpg\" alt=\"\" class=\"wp-image-5978\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Brightness.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Brightness-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Brightness-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p>&nbsp;<\/p>\n<p>Cette activit\u00e9 a pour objectif l&rsquo;<a href=\"https:\/\/ardpylab.fr\/?page_id=259\">apprentissage de l&rsquo;utilisation des sorties analogiques de l&rsquo;Arduino UNO<\/a>.<\/p>\n<p>Contrairement aux sorties num\u00e9riques qui ne peuvent avoir que deux valeurs 0 ou 1 (0 ou 5V), une sortie analogique (ou plut\u00f4t PWM) permet d\u2019obtenir une tension entre 0 et 5 V. les broches 3, 5, 6, 9, 10 et 11 peuvent \u00eatre configur\u00e9s en sortie analogique.<\/p>\n<p>C\u2019est pour cela que les anodes de la DEL RVB (\u00e0 cathode commune) de notre circuit sont connect\u00e9es sur les broches :<\/p>\n<p>\u2013 9 pour la DEL rouge<br>\u2013 11 pour la DEL verte<br>\u2013 10 pour la DEL Bleue<\/p>\n<p>Nous allons utiliser ces sorties pour alimenter une DEL (DEL rouge, verte ou bleue de la DEL RVB) et faire varier sa luminosit\u00e9 suivant ce principe de fonctionnement :<\/p>\n<p>\u2013 La DEL \u00e9tant \u00e9teinte, si on appuie sur le bouton poussoir, la diode s\u2019allume.<br>\u2013 On r\u00e8gle la luminosit\u00e9 de la DEL en maintenant le bouton poussoir appuy\u00e9, du moins au plus lumineux (broche de la DEL \u00e0 +0V) jusqu\u2019\u00e0 un maximum (broche de la DEL \u00e0 +5V).<br>\u2013 Quand le maximum de la luminosit\u00e9 est atteint et que le bouton poussoir est maintenu appuy\u00e9, la luminosit\u00e9 revient au minimum (broche de la DEL \u00e0 0V).<br>\u2013 La DEL \u00e9tant allum\u00e9e, si on appuie sur le bouton poussoir, elle s\u2019\u00e9teint.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinLED = 11;<br>const int PinButton = 12;<\/p>\n<p>int ValButton = 0;<br>int OldValButton = 0;<br>int State = 0;<br>int Brightness = 0;<br>unsigned long StartTime = 0;<br>unsigned long DeltaTime = 0;<\/p>\n<p><br>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() { <br>pinMode (PinButton, INPUT);<br>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() { <br>ValButton = digitalRead(PinButton);<br>delay(10);<br>if ((ValButton == HIGH) &amp;&amp; (OldValButton == LOW)) {<br>State=1-State;<br>StartTime= millis(); <br>}<br>if ((ValButton == HIGH) &amp;&amp; (OldValButton == HIGH)) {<br>DeltaTime = millis() &#8211; StartTime;<br>if (State == 1 &amp;&amp; DeltaTime &gt; 500) {<br>Brightness = Brightness + 1;<br>delay(10);<br>if (Brightness &gt; 255) {<br>Brightness = 0;<br>}<br>}<br>}<br>OldValButton = ValButton;<br>if (State == 1) { <br>analogWrite(PinLED, Brightness);<br>}<br>else {<br>analogWrite(PinLED, 0);<br>Brightness = 0;<br>}<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><strong><br>8. <span style=\"text-decoration: underline;\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/DELRVBClignotant.zip\">DEL_RVB_Clignotant<\/a><br><br><\/span><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Clignotant.jpg\" alt=\"\" class=\"wp-image-5975\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Clignotant.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Clignotant-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Clignotant-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p>&nbsp;<\/p>\n<p>Cette activit\u00e9 a pour objectif, l\u2019<a href=\"https:\/\/ardpylab.fr\/?page_id=256\">\u00e9tude des entr\u00e9es analogiques de l\u2019Arduino<\/a>.<\/p>\n<p>Ces entr\u00e9es (A0 \u00e0 A5), qui peuvent \u00eatre \u00e9galement utilis\u00e9es en entr\u00e9es digitales, sont capables de mesurer la tension r\u00e9elle, entre 0 et 5V, qui leur est appliqu\u00e9e. On utilisera ces entr\u00e9es pour les acquisitions avec des capteurs qui d\u00e9livrent une tension entre 0 et 5 V suivant ce qu\u2019ils mesurent.<\/p>\n<p>Ici, le capteur utilis\u00e9 est une photor\u00e9sistance, dont la r\u00e9sistance varie en fonction de l\u2019intensit\u00e9 lumineuse qu\u2019elle re\u00e7oit. C\u2019est donc un capteur r\u00e9sistif.<\/p>\n<p>La sortie de la photor\u00e9sistance est branch\u00e9e sur une des entr\u00e9es analogiques de la carte Arduino (entr\u00e9e A5).<\/p>\n<p>L\u2019objectif est de faire clignoter une DEL \u00e0 une fr\u00e9quence d\u00e9pendant de la lumi\u00e8re ambiante.<\/p>\n<p>Pour cela, on va faire varier le d\u00e9lai entre 2 allumages de la DEL en fonction de la tension de l\u2019entr\u00e9e A5 et donc de l\u2019intensit\u00e9 lumineuse re\u00e7ue par la photor\u00e9sistance.<\/p>\n<p>Quand l\u2019intensit\u00e9 lumineuse re\u00e7ue par la photor\u00e9sistance diminue, la fr\u00e9quence de clignotement augmente.<br><br><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinLED = 11;<br>const int PinSensor = A5;<br>int ValSensor = 0;<\/p>\n<p><br>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() {<br>pinMode (PinLED, OUTPUT);<br>}<\/p>\n<p><br>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() { <br>ValSensor = analogRead(PinSensor);<br>digitalWrite(PinLED, HIGH);<br>delay(ValSensor);<br>digitalWrite(PinLED, LOW);<br>delay(ValSensor);<br>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<h4><strong><br>9. <span style=\"text-decoration: underline;\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/DELRVBAnalogbrightness.zip\">DEL_RVB_Analog_brightness<\/a><br><br><\/span><\/strong><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Analog_brightness.jpg\" alt=\"\" class=\"wp-image-5965\" width=\"468\" height=\"283\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Analog_brightness.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Analog_brightness-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2021\/03\/DEL_RVB_Analog_brightness-768x464.jpg 768w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure><\/div>\n\n\n\n<p>\u00a0<\/p>\n<p>Dans cette activit\u00e9, selon le m\u00eame principe que l\u2019activit\u00e9 \u00ab\u00a0DEL RVB &#8211; Clignotant\u00a0\u00bb, on va faire varier la luminosit\u00e9 d\u2019une DEL en fonction de l\u2019intensit\u00e9 lumineuse re\u00e7ue par la photor\u00e9sistance.<\/p>\n<p>La luminosit\u00e9 de la DEL sera inversement proportionnelle \u00e0 l\u2019intensit\u00e9 lumineuse re\u00e7ue:<\/p>\n<p>\u2013 La DEL est allum\u00e9e ou \u00e9teinte en appuyant sur le bouton-poussoir.<br \/>\u2013 La luminosit\u00e9 de la DEL varie en fonction de la tension de l\u2019entr\u00e9e A5.<br \/><br \/><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>\/\/ D\u00e9claration des constantes et variables<\/p>\n<p>const int PinLED = 11;<br \/>const int PinSensor = A5;<br \/>const int PinButton = 12;<\/p>\n<p>int ValButton = 0;<br \/>int ValSensor = 0;<br \/>int OldValButton = 0;<br \/>int State = 0;<\/p>\n<p><br \/>\/\/ Initialisation des entr\u00e9es et sorties<\/p>\n<p>void setup() { <br \/>pinMode (PinLED, OUTPUT);<br \/>pinMode (PinButton, INPUT);<br \/>}<\/p>\n<p><br \/>\/\/ Fonction principale en boucle<\/p>\n<p>void loop() { <br \/>ValButton = digitalRead(PinButton);<br \/>ValSensor = analogRead(PinSensor);<br \/>delay(10);<\/p>\n<p>if ((ValButton == HIGH) &amp;&amp; (OldValButton == LOW)) {<br \/>State = 1 &#8211; State; <br \/>}<\/p>\n<p>OldValButton = ValButton;<\/p>\n<p>if (State == 1) { <br \/>analogWrite(PinLED, 255 &#8211; ValSensor\/4);<br \/>}<br \/>else {<br \/>analogWrite(PinLED, 0);<br \/>}<br \/>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u00a0<\/p>\n\n\n<div  class=\"grids-section grids-is-advanced\" style=\"--_gs-gap-desktop:0px 0px;--_gs-m-desktop:0 0 0 0;--_gs-p-desktop:0 0 0 0;--_gs-bg-desktop:transparent none;--_gs-bg-xp-desktop:0px;--_gs-zi-desktop:auto;--_gs-d-desktop:block;--_gs-mw-desktop:calc(100% - 0 - 0);--_gs-gap-tablet:0px 0px;--_gs-m-tablet:0 0 0 0;--_gs-p-tablet:0 0 0 0;--_gs-bg-tablet:transparent none;--_gs-bg-xp-tablet:0px;--_gs-zi-tablet:auto;--_gs-d-tablet:block;--_gs-mw-tablet:calc(100% - 0 - 0);--_gs-gap-mobile:0px 0px;--_gs-m-mobile:0 0 0 0;--_gs-p-mobile:0 0 0 0;--_gs-bg-mobile:transparent none;--_gs-bg-xp-mobile:0px;--_gs-zi-mobile:auto;--_gs-d-mobile:block;--_gs-mw-mobile:calc(100% - 0 - 0);--_gs-columns:12;--_gs-rows:6\"><div class=\"grids-s-w_i\">\n<div class=\"grids-area\" style=\"--_ga-column:1\/2;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=5940\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"28\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/moins.jpg\" alt=\"\" class=\"wp-image-107\"\/><\/a><\/figure>\n\n<\/div>\n\n<div class=\"grids-area\" style=\"--_ga-column:12\/13;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=5985\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"28\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/plus.jpg\" alt=\"\" class=\"wp-image-106\"\/><\/a><\/figure>\n\n<\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Dans cette cat\u00e9gorie, sont regroup\u00e9s les sketchs qui permettent l&rsquo;apprentissage du principe de fonctionnement des entr\u00e9es et sorties de l&rsquo;Arduino Uno. &nbsp; 1. Blink Le sketch permet de faire clignoter une DEL rouge connect\u00e9e sur la broche 9. Cette activit\u00e9 a pour but l\u2019apprentissage de l\u2019utilisation des sorties digitales de l\u2019Arduino qui ne peuvent prendre [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5950","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/5950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5950"}],"version-history":[{"count":31,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/5950\/revisions"}],"predecessor-version":[{"id":6260,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/5950\/revisions\/6260"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}