{"id":2497,"date":"2020-04-16T10:56:56","date_gmt":"2020-04-16T08:56:56","guid":{"rendered":"http:\/\/www.ardpylab.fr\/?page_id=2497"},"modified":"2020-05-10T16:40:20","modified_gmt":"2020-05-10T14:40:20","slug":"reception-des-donnees","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=2497","title":{"rendered":"R\u00e9ception des donn\u00e9es"},"content":{"rendered":"\n<h2 style=\"text-align: center;\"><em>(<strong>Envoi de donn\u00e9es de l\u2019Arduino <\/strong><\/em><\/h2>\n<h2 style=\"text-align: center;\"><em><strong>vers le moniteur s\u00e9rie)<\/strong><\/em><\/h2>\n<p><br><br><\/p>\n<h4><strong><span style=\"color: #0000ff;\"><a id=\"rec1\"><\/a>. <\/span><\/strong><span style=\"text-decoration: underline;\"><span style=\"color: #0000ff; text-decoration: underline;\"><strong>La fonction Serial.print()<\/strong><br><br><\/span><\/span><\/h4>\n<p>Maintenant que la liaison s\u00e9rie est \u00e9tablie, il est possible d\u2019envoyer des donn\u00e9es depuis la carte Arduino vers le moniteur s\u00e9rie avec la fonction \u201d<strong>print()\u201d<\/strong>&nbsp; de la classe \u201d<strong>Serial\u201d<\/strong>.<\/p>\n<p>On peut envoyer diff\u00e9rents types d&rsquo;informations :<\/p>\n<p style=\"padding-left: 40px;\">. Envoie d\u2019une cha\u00eene de caract\u00e8res, sans saut de ligne \u00e0 la fin&nbsp;: <strong>Serial.print(\u201dTest\u201d);<\/strong><\/p>\n<p style=\"padding-left: 40px;\">. Envoie d\u2019une cha\u00eene de caract\u00e8res, avec saut de ligne \u00e0 la fin : <strong>Serial.println(\u201dTest\u201d);<\/strong><\/p>\n<p style=\"padding-left: 40px;\">. Envoie de la valeur d&rsquo;une variable, sans saut de ligne \u00e0 la fin :&nbsp;<\/p>\n<p style=\"padding-left: 80px;\"><strong>int a = 3;<br><\/strong><strong style=\"font-size: inherit;\">Serial.print(a);<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><u>Exemple d\u2019application d\u2019envoi de donn\u00e9es de l\u2019Arduino vers le moniteur s\u00e9rie<\/u> :<\/p>\n<p><a id=\"circuit\"><\/a>Voici un circuit qui servira de support \u00e0 tous les exemples d\u2019application de ce document sur la communication avec un Arduino.<\/p>\n<p>Il compos\u00e9 d\u2019une <a href=\"https:\/\/www.ardpylab.fr\/downloads\/docs\/DELRVB.pdf\" data-wplink-url-error=\"true\">DEL RVB<\/a> dont les DELs rouge, verte et bleue sont respectivement connect\u00e9s aux sorties, 11, 9 et 10 de l\u2019Arduino (les DELs sont prot\u00e9g\u00e9es par des <a href=\"https:\/\/www.ardpylab.fr\/downloads\/docs\/R220.pdf\" data-wplink-url-error=\"true\">r\u00e9sistance de 220 \u03a9<\/a>) et d\u2019un <a href=\"https:\/\/www.ardpylab.fr\/downloads\/docs\/potentiometre.pdf\" data-wplink-url-error=\"true\">potentiom\u00e8tre<\/a>, dont le \u00ab\u00a0point milieu\u00a0\u00bb est reli\u00e9 \u00e0 l\u2019entr\u00e9e analogique A0 du microcontr\u00f4leur&nbsp;:<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"924\" height=\"500\" class=\"wp-image-2500 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms5.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms5.png 924w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms5-300x162.png 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms5-768x416.png 768w\" sizes=\"auto, (max-width: 924px) 100vw, 924px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<p><a id=\"prog\"><\/a><a href=\"https:\/\/www.ardpylab.fr\/downloads\/moniteur-serie\/analogread.zip\" data-wplink-url-error=\"true\">Le programme<\/a> suivant, qui sera t\u00e9l\u00e9vers\u00e9 dans la m\u00e9moire de l\u2019Arduino, affiche la valeur de l\u2019entr\u00e9e analogique <strong>A0 <\/strong>dans le moniteur s\u00e9rie (valeur entre 0 et 1023 en fonction de la position du \u201dpoint milieu\u201d du potentiom\u00e8tre). <br \/>Les donn\u00e9es ne sont envoy\u00e9es que si la valeur lue est diff\u00e9rente de la pr\u00e9c\u00e9dente (\u00e9cart de plus de 2 unit\u00e9s entre les valeurs lues) :<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/moniteur-serie\/codes\/ino\/AnalogRead\/AnalogRead.ino\" data-wplink-url-error=\"true\"><img loading=\"lazy\" decoding=\"async\" width=\"721\" height=\"392\" class=\"wp-image-2502 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms6.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms6.png 721w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms6-300x163.png 300w\" sizes=\"auto, (max-width: 721px) 100vw, 721px\" \/><\/a><\/figure>\n<\/div>\n<p>Et le r\u00e9sultat dans le moniteur s\u00e9rie&nbsp;:<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"562\" height=\"356\" class=\"wp-image-2511 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms7.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms7.png 562w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms7-300x190.png 300w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<h4><span style=\"color: #0000ff;\"><strong><a id=\"rec2\"><\/a>. <u>La fonction Serial.write()<\/u><\/strong><\/span><\/h4>\n<p><br>Il est \u00e9galement possible d\u2019utiliser la fonction \u201d<strong>Serial.write()\u201d<\/strong>, pour envoyer des donn\u00e9es sur la liaison s\u00e9rie. <br>Si dans le cas de l\u2019envoi de chaines de caract\u00e8res, il n\u2019y a pas de diff\u00e9rence avec la fonction \u201d<strong>Serial.print()\u201d<\/strong>, l\u2019envoi de nombres d\u00e9cimaux ou hexad\u00e9cimaux ne donnent pas le m\u00eame r\u00e9sultat suivant la fonction utilis\u00e9e, comme le montre <a href=\"https:\/\/www.ardpylab.fr\/downloads\/moniteur-serie\/write.zip\" data-wplink-url-error=\"true\">le code<\/a> suivant :<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.ardpylab.fr\/downloads\/moniteur-serie\/codes\/ino\/Write\/Write.ino\" data-wplink-url-error=\"true\"><img loading=\"lazy\" decoding=\"async\" width=\"863\" height=\"342\" class=\"wp-image-2514 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms8.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms8.png 863w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms8-300x119.png 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms8-768x304.png 768w\" sizes=\"auto, (max-width: 863px) 100vw, 863px\" \/><\/a><\/figure>\n<\/div>\n<p>R\u00e9sultats dans le moniteur s\u00e9rie&nbsp;:<\/p>\n\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"151\" class=\"wp-image-2515 aligncenter\" style=\"border: 3px solid #eeeeee; padding: 3px; margin: 3px;\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms9.png\" alt=\"\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms9.png 559w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/04\/com-ardpy-ms9-300x81.png 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n\n\n\n<p>La fonction \u201d<strong>Serial.print()\u201d <\/strong>affiche bien les valeurs des variables <strong>N<\/strong> et <strong>N2<\/strong> (0x45 en hexad\u00e9cimal est \u00e9gal \u00e0 69 en d\u00e9cimal) car ces variables sont envoy\u00e9es comme des chaines de caract\u00e8res, chaque caract\u00e8re \u00e9tant cod\u00e9 selon le code ASCII.<\/p>\n<p>La fonction \u201d<strong>Serial.write()\u201d<\/strong>, elle, \u00e9crit des donn\u00e9es binaires sur le port s\u00e9rie. Ces donn\u00e9es sont envoy\u00e9es comme une s\u00e9rie d&rsquo;octets.<\/p>\n<p>Si les donn\u00e9es \u00e0 transmettre sont des chaines de caract\u00e8res, les donn\u00e9es binaires transmises sont les codes ASCII des caract\u00e8res. Mais dans le cas de nombre, les donn\u00e9es envoy\u00e9es sont le r\u00e9sultat de la conversion en binaire de ces nombres.<\/p>\n<p>Ainsi la variable <strong>N<\/strong> est transmise sous la forme\u00a0: <strong>00110001 <\/strong>(49 en d\u00e9cimal) qui est le code ASCII du chiffre \u201d<strong>1\u201d <\/strong>(1 est donc affich\u00e9), et la variable <strong>N2<\/strong> sous la forme\u00a0: <strong>01000101 <\/strong>(69 en d\u00e9cimal ou 0x45 en hexad\u00e9cimal), soit le code ASCII de la lettre<strong> \u201dE\u201d <\/strong>(E est donc affich\u00e9).<\/p>\n<p>\u00a0<\/p>\n\n\n<div  class=\"grids-section grids-is-stretch\" 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:2;--_gs-rows:1\"><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<div class=\"wp-block-image\"><figure class=\"alignleft size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=2456\"><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><\/div>\n\n<\/div>\n\n<div class=\"grids-area\" style=\"--_ga-column:2\/3;--_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<div class=\"wp-block-image\"><figure class=\"alignright size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=2522\"><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><\/div>\n\n<\/div>\n<\/div><\/div>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>(Envoi de donn\u00e9es de l\u2019Arduino vers le moniteur s\u00e9rie) . La fonction Serial.print() Maintenant que la liaison s\u00e9rie est \u00e9tablie, il est possible d\u2019envoyer des donn\u00e9es depuis la carte Arduino vers le moniteur s\u00e9rie avec la fonction \u201dprint()\u201d&nbsp; de la classe \u201dSerial\u201d. On peut envoyer diff\u00e9rents types d&rsquo;informations : . Envoie d\u2019une cha\u00eene de caract\u00e8res, [&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-2497","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2497","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=2497"}],"version-history":[{"count":0,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/2497\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}