{"id":6759,"date":"2023-09-25T15:15:11","date_gmt":"2023-09-25T13:15:11","guid":{"rendered":"https:\/\/www.ardpylab.fr\/?page_id=6759"},"modified":"2025-03-17T15:53:47","modified_gmt":"2025-03-17T14:53:47","slug":"des-sketchs-a-ajouter-a-ardpylog-suite-19","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=6759","title":{"rendered":"Des sketchs \u00e0 ajouter \u00e0 ArdPyLog (suite)"},"content":{"rendered":"\n<h4><strong style=\"color: inherit; font-size: 1.25em;\"><br>19. <a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/Chute_Bille.zip\"><span style=\"text-decoration: underline;\"><span style=\"color: #3366ff; text-decoration: underline;\">Chute d\u2019une bille<\/span><\/span><\/a> <\/strong><span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">(<i>D\u00e9terminer la dur\u00e9e de chute d\u2019une bille <\/i>&#8211; Cat\u00e9gorie: <span style=\"color: #3366ff;\">M\u00e9canique<\/span><\/span><span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">)<br><br><\/span><\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"565\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille.jpg\" alt=\"\" class=\"wp-image-6761\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille-768x464.jpg 768w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/figure><\/div>\n\n\n<p>\u00a0<\/p>\n<p>L\u2019objectif du montage est de mesurer la dur\u00e9e en ms de la chute d\u2019une bille \u00e0 l\u2019aide d\u2019un dispositif de d\u00e9tection constitu\u00e9 d\u2019un laser et d\u2019une photodiode associ\u00e9e \u00e0 un circuit convertisseur courant &#8211; tension.<\/p>\n<p>A t = 0, la bille initialement maintenue par l\u2019\u00e9lectroaimant est lib\u00e9r\u00e9e, un chronom\u00e8tre est alors d\u00e9clench\u00e9<\/p>\n<p>Au cours de sa chute, la bille coupe le faisceau laser, provoquant une chute du potentiel mesur\u00e9 sur la broche analogique A0 de l\u2019Arduino Uno, car la photodiode n\u2019est \u00e0 ce moment plus \u00e9clair\u00e9e<\/p>\n<p>Quand la chute de potentiel est d\u00e9tect\u00e9e, Le chronom\u00e8tre est arr\u00eat\u00e9 et la dur\u00e9e de la chute est affich\u00e9e dans le moniteur s\u00e9rie.<\/p>\n<p style=\"text-align: center;\">\u00a0<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Module \u00e9lectroaimant Grove<\/span><\/strong><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-6764\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_1-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_1-300x225.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_1.jpg 700w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Le module \u00e9lectroaimant Grove, pouvant maintenir une masse m\u00e9tallique jusqu&rsquo;\u00e0 1 kg, se raccorde sur une sortie digitale de l\u2019Arduino Uno :<\/p>\n<p style=\"padding-left: 40px;\">&#8211; Sortie digitale \u00e0 niveau haut, l\u2019\u00e9lectroaimant fonctionne,<br \/>&#8211; Sortie digitale \u00e0 niveau bas, l\u2019\u00e9lectroaimant ne fonctionne pas.<\/p>\n<p><span style=\"text-decoration: underline;\">Caract\u00e9ristiques<\/span> :<\/p>\n<p>Interface : compatible Grove<br \/>Alimentation : 5 Vcc<br \/>Consommation : 200\u03bcA (au repos) et 400 mA (au travail)<\/p>\n<p><br \/><strong><span style=\"text-decoration: underline;\">Photodiode \u2013 Montage convertisseur courant \/ Tension<\/span><\/strong><\/p>\n<p>La photodiode utilis\u00e9e dans cette application est le mod\u00e8le BPW21.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-6765\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_2.jpg\" alt=\"\" width=\"100\" height=\"74\" \/><\/p>\n<p>Une photodiode est un composant semi-conducteur ayant la capacit\u00e9 de capter un rayonnement du domaine optique et de le transformer en signal \u00e9lectrique.<\/p>\n<p><br \/>Sensibilit\u00e9 relative spectrale en fonction de la longueur d&rsquo;onde :<br \/><br \/><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6766\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_3-245x300.jpg\" alt=\"\" width=\"340\" height=\"416\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_3-245x300.jpg 245w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_3.jpg 293w\" sizes=\"auto, (max-width: 340px) 100vw, 340px\" \/><\/p>\n<p style=\"text-align: center;\">En pointill\u00e9 : sensibilit\u00e9 de l&rsquo;oeil<br \/>En noir : sensibilit\u00e9 de la photodiode<\/p>\n<p>\u00a0<\/p>\n<p>L&rsquo;intensit\u00e9 du courant d\u00e9livr\u00e9 par la photodiode est proportionnelle \u00e0 l&rsquo;\u00e9clairement :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6768\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_4-300x281.jpg\" alt=\"\" width=\"380\" height=\"356\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_4-300x281.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_4.jpg 427w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/p>\n<p style=\"text-align: left;\">On utilise un montage \u00e0 amplificateur op\u00e9rationnel convertisseur courant \u2013 tension pour mesurer une tension proportionnelle \u00e0 l\u2019\u00e9clairement de la photodiode :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6770\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_5-300x191.jpg\" alt=\"\" width=\"341\" height=\"217\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_5-300x191.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Chute_Bille_5.jpg 349w\" sizes=\"auto, (max-width: 341px) 100vw, 341px\" \/><\/p>\n<p>Le courant g\u00e9n\u00e9r\u00e9 par la photodiode en fonction de l&rsquo;\u00e9clairement circule \u00e0 travers la r\u00e9sistance R.<br \/>La tension de sortie de ce montage vaut :<\/p>\n<p style=\"text-align: left; padding-left: 40px;\"><strong>US = R.I<\/strong><\/p>\n<p style=\"text-align: left;\">Or l&rsquo;intensit\u00e9 du courant est proportionnelle \u00e0 l&rsquo;\u00e9clairement, donc la tension de sortie est de la forme :<\/p>\n<p style=\"text-align: left; padding-left: 40px;\"><strong>US = k.Eclairement<\/strong><\/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 LEDR = 8;<br \/>const int LEDV = 7;<br \/>const int LEDB = 2;<br \/>const int BUTTON = 12;<br \/>const int EM = 4;<br \/>const int MAX = 200;<\/p>\n<p>int val=0;<br \/>int ValPhotoD = 0;<br \/>unsigned long StartTime = 0;<br \/>unsigned long DeltaTime = 0;<\/p>\n<p><br \/>void setup() {<br \/>Serial.begin(9600); <br \/>pinMode (LEDR, OUTPUT);<br \/>pinMode (LEDV, OUTPUT);<br \/>pinMode (LEDB, OUTPUT);<br \/>pinMode (BUTTON, INPUT);<br \/>digitalWrite(LEDR, HIGH);<br \/>digitalWrite(EM, HIGH);<br \/>digitalWrite(LEDV, LOW);<br \/>digitalWrite(LEDB, LOW);<br \/>}<\/p>\n<p>void loop() {<br \/>val = digitalRead(BUTTON);<br \/>ValPhotoD = analogRead(A0);<br \/>if (val == HIGH) {<br \/>StartTime= millis(); <br \/>digitalWrite(LEDR, LOW);<br \/>digitalWrite(LEDV, HIGH);<br \/>digitalWrite(EM, LOW);<br \/>}<br \/>else {<br \/>digitalWrite(LEDR, HIGH);<br \/>digitalWrite(LEDV, LOW);<br \/>digitalWrite(EM, HIGH);<br \/>}<br \/>if ((ValPhotoD &lt; MAX) and (StartTime !=0)) {<br \/>digitalWrite(LEDB, HIGH);<br \/>DeltaTime = millis() &#8211; StartTime;<br \/>Serial.print(\u00ab\u00a0Dt = \u00ab\u00a0);<br \/>Serial.print(DeltaTime);<br \/>Serial.println(\u00a0\u00bb mS\u00a0\u00bb);<br \/>StartTime = 0;<br \/>}<br \/>else {<br \/>digitalWrite(LEDB, LOW); <br \/>}<br \/>delay(100);<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. D\u00e9claration des constantes et variables :<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int LEDR = 8<\/strong> (constante nombre entier correspondant \u00e0 la broche de la DEL rouge)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int LEDV = 7<\/strong> (constante nombre entier correspondant \u00e0 la broche de la DEL verte)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int LEDB = 2<\/strong> (constante nombre entier correspondant \u00e0 la broche de la DEL bleue)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int BUTTON = 12<\/strong> (constante nombre entier correspondant \u00e0 la broche du bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int EM = 4<\/strong> (constante nombre entier correspondant \u00e0 la broche de l\u2019\u00e9lectro-aimant)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int MAX = 200<\/strong> (constante nombre entier correspondant \u00e0 la valeur de la tension de d\u00e9tection du passage de la bille devant la photodiode)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int val = 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 ValPhotoD = 0<\/strong> (variable nombre entier pour stocker la valeur du potentiel en sortie du montage convertisseur courant tension de la photodiode)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>unsigned long StartTime = 0<\/strong> (variable nombre entier long positif pour stocker l\u2019heure \u00e0 laquelle la chute de la bille a \u00e9t\u00e9 d\u00e9clench\u00e9e)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>unsigned long DeltaTime = 1000<\/strong> (variable nombre entier long positif pour le calcul de la dur\u00e9e en ms de la chute de la bille)<\/p>\n<p>\u00a0<\/p>\n<p>\u2013 2. Initialisation des entr\u00e9es et sorties :<\/p>\n<p style=\"padding-left: 40px;\"><strong>. Initialisation de la liaison s\u00e9rie \u00e0 un d\u00e9bit de 9600 bauds,<\/strong><br \/><strong>. Initialisation des broches des DELs en sortie,<\/strong><br \/><strong>. Initialisation de la broche du bouton poussoir en entr\u00e9e,<\/strong><br \/><strong>. La DEL rouge est allum\u00e9e et les autres DELs sont \u00e9teintes,<\/strong><br \/><strong>. L\u2019\u00e9lectro-aimant est activ\u00e9.<\/strong><\/p>\n<p>\u00a0<\/p>\n<p>\u2013 3. 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><\/p>\n<p style=\"padding-left: 40px;\"><strong>\u2013&gt; Lecture de la valeur de la broche analogique A0 (broche en sortie du convertisseur courant-tension),<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong>\u2013&gt; Si le bouton poussoir est appuy\u00e9 :<\/strong><\/p>\n<p style=\"padding-left: 80px;\"><strong>&#8211; L\u2019\u00e9lectro-aimant est d\u00e9sactiv\u00e9 (la bille est lib\u00e9r\u00e9e),<\/strong><br \/><strong>&#8211; La DEL rouge est \u00e9teinte et la DEL verte est allum\u00e9e,<\/strong><br \/><strong>&#8211; L\u2019heure \u00e0 laquelle la chute de la bille a \u00e9t\u00e9 d\u00e9clench\u00e9e est stock\u00e9e dans la variable \u00ab StartTime \u00bb.<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong>\u2013&gt; Si le bouton poussoir est rel\u00e2ch\u00e9 :<\/strong><\/p>\n<p style=\"padding-left: 80px;\"><strong>&#8211; L\u2019\u00e9lectro-aimant est r\u00e9activ\u00e9,<\/strong><br \/><strong>&#8211; La DEL rouge est allum\u00e9e et la DEL verte est \u00e9teinte,<\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong>\u2013&gt; Si la bille a \u00e9t\u00e9 lib\u00e9r\u00e9e (variable \u00ab StartTime \u00bb !=0) et que la bille passe devant la photodiode (ValPhotoD &lt; MAX) :<\/strong><\/p>\n<p style=\"padding-left: 80px;\"><strong>&#8211; La DEL bleue est allum\u00e9e,<\/strong><br \/><strong>&#8211; La dur\u00e9e de la chute est calcul\u00e9e et affich\u00e9e dans le moniteur s\u00e9rie,<\/strong><br \/><strong>&#8211; la variable \u00ab StartTime \u00bb est r\u00e9initialis\u00e9e.<\/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=6730\"><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\" style=\"width:44px;height:24px\"\/><\/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=7502\"><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>19. Chute d\u2019une bille (D\u00e9terminer la dur\u00e9e de chute d\u2019une bille &#8211; Cat\u00e9gorie: M\u00e9canique) \u00a0 L\u2019objectif du montage est de mesurer la dur\u00e9e en ms de la chute d\u2019une bille \u00e0 l\u2019aide d\u2019un dispositif de d\u00e9tection constitu\u00e9 d\u2019un laser et d\u2019une photodiode associ\u00e9e \u00e0 un circuit convertisseur courant &#8211; tension. A t = 0, la [&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-6759","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6759","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=6759"}],"version-history":[{"count":8,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6759\/revisions"}],"predecessor-version":[{"id":7514,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6759\/revisions\/7514"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}