{"id":6642,"date":"2023-09-19T14:47:49","date_gmt":"2023-09-19T12:47:49","guid":{"rendered":"https:\/\/www.ardpylab.fr\/?page_id=6642"},"modified":"2023-09-19T16:26:54","modified_gmt":"2023-09-19T14:26:54","slug":"des-sketchs-a-ajouter-a-ardpylog-suite-16","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=6642","title":{"rendered":"Des sketchs \u00e0 ajouter \u00e0 ArdPyLog (suite)"},"content":{"rendered":"\n<h4><strong style=\"color: inherit; font-size: 1.25em;\"><br>16. <a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/Line_Tracker.zip\"><span style=\"text-decoration: underline;\"><span style=\"color: #3366ff; text-decoration: underline;\">Module Line Tracker<\/span><\/span><\/a><\/strong><span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\"> (<i>Apprendre \u00e0 utiliser un module suiveur de ligne &nbsp;<\/i>&#8211; Cat\u00e9gorie: <span style=\"color: #3366ff;\">Capteurs<\/span><\/span><span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">)<br><br><\/span><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"565\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker.jpg\" alt=\"\" class=\"wp-image-6647\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker-768x464.jpg 768w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/figure><\/div>\n\n\n\n<p>\u00a0<\/p>\n<p>L&rsquo;objectif de cette activit\u00e9 est d\u2019apprendre \u00e0 utiliser un module suiveur de ligne KY-033.<br \/>Ce module d\u00e9tecte si une surface r\u00e9fl\u00e9chissant ou absorbant la lumi\u00e8re se trouve devant le capteur :<\/p>\n<p>\u00c9tat 1 : le suiveur de ligne est au-dessus d&rsquo;une ligne (surface non r\u00e9fl\u00e9chissante), la DEL du module est \u00e9teinte et la sortie du capteur est \u00e0 un niveau haut.<br \/><br \/><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6648\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_1-300x218.jpg\" alt=\"\" width=\"425\" height=\"309\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_1-300x218.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_1-768x558.jpg 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_1.jpg 1000w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/><\/p>\n<p>\u00a0<\/p>\n<p>\u00c9tat 2 : le suiveur de ligne est en dehors d&rsquo;une ligne (surface r\u00e9fl\u00e9chissante), la LED sur le module est allum\u00e9e et la sortie du capteur est \u00e0 un niveau bas.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6649\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_2-300x215.jpg\" alt=\"\" width=\"418\" height=\"300\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_2-300x215.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_2-768x550.jpg 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_2.jpg 1000w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><\/p>\n<p style=\"text-align: left;\">\u00a0<\/p>\n<p>Affectation des broches :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6650\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_3-300x106.jpg\" alt=\"\" width=\"648\" height=\"229\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_3-300x106.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_3-1024x363.jpg 1024w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_3-768x272.jpg 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Line_Tracker_3.jpg 1118w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/p>\n<p>\u00a0<\/p>\n<p>Le module suiveur de ligne KY-033 peut \u00eatre utilis\u00e9 dans les robots, afin de suivre une ligne de mani\u00e8re autonome.<\/p>\n<p>L\u2019\u00e9cran \u00e0 cristaux liquides utilis\u00e9 comporte deux rang\u00e9es de 16 caract\u00e8res, d\u2019o\u00f9 son nom de LCD 1602 et le potentiom\u00e8tre du montage permet de r\u00e9gler sa luminosit\u00e9.<\/p>\n<p>Le code de l&rsquo;activit\u00e9 n\u00e9cessite l&rsquo;installation au pr\u00e9alable de la librairie \u00a0\u00bb LiquidCrystal \u00a0\u00bb d\u2019Adafruit.<br \/>Afin d\u2019ajouter une librairie \u00e0 l\u2019IDE Arduino, il faut aller dans le menu \u00ab Outils -&gt;G\u00e9rer les biblioth\u00e8ques \u00bb :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6490\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_1-300x213.jpg\" alt=\"\" width=\"589\" height=\"418\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_1-300x213.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_1-768x546.jpg 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_1.jpg 985w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/p>\n<p>Il suffit ensuite de rechercher et d\u2019ajouter la librairie \u00a0\u00bb LiquidCrystal \u00a0\u00bb d\u2019Adafruit:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6491\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_2-300x170.jpg\" alt=\"\" width=\"610\" height=\"346\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_2-300x170.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_2-768x434.jpg 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/EcranLCD_2.jpg 782w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">Le programme<\/span><\/p>\n<p>Voici le code de l\u2019activit\u00e9 :<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>const int onOffSwitchStateSwitchPin = 7;<br \/>const int PinLED = 6;<\/p>\n<p>int onOffSwitchState = 0; <br \/>int previousOnOffSwitchState = 0; <br \/>int state=0;<\/p>\n<p>#include &lt;LiquidCrystal.h&gt;<\/p>\n<p>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);<\/p>\n<p><br \/>void setup() {<\/p>\n<p>pinMode(onOffSwitchStateSwitchPin, INPUT);<br \/>pinMode(PinLED,OUTPUT);<br \/>pinMode(A0, INPUT);<\/p>\n<p>lcd.begin(16, 2);<br \/>lcd.clear();<br \/>lcd.setCursor(0, 0);<br \/>lcd.print (\u00ab\u00a0ARDUINO -\u00ab\u00a0);<br \/>lcd.setCursor(0, 1);<br \/>lcd.print (\u00ab\u00a0LINETRACKER\u00a0\u00bb);<\/p>\n<p>}<\/p>\n<p>void loop() {<br \/>onOffSwitchState = digitalRead(onOffSwitchStateSwitchPin);<br \/>delay(1);<br \/>if ((onOffSwitchState == HIGH)&amp;&amp;(previousOnOffSwitchState == LOW)) <br \/>{<br \/>state=1-state;<br \/>delay(10);<br \/>}<br \/>else <br \/>{<br \/>if ((onOffSwitchState == LOW)&amp;&amp;(previousOnOffSwitchState == HIGH)) <br \/>{<br \/>delay(10);<br \/>}<br \/>}<br \/>previousOnOffSwitchState = onOffSwitchState;<\/p>\n<p>if (state==1) <br \/>{<\/p>\n<p>digitalWrite(PinLED, HIGH);<br \/>bool ValSensor=digitalRead(A0);<\/p>\n<p>if (ValSensor==HIGH){<br \/>lcd.clear();<br \/>lcd.setCursor(0, 0);<br \/>lcd.print (\u00ab\u00a0LINETRACKER\u00a0\u00bb);<br \/>lcd.setCursor(0, 1);<br \/>lcd.print (\u00ab\u00a0ON LINE\u00a0\u00bb);<br \/>}<br \/>else{<br \/>lcd.clear();<br \/>lcd.setCursor(0, 0);<br \/>lcd.print (\u00ab\u00a0LINETRACKER\u00a0\u00bb);<br \/>lcd.setCursor(0, 1);<br \/>lcd.print (\u00ab\u00a0NOT ON LINE\u00a0\u00bb);<br \/>} <br \/>delay(500);<br \/>}<\/p>\n<p>else <br \/>{ <br \/>digitalWrite(PinLED, LOW);<br \/>lcd.clear();<br \/>lcd.setCursor(0, 0);<br \/>lcd.print (\u00ab\u00a0ARDUINO -\u00ab\u00a0);<br \/>lcd.setCursor(0, 1);<br \/>lcd.print (\u00ab\u00a0LINETRACKER\u00a0\u00bb);<br \/>digitalWrite(8, LOW); <br \/>delay(500);<br \/>}<\/p>\n<p>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">D\u00e9roulement du programme<\/span> :<\/p>\n<p>\u2013 1. Insertion des biblioth\u00e8ques :<\/p>\n<p style=\"padding-left: 40px;\"><strong>. Insertion de la librairie \u00a0\u00bb LiquidCrystal \u00a0\u00bb d\u2019Adafruit,<\/strong><br \/><strong>. Initialisation de la librairie avec les broches utilis\u00e9es pour l\u2019\u00e9cran LCD.<\/strong><\/p>\n<p>\u00a0<\/p>\n<p>\u2013 2. D\u00e9claration des constantes et variables :<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int onOffSwitchStateSwitchPin = 7<\/strong> (constante nombre entier correspondant \u00e0 la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int PinLED = 6<\/strong> (constante nombre entier correspondant \u00e0 la broche de la DEL)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int onOffSwitchState = 0<\/strong> (variable nombre entier pour stocker la valeur du potentiel de la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousOnOffSwitchState = 0<\/strong> (variable nombre entier pour stocker la pr\u00e9c\u00e9dente valeur du potentiel de la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int state = 0<\/strong> (variable nombre entier correspondant \u00e0 l\u2019action \u00e0 effectuer)<\/p>\n<p>\u00a0<\/p>\n<p>\u2013 3. Initialisation des entr\u00e9es et sorties :<\/p>\n<p style=\"padding-left: 40px;\">. <strong>Initialisation du nombre de lignes et de colonnes de l\u2019\u00e9cran LCD,<\/strong><br \/><strong>. Initialisation de la broche du bouton poussoir en entr\u00e9e digitale,<\/strong><br \/><strong>. Initialisation de la broche de la DEL en sortie digitale,<\/strong><br \/><strong>. Initialisation de la broche A0 en entr\u00e9e digitale,<\/strong><br \/><strong>. Affichage du titre de l\u2019activit\u00e9 \u00ab ARDUINO \u2013 LINETRACKER\u00bb sur l\u2019\u00e9cran LCD.<\/strong><\/p>\n<p>\u00a0<\/p>\n<p>\u2013 4. Fonction principale en boucle :<\/p>\n<p style=\"padding-left: 40px;\"><strong>\u2013&gt; Lecture de la valeur de la broche du bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Si le bouton poussoir est appuy\u00e9, la lecture de l\u2019entr\u00e9e A0 commence (la DEL rouge est allum\u00e9e),<\/strong><br \/><strong>\u2013&gt; Affichage des messages \u00ab LINETRACKER ON LINE \u00bb ou \u00ab LINETRACKER NOT ON LINE \u00bb sur l\u2019\u00e9cran LCD en fonction de la valeur de la sortie du capteur,<\/strong><br \/><strong>\u2013&gt; Si le bouton poussoir est de nouveau appuy\u00e9, les mesures sont arr\u00eat\u00e9es (la DEL rouge est \u00e9teinte)<\/strong>.<\/p>\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 is-resized\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=6622\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/moins.jpg\" alt=\"\" class=\"wp-image-107\" width=\"44\" height=\"24\"\/><\/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=6657\"><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>16. Module Line Tracker (Apprendre \u00e0 utiliser un module suiveur de ligne &nbsp;&#8211; Cat\u00e9gorie: Capteurs) \u00a0 L&rsquo;objectif de cette activit\u00e9 est d\u2019apprendre \u00e0 utiliser un module suiveur de ligne KY-033.Ce module d\u00e9tecte si une surface r\u00e9fl\u00e9chissant ou absorbant la lumi\u00e8re se trouve devant le capteur : \u00c9tat 1 : le suiveur de ligne est au-dessus [&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-6642","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6642","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=6642"}],"version-history":[{"count":5,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6642\/revisions"}],"predecessor-version":[{"id":6666,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6642\/revisions\/6666"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}