{"id":6657,"date":"2023-09-19T16:13:26","date_gmt":"2023-09-19T14:13:26","guid":{"rendered":"https:\/\/www.ardpylab.fr\/?page_id=6657"},"modified":"2023-09-21T14:35:10","modified_gmt":"2023-09-21T12:35:10","slug":"des-sketchs-a-ajouter-a-ardpylog-suite-17","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=6657","title":{"rendered":"Des sketchs \u00e0 ajouter \u00e0 ArdPyLog (suite)"},"content":{"rendered":"\n<h4><strong style=\"color: inherit; font-size: 1.25em;\"><br>17. <a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/pH_Metre.zip\"><span style=\"text-decoration: underline;\"><span style=\"color: #3366ff; text-decoration: underline;\">pH-Metre<\/span><\/span><\/a><\/strong> <span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">(<i>Mesurer le pH d\u2019une solution aqueuse&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\/pH_Metre.jpg\" alt=\"\" class=\"wp-image-6662\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/pH_Metre.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/pH_Metre-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/pH_Metre-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 de mesurer le pH d\u2019une solution aqueuse \u00e0 l\u2019aide d\u2019une sonde pH et de l\u2019interface SEN0161 de DF ROBOT.<\/p>\n<p>La sonde pH \u00e9conomique avec l\u2019interface compatible Arduino est id\u00e9ale pour une utilisation g\u00e9n\u00e9rale et permettant de mesurer un pH entre 0 et 14 \u00e0 une temp\u00e9rature comprise entre 0 et +60 \u00b0C.<\/p>\n<p>Cette sonde d\u00e9livre une tension analogique en fonction du pH.<\/p>\n<p>Ce module se raccorde sur une entr\u00e9e analogique d&rsquo;une carte compatible Arduino ou directement sur le shield d&rsquo;expansion E\/S via le cordon inclus.<\/p>\n<p><br \/><span style=\"text-decoration: underline;\">Remarques<\/span> :<\/p>\n<p style=\"padding-left: 40px;\">&#8211; l&rsquo;utilisation de cette sonde doit se faire dans un liquide au repos et \u00e9lectriquement neutre,<br \/>&#8211; cette sonde ne peut pas rester immerg\u00e9e dans la solution \u00e0 mesurer.<\/p>\n<p><br \/><span style=\"text-decoration: underline;\">Caract\u00e9ristiques<\/span> :<\/p>\n<p style=\"padding-left: 40px;\">. Alimentation: 5 Vcc<br \/>. Plage de mesure de pH: 0 \u00e0 14<br \/>. Temp\u00e9rature de fonctionnement: 0 \u00e0 60 \u00b0C<br \/>. Pr\u00e9cision: \u00b1 0,1 pH (25 \u00b0C)<\/p>\n<p style=\"text-align: center;\">\u00a0<\/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=\"602\" height=\"427\" 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: 602px) 100vw, 602px\" \/><\/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=\"552\" height=\"313\" 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: 552px) 100vw, 552px\" \/><\/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>#include &lt;LiquidCrystal.h&gt;<\/p>\n<p>LiquidCrystal lcd(12, 11, 5, 4, 3, 2);<\/p>\n<p><br \/>const int onOffSwitchStateSwitchPin = 7;<br \/>const int PinLED = 6;<\/p>\n<p>int onOffSwitchState = 0; <br \/>int previousOnOffSwitchState = 0; <br \/>int state=0;<br \/>float Offset=0.0;<br \/>int ValSensor=0;<br \/>float pHValue=0.0;<\/p>\n<p><br \/>void setup() {<br \/>pinMode(onOffSwitchStateSwitchPin, INPUT);<br \/>pinMode(PinLED,OUTPUT);<\/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\u00a0PH-METRE\u00a0\u00bb);<\/p>\n<p>}<\/p>\n<p>void loop() {<\/p>\n<p>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 \/>ValSensor=analogRead(A0);<br \/>pHValue=(ValSensor*5.0\/1024)*3.5 + Offset;<br \/>lcd.clear();<br \/>lcd.setCursor(0, 0);<br \/>lcd.print (\u00ab\u00a0PH =\u00a0\u00bb);<br \/>lcd.setCursor(0, 1);<br \/>lcd.print (pHValue);<br \/>delay(500);<br \/>}<\/p>\n<p>else <br \/>{<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\u00a0PH-METRE\u00a0\u00bb);<br \/><br \/>delay(500);<br \/>} <br \/>}<\/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 style=\"padding-left: 40px;\">. <strong>float Offset=0.0<\/strong> (variable nombre d\u00e9cimal d\u2019ajustement du pH \u00e0 d\u00e9terminer par l\u2019\u00e9talonnage de la sonde)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int ValSensor=0<\/strong> (variable nombre entier pour stocker la valeur de la broche de la sonde pH)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>float pHValue=0.0<\/strong> (variable nombre d\u00e9cimal pour le calcul de pH)<\/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>. Affichage du titre de l\u2019activit\u00e9 \u00ab ARDUINO \u2013 pH-METRE \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 analogique A0 commence (la DEL rouge est allum\u00e9e),<\/strong><br \/><strong>\u2013&gt; Calcul du pH,<\/strong><br \/><strong>\u2013&gt; Affichage du pH sur l\u2019\u00e9cran LCD,<\/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=6642\"><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=6730\"><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>17. pH-Metre (Mesurer le pH d\u2019une solution aqueuse&nbsp;&#8211; Cat\u00e9gorie: Capteurs) \u00a0 L&rsquo;objectif de cette activit\u00e9 est de mesurer le pH d\u2019une solution aqueuse \u00e0 l\u2019aide d\u2019une sonde pH et de l\u2019interface SEN0161 de DF ROBOT. La sonde pH \u00e9conomique avec l\u2019interface compatible Arduino est id\u00e9ale pour une utilisation g\u00e9n\u00e9rale et permettant de mesurer un pH [&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-6657","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6657","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=6657"}],"version-history":[{"count":7,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6657\/revisions"}],"predecessor-version":[{"id":6752,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6657\/revisions\/6752"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}