<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Projet Archives - PlaisirArduino</title>
	<atom:link href="https://plaisirarduino.fr/category/projet-arduino/feed/" rel="self" type="application/rss+xml" />
	<link>https://plaisirarduino.fr/category/projet-arduino/</link>
	<description></description>
	<lastBuildDate>Wed, 16 Jun 2021 21:44:10 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>WEB ET ARDUINO</title>
		<link>https://plaisirarduino.fr/web-et-arduino/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Sun, 12 May 2019 20:44:08 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=3991</guid>

					<description><![CDATA[<p>Le broker qu’est-ce que c’est ? Pour faire interagir la platine arduino et le web nous utilisons un broker. Son rôle est de distribuer les messages aux ensembles des objets IOT connectés.&#160; Lorsque l’objet IOT a souscrit à un topic, il va recevoir tous les messages de celui - ci. &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/web-et-arduino/">WEB ET ARDUINO</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Web et arduino" width="660" height="371" src="https://www.youtube.com/embed/Xp_8vsn8wUg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Le broker qu’est-ce que c’est ?</h2>



<p>Pour faire interagir la platine arduino et le web nous utilisons un broker. Son rôle est de distribuer les messages aux ensembles des objets IOT connectés.&nbsp;</p>



<p>Lorsque l’objet IOT a souscrit à un topic, il va recevoir tous les messages de celui - ci. Quand il publie un message tous les objets abonnés à son topic le reçoivent.</p>



<p>Exemple: &nbsp;</p>



<img decoding="async" width="100%" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/gif-animé-1-à-8-1.gif" alt="Animation brocker vers IOT">



<img decoding="async" width="100%" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/gif-animé-9a15.gif" alt="Animation vers broker IOT topic">



<p>Pour interagir avec les différents objets, le broker utilise  le protocole MQTT. Vous n’avez pas besoin de rentrer dans la technique pour utiliser celui-ci.&nbsp;</p>



<p>Il existe plusieurs brokers, en principe nous pouvons avoir besoin d’un broker local ou accessible par internet.&nbsp;</p>



<p>J’ai testé le broker Mosquitto en local sur une platine rasberryPi qui remplie efficacement son rôle.</p>



<p>Pour ne pas vous faire acheter du matériel supplémentaire, j’ai choisi le brocker <a href="http://shiftr.io">shiftr.io</a> sur internet car il est facile à installer et la documentation remplie les exigences du projet que je souhaite réaliser.&nbsp;</p>



<h2 class="wp-block-heading">Etape 1: Mise en place du Broker</h2>



<ul class="wp-block-list"><li>Créer un compte sur <a href="http://shiftr.io">shiftr.io</a>&nbsp;</li><li>Créer le broker&nbsp;</li><li>Modifier le token avec pour paramètre l’identifiant et le mot de passe.</li></ul>



<p>Ces démarches sont rapides, pour ceux qui auraient des difficultés, je vous renvoie sur la vidéo Web et arduino ci-dessus.</p>



<h2 class="wp-block-heading">Etape 2: Test  avec la platine Arduino</h2>



<p>Dans un premier temps, je vous invite à installer la librairie MQTT de Joel Gaehwiller</p>



<figure class="wp-block-image is-resized"><img decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Libraire-MQTT.png" alt="Libraire MQTT" class="wp-image-4004" width="578" height="70" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Libraire-MQTT.png 482w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Libraire-MQTT-300x36.png 300w" sizes="(max-width: 578px) 100vw, 578px" /></figure>



<p>Ensuite lancer l’exemple&nbsp;</p>



<p>- Fichier/EXEMPLE / MQTT / ArduinoEthernetShield</p>



<p>- Modifier les paramètres de connexion au broker dans la fonction Connect ligne 23 avec votre identifiant et votre mot de passe du token</p>



<figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="945" height="141" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr.png" alt="" class="wp-image-3994" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr.png 945w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr-300x45.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr-768x115.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/Identifiant-shiftr-700x104.png 700w" sizes="(max-width: 945px) 100vw, 945px" /></figure>



<p>- Téléverser le programme et vérifier que le broker reçoit l’information </p>



<p>«&nbsp;World&nbsp;»&nbsp; sous le topic «&nbsp;Hello&nbsp;».</p>



<p>A partir de là, la platine arduino et le broker sont opérationnels.</p>



<h2 class="wp-block-heading">Etape 3: Le Web&nbsp;</h2>



<p>Dans la documentation de <a href="http://shiftr.io">shiftr.io</a> vous y touverez le code source de base pour interagir avec le broker et le navigateur.&nbsp;</p>



<ul class="wp-block-list"><li>&nbsp;Créer un dossier dans lequel vous allez y mettre trois fichiers: index.html, script.js et style.css</li><li>Prenez le code de la documentation sous exemple browser et faites un copier/coller dans les différents fichiers.</li><li>Tester l’envoi du message lorsque vous appuyez sur le bouton</li></ul>



<h2 style="text-align:center" class="red wp-block-heading"> ARDUINO ET WEB</h2>



<p>Présentation&nbsp;</p>



<p>Il s'agit d’allumer des diodes aux travers du navigateur, recevoir le retour d’un potentiomètre et d’agir avec un bouton poussoir sur la platine arduino.</p>



<p>Le broker étant opérationnel, nous n’agirons plus sur celui-ci.</p>



<p style="text-align:center"> Index.html</p>



<p>L’objectif est d’afficher deux boutons pour commander des diodes et un retour potentiomètre.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="898" height="408" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index.png" alt="fichier index html" class="wp-image-3995" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index.png 898w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index-300x136.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index-768x349.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/index-700x318.png 700w" sizes="auto, (max-width: 898px) 100vw, 898px" /></figure>



<p style="text-align:center">Style.css</p>



<p>Le fichier style.css permet de donner des paramètres d’affichage de la page index.html</p>



<p style="text-align:center">Script.js</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="760" height="952" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript.png" alt="script javascript" class="wp-image-3993" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript.png 760w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript-239x300.png 239w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/code-javascript-700x877.png 700w" sizes="auto, (max-width: 760px) 100vw, 760px" /></figure>



<p>Script permet de modifier et d'actualiser la page index.html, son langage est le javascript. &nbsp;</p>



<p>Le javascript a la particularité de modifier la page Web,  même après son téléchargement celui-ci est interprété par le navigateur. &nbsp;</p>



<p>Le premier élément, c’est la connexion au broker ligne 4, il faut renseigner ses identifiants de token</p>



<p>Le second élément: lignes 10 et 11 permettent de souscrire aux différents Topic.&nbsp;</p>



<p>Le troisième élément: lignes 15 à 69 modifient le contenu des balises ou leurs styles en fonction des&nbsp; messages reçus .</p>



<p>Exemple&nbsp;</p>



<p class="has-text-color has-vivid-cyan-blue-color">	document.getElementById('led7').innerHTML = ‘ON';</p>



<p>Modifie le contenue de la balise qui porte l’identifiant «&nbsp;led7&nbsp;» dans la page index.html par «&nbsp;ON&nbsp;».</p>



<p class="has-text-color has-vivid-cyan-blue-color">&nbsp;document.getElementById("led7").style.backgroundColor="green";</p>



<p>Modifie le style backgroundColor de la balise qui porte l’identifiant «&nbsp;led7&nbsp;» dans la page index.html.</p>



<p>Le dernier élément: ligne 71 à ligne 76 permettent de publier des messages au broker au click de bouton.&nbsp;</p>



<p>Lorsque le bouton est appuyé le message est traité par la fonction de traitement des messages : lignes 15 à 69.</p>



<h2 class="wp-block-heading">Code source arduino</h2>



<p>Le programme est fourni gratuitement en téléchargement <a href="https://plaisirarduino.fr/telechargement">https://plaisirarduino.fr/telechargement</a> &nbsp;</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="418" height="283" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/variable.png" alt="" class="wp-image-4003" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/variable.png 418w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/variable-300x203.png 300w" sizes="auto, (max-width: 418px) 100vw, 418px" /></figure>



<p>Déclaration des variables pour les entrées / sorties de la commande des diodes et des différentes temporisations.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="757" height="300" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic.png" alt="Paramettre token" class="wp-image-3998" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic.png 757w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic-300x119.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/conexion-et-topic-700x277.png 700w" sizes="auto, (max-width: 757px) 100vw, 757px" /></figure>



<ul class="wp-block-list"><li>Connexion avec les identifiants et mot de passe du token</li><li>Souscription aux Topic</li></ul>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="555" height="431" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/message-recieved.png" alt="Fonction received" class="wp-image-4000" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/message-recieved.png 555w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/message-recieved-300x233.png 300w" sizes="auto, (max-width: 555px) 100vw, 555px" /></figure>



<p>La fonction messageReceived traite toutes les interactions des messages reçus par le broker, elle a pour rôle de commander l’état des différentes diodes.</p>



<p>Dans cet exemple, lorsque la platine reçoit le message 9$Led7, elle met la diode 7 à HIGH</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="587" height="290" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/setup.png" alt="setup arduino" class="wp-image-4002" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/setup.png 587w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/setup-300x148.png 300w" sizes="auto, (max-width: 587px) 100vw, 587px" /></figure>



<p>Le setup initialise les entrées / sorties et les différents paramètres nécessaires</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="608" height="442" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/poop-1.png" alt="loop partir une" class="wp-image-4001" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/poop-1.png 608w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/poop-1-300x218.png 300w" sizes="auto, (max-width: 608px) 100vw, 608px" /></figure>



<p>La première partie de la fonction Loop renvoie toutes les 5 secondes les paramètres des diodes et ceux du potentiomètre en publiant leurs valeurs.</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="909" height="593" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2.png" alt="loop deux" class="wp-image-3999" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2.png 909w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2-300x196.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2-768x501.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/05/loop-2-700x457.png 700w" sizes="auto, (max-width: 909px) 100vw, 909px" /></figure>



<p>La seconde partie de loop renvoie les valeurs du potentiomètre, seulement quand celui-ci change de valeur.</p>



<p>Et enfin le traitement du bouton poussoir  publie la commande de la diode 7 lorsque celui-ci est appuyé.&nbsp;</p>
<p>Cet article <a href="https://plaisirarduino.fr/web-et-arduino/">WEB ET ARDUINO</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MENU LCD PAR POTENTIOMÈTRE</title>
		<link>https://plaisirarduino.fr/menu-lcd-saisi-potentiometre/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Sun, 10 Mar 2019 19:21:02 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2938</guid>

					<description><![CDATA[<p>Pour faire suite à vos observations sur la disponibilité limité de broches exploitables (1) du projet exemple "LCD_MENU ARDUINO" . Voici un en réponse à vos attentes un projet exemple qui libèrera deux entrées dans vos projets. Il est vrai que l'exploitation d'un afficheur LCD 8bit est gourmand en brochages. &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/menu-lcd-saisi-potentiometre/">MENU LCD PAR POTENTIOMÈTRE</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Pour faire suite à vos observations sur la disponibilité limité de broches exploitables (1) du projet exemple <strong><em>"</em><a href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;"><em>LCD_M</em><em>ENU ARDUINO</em></span></span></a><em>" </em></strong>. Voici un en réponse à vos attentes un projet exemple qui libèrera deux entrées dans vos projets.</p>
<p><figure id="attachment_2266" aria-describedby="caption-attachment-2266" style="width: 1054px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="wp-image-2266 size-full" title="Afficheur LCD." src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min.png" alt="" width="1054" height="468" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min.png 1054w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-300x133.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-768x341.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-1024x455.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-700x311.png 700w" sizes="auto, (max-width: 1054px) 100vw, 1054px" /><figcaption id="caption-attachment-2266" class="wp-caption-text">Afficheur LCD.</figcaption></figure></p>
<p>Il est vrai que l'exploitation d'un afficheur LCD 8bit est gourmand en brochages.<br />
Ainsi le but de ce projet est de<strong> récupérer deux entrées supplémentaires, en supprimant les</strong> <strong>boutons PLUS (+) et MOINS (-), en les remplaçant par un POTENTIOMÈTRE.</strong></p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">Le matériel</span></strong></h4>
<ul>
<li>Carte Arduino UNO.</li>
<li>Un afficheur LCD. 16X2.</li>
<li>Deux (2) LED -Rouge -Vert.</li>
<li>Trois (3) résistances de charge de 220 ohm.(pour les boutons hors pull_up).</li>
<li>1 bouton poussoir.</li>
<li>Un potentiomètre de 10k ohm pour l'écran LCD.</li>
<li>Un potentiomètre de 10k ohm pour l'évolution dans le MENU.</li>
</ul>
<p><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">LE SCHÉMA DES BRANCHEMENTS.</span></span></strong></p>
<p><figure id="attachment_2951" aria-describedby="caption-attachment-2951" style="width: 1031px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2951 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma.png" alt="" width="1031" height="625" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma.png 1031w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-300x182.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-768x466.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-1024x621.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Menu-commande-LED-potar-schéma-700x424.png 700w" sizes="auto, (max-width: 1031px) 100vw, 1031px" /><figcaption id="caption-attachment-2951" class="wp-caption-text">Schéma des branchements.</figcaption></figure></p>
<h4><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">Étude de projet.</span></span></strong></h4>
<p>Toutefois grâce aux précédents projets <span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;"><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/thermostat-temperature-arduino/">Menu_Thermostat</a></span></strong></span> et&nbsp; <a href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/"><span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;">Menu_LCD_commande_LED</span></strong></span></a> nous avons vu comment piloter un projet à l'aide d'un MENU et d'un clavier à boutons.</p>
<p>En effet, &nbsp;vous avez sûrement constaté que l'exploitation d'un <strong>afficheur LCD</strong>&nbsp;(8 ou 4 bits)<strong> utilise déjà 6 entrées au minimum.</strong><br />
De surcroît pour naviguer dans le menu il nous faut <strong>trois (3) boutons minimum pour l'exploitation du menu</strong> PLUS, MOINS et ENTRÉE.<br />
En somme cela nous fait un total de neuf (9) entrées exploitées rien que pour notre interface.<br />
Ce qui par conséquent mise à part les broches zéro (0) et un (1) <strong>ne laisse plus qu'une broche d'</strong> <a href="https://plaisirarduino.fr/les-entrees-sortie-de-la-platine-arduino/"><span style="text-decoration: underline; color: #33cccc;">entrée/sortie</span></a> <strong>exploitable</strong>.<br />
Suivant le schéma des projets précédents; la broche treize (13).</p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">Évolution du menu par potentiomètre.</span></strong></span></h4>
<p>Il faut donc repenser la sélection des fenêtres et la saisie des paramètres dans le menu. Nous utiliserons donc <strong>la valeur de retour d'un potentiomètre&nbsp;</strong> pour incrémenter les fenêtres et la valeur de saisie.</p>
<p>Pour commencer&nbsp; nous faisons <a href="https://plaisirarduino.fr/signaux-dentrees-et-sortie-analogique/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">l'acquisition</span></span></a> du potentiomètre en divisant par cent sa valeur pour <strong>obtenir stabilité en butée du potentiomètre et une valeur de 0 à 10.</strong></p>
<p>Ensuite pour la <strong>sélection des fenêtres,</strong> nous<strong> ajustons la mesure&nbsp;traité avec le nombre des repères de fenêtres</strong> par une mise en butée de un (1) à six(6).<br />
Enfin pour <strong>la saisie</strong> nous <strong>ajustons la mesure traité</strong> par une mise en butée de un (1) à neuf(9) pour la<strong> valeur de chaque chiffre de saisie.</strong></p>
<p><img loading="lazy" decoding="async" class="wp-image-3595 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition.png" alt="" width="694" height="177" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition.png 798w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition-300x77.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition-768x196.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-Acquisition-700x179.png 700w" sizes="auto, (max-width: 694px) 100vw, 694px" /></p>
<p>Étant donné que <strong>la sélection et la saisie n'utilisent pas les mêmes valeurs,&nbsp;</strong>il va donc falloir <strong>deux variables distinctes</strong> pour chacune de ces deux étapes.</p>
<h4><span style="text-decoration: underline; color: #0000ff;"><strong>La sélection des fenêtres.</strong></span></h4>
<p>Tout d'abord, la sélection des fenêtres s’effectuera suivant le principe du projet <span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;"><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/">Menu_LCD_commande_LED</a></span></strong></span> et sur l'incrémentation de la <strong>variable de "selection"</strong>.</p>
<h4><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">La saisie des données de paramètres.</span></strong></span></h4>
<p>La saisie des valeurs de paramètres s’effectue comme pour le projet cité ci-dessus avec l'incrémentation de la <strong>variable "incremente".<br />
</strong></p>
<p>Toutefois par la suppression du bouton MOINS "-" il n'est <strong>plus possible de sortir du mode de saisi</strong> <strong>sans</strong> <strong>avoir validé une valeur.</strong><br />
Afin de ne pas valider une saisi erroné ou non souhaité nous créons<strong> une fenêtre pour confirmer la saisi.<br />
</strong></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3596 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation.png" alt="" width="957" height="228" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation.png 957w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation-300x71.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation-768x183.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-confirmation-700x167.png 700w" sizes="auto, (max-width: 957px) 100vw, 957px" /></p>
<h4><span style="text-decoration: underline; color: #0000ff;"><strong>Ce qui change dans la structure.</strong></span></h4>
<p><strong>l’aspect le plus important de cet exemple est que la structure du menu restent sensiblement les mêmes</strong> que les projets précédents.<br />
Néanmoins nous <strong>avons ajouté une fenêtre de retour</strong> sur laquelle un appui sur le bouton ENTRÉE permet un <strong>retour à la fenêtre de lecture.</strong></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3570 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour.png" alt="" width="851" height="205" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour.png 851w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour-300x72.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour-768x185.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/02/Menu-potar-fenetre-retour-700x169.png 700w" sizes="auto, (max-width: 851px) 100vw, 851px" /></p>
<p>Finalement la principale chose qui change est dans le fait que <strong>le menu conserve l'état de sélection actuel en fonction de la position du potentiomètre.</strong><br />
Malgré cela, au bout du compte, nous y gagnons deux entrées supplémentaires !</p>
<h5 style="text-align: center;"><strong><span style="color: #0000ff;">FIN.</span></strong></h5>
<p><em>En définitif, &nbsp;vous avez là un outil d’exploitation compatible avec des projets exploitant un écran</em> <a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline;"><strong><span style="color: #33cccc; text-decoration: underline;">LCD</span></strong></span>.</a><em><br />
</em><em>Vous pouvez à présent <strong>créer votre propre menu et opérer une saisie de données à transmettre à votre système.</strong> Explorez et amusez-vous à l’adapter à vos projets.</em></p>
<p><em><strong>En téléchargeant le sketch « <a href="https://plaisirarduino.fr/telechargement/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">MENU_LCD_SAISI_POTAR</span></span></a></strong> <strong>» vous découvrirez sans difficultés sa construction ainsi que ses différentes</strong> <a href="https://plaisirarduino.fr/les-fonctions/"><strong><span style="color: #33cccc;">fonctions.</span></strong></a> Ces fonctions ne contiennent aucune particularité que nous n’ayons pas abordé jusque là, voici donc pourquoi nous ne les détaillerons pas.</em></p>
<h2 style="text-align: center;"><strong>MERCI.</strong></h2>
<h4 style="text-align: center;"><em><strong><a href="https://plaisirarduino.fr/">Plaisir Arduino.fr</a></strong></em></h4>
<p>Cet article <a href="https://plaisirarduino.fr/menu-lcd-saisi-potentiometre/">MENU LCD PAR POTENTIOMÈTRE</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Comment piloter depuis le moniteur Aduino ?</title>
		<link>https://plaisirarduino.fr/moniteur-serie-2/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Sun, 20 Jan 2019 04:56:24 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=1067</guid>

					<description><![CDATA[<p>Les buts de ce projet est: De piloter et faire varier l'intensité lumineuse de trois LED en envoyant des données depuis le moniteur série. Connaître d'autres méthodes d'exploitation du moniteur série. Avoir la possibilité d'ajuster des variables en temps réel dans son projet sans téléverser. Avant tout, nous allons avoir &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/moniteur-serie-2/">Comment piloter depuis le moniteur Aduino ?</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3 style="text-align: left;"><span style="text-decoration: underline;">Les buts de ce projet est:</span></h3>
<ul>
<li>De <strong>piloter</strong> et faire varier l'intensité lumineuse de trois LED <strong>en </strong>envoyant des données<strong> depuis le moniteur série</strong>.</li>
<li>Connaître d'<strong>autres méthodes d'exploitation du moniteur série</strong>.</li>
<li>Avoir la possibilité <strong>d'ajuster des variables en temps réel </strong>dans son projet<strong> sans téléverser</strong>.</li>
</ul>
<p style="text-align: left;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-materiel.png"><img loading="lazy" decoding="async" class=" wp-image-1092 alignleft" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-materiel-107x150.png" alt="Mointeur série pilote materiel" width="160" height="224" /><strong><span style="color: #000000;">Avant tout, nous allons avoir besoin de:</span></strong></a></p>
<ul>
<li><span style="color: #000000;">Trois diodes électroluminescentes (rouge)</span></li>
<li><span style="color: #000000;">Trois résistances de 220 ohms.</span></li>
</ul>
<p><span style="color: #000000;">Nous brancherons nos diodes aux broches </span><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-materiel.png">PWM</a> repérées  <strong>"~"</strong> et prévues pour l’exploitation du signal en MLI.</p>
<h6><span style="text-decoration: underline;">Notre schéma de branchements.</span></h6>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1097 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma.png" alt="Mointeur série pilote schéma" width="794" height="527" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma.png 794w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma-300x199.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-pilote-schéma-700x465.png 700w" sizes="auto, (max-width: 794px) 100vw, 794px" /></a></p>
<h3 style="text-align: center;"><strong><span style="text-decoration: underline; color: #0000ff;">Comment piloter nos équipements ?</span></strong></h3>
<p>En premier lieu, il nous faut <strong>sélectionner la LED</strong> que l'on souhaite piloter. Dans notre cas la led1, led2 ou led3.<br />Puis, il lui <strong>appliquer une valeur</strong> de pilotage allant de 0 à 255.</p>
<p>Par conséquent, cela nous fait <strong>deux</strong> <strong>étapes</strong>. C'est-à-dire la <strong>sélection </strong>et le<strong> pilotage</strong>.</p>
<p>Afin de réaliser ces deux étapes, plus précisément, nous utilisons <strong>des méthodes de la classe <span style="color: #ff6600;">Serial</span>. </strong></p>
<p>De sorte que la <strong>sélection</strong> des LED soit <strong>claire et simple,</strong> nous utiliserons des <strong>mots clés</strong> propre à chacune d'elles. Soit <span style="color: #000000;"><strong>led1, led2 et led3.<br /></strong>Le <strong>pilotage</strong> étant, lui, sur une <strong>base numérique.</strong><br /></span></p>
<p>De toute évidence, nous avons<strong> deux types de données à traiter</strong>.<br />Une première de <strong>type alphabétiques</strong> <strong><span style="color: #33cccc;">String</span> </strong>et la suivante de <strong>type numériques</strong> <strong><span style="color: #33cccc;">int</span></strong> "Integer" ou <strong><span style="color: #33cccc;">byte</span></strong><span style="color: #33cccc;"><span style="color: #000000;"> "byte"</span></span>.<br />Par conséquent, cela nous fait <strong>deux étapes d'acquisition. La première pour le mot clé et la seconde pour la valeur de pilotage.</strong></p>
<h3 style="text-align: center;"><span style="text-decoration: underline; color: #0000ff;"><strong>Le programme.</strong></span></h3>
<p style="text-align: justify;">Tout d’abord, le moniteur affiche un <strong>message d'ouverture et d'informations</strong> puis les diodes s'allument en test.  Les <strong>déclarations et configurations sont donc faites</strong>.</p>
<p>Tout est prêt pour commencer la programmation.</p>
<h5 style="text-align: justify;"><span style="color: #0000ff;"><span style="text-decoration: underline;"><strong>Premièrement:</strong></span>  L'acquisition des données séries.</span></h5>
<p>Commençons par la <strong>première donnée utile </strong>qui est un <strong>mot clé envoyé</strong> depuis le moniteur.</p>
<p style="text-align: left;">Tout d'abord, avec la méthode <span style="color: #ff6600;"><strong>Serial</strong></span>.<strong><span style="color: #ff6600;">available</span>();</strong> nous savons<strong> recevoir des données</strong> <strong> pour les lire.-</strong><strong><br /></strong>Mais contrairement au <strong><span style="color: #008080;"><a style="color: #008080;" href="https://plaisirarduino.fr/moniteur-serie/">tutoriel "Moniteur série"</a></span></strong>, <strong>pour les mots clés</strong>, nous utilisons la méthode <strong><span style="color: #ff6600;">Serial</span>.<span style="color: #ff6600;">readString</span>(); </strong>afin de lire le buffer sans avoir à recomposer les données de type <span style="color: #33cccc;"><strong>String</strong>.<span style="color: #000000;"><br /></span></span></p>
<p style="text-align: left;"><span style="color: #ff0000;"><img loading="lazy" decoding="async" class=" wp-image-3515 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/03-Mointeur-série-pilote-acquisition.png" alt="" width="832" height="109" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/03-Mointeur-série-pilote-acquisition.png 548w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/03-Mointeur-série-pilote-acquisition-300x39.png 300w" sizes="auto, (max-width: 832px) 100vw, 832px" /></span></p>
<p style="text-align: left;"><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">Deuxièmement</span>:</strong>  Le traitement des données séries reçu.</span></p>
<p><strong><span style="text-decoration: underline;">le mot clé.</span><br /></strong>Ensuite il va falloir <strong>reconnaître le mot clé envoyé</strong> depuis le moniteur série<strong> par rapport aux mots clés</strong> <strong>prédéfinis</strong> <strong>dans un</strong> <strong><span style="color: #008080;"><a style="color: #008080;" href="https://plaisirarduino.fr/tableau-de-donnees/">tableau</a></span></strong> de type <strong><span style="color: #33cccc;">String</span></strong>.</p>
<p><span style="color: #ff0000;"><img loading="lazy" decoding="async" class="size-full wp-image-3516 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/04-Mointeur-série-pilote-tableau-mots-clés.png" alt="" width="579" height="18" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/04-Mointeur-série-pilote-tableau-mots-clés.png 579w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/04-Mointeur-série-pilote-tableau-mots-clés-300x9.png 300w" sizes="auto, (max-width: 579px) 100vw, 579px" /></span></p>
<p>De la même manière que pour deux variables, il vous suffira, dans une condition d'exécution <span style="color: #808000;"><strong>if</strong></span>(), de réaliser une <strong>comparaison de la donnée série par rapport aux mots clés du tableau.</strong></p>
<p>En outre, de la condition exécution l'utilisation d'une boucle <span style="color: #808000;"><strong>for</strong></span>() est utile pour <strong>scruter le tableau et </strong><strong>comparer la donnée</strong><strong> reçue.</strong></p>
<p>Puis une  fois la condition d'exécution vrai, on <strong>valide la donnée </strong> et on stoppe la boucle de scan par un <span style="color: #808000;"><strong>break</strong><span style="color: #000000;">.</span></span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3524 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau.png" alt="" width="751" height="204" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau.png 751w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau-300x81.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/05-Mointeur-série-pilote-scan-tableau-700x190.png 700w" sizes="auto, (max-width: 751px) 100vw, 751px" /></p>
<p><span style="text-decoration: underline;"><strong>Les données de pilotage.</strong></span></p>
<p>Finalement, nous utilisons la<strong> donnée de pilotage  </strong>afin de sécuriser les systèmes.<br />Dans une condition d'exécution, nous <strong>contrôlons la donnée</strong> reçue pour interdire l'envoi d'une valeur de pilotage, aberrante.</p>
<p>Aussi pour les <strong>données de pilotages</strong> de type <span style="color: #33cccc;"><strong>int, </strong></span>nous utilisons la méthode <strong><span style="color: #ff6600;">Serial</span>.<span style="color: #ff6600;">parseInt</span>();</strong> qui permet de réaliser la lecture des données séries numériques et de les convertir en type <span style="color: #33cccc;"><strong>int</strong></span>.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-3518 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée.png" alt="" width="731" height="207" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée.png 731w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée-300x85.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/06-Mointeur-série-pilote-acquision-donnée-700x198.png 700w" sizes="auto, (max-width: 731px) 100vw, 731px" /></p>
<h5><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">Troisièmement</span>:</strong> L'exécution du programme.</span></h5>
<p>En ce qui concerne l'exécution programme. Comme nous l'avons vu plus haut -Comment piloter nos équipements ?- il y a <strong>deux étapes à réaliser</strong>. Afin d'exécuter nos <strong>deux modes d'acquisition, </strong>nous utilisons <span style="color: #808000;"><strong>switch</strong></span>() et une <strong>variable de transition "etape"</strong> permettant le passage d'une étape à l'autre.</p>
<h5><span style="color: #0000ff;"><strong><span style="text-decoration: underline;">Quatrièmement</span>:</strong> Le paramétrage du moniteur.</span></h5>
<p style="text-align: justify;">Comme vu lors du <span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;"><strong><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/moniteur-serie/"><span style="color: #008080; text-decoration: underline;">tutoriel "Moniteur série"</span></a></strong></span></span>, il ne faut pas oublier que, les données sont traitées sur <strong>la présence ou l'absence de saut de ligne et des retours chariot.</strong><br />N'oublions donc pas de paramétrer le moniteur en mode <strong>« Pas de fin de ligne » .</strong><br />Nous pouvons à présent tester le programme et envoyer des valeurs.</p>
<p><span style="color: #ff0000;"> <img loading="lazy" decoding="async" class="size-full wp-image-3519 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/07-Mointeur-série-pilote-affichage-base.png" alt="" width="548" height="365" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/07-Mointeur-série-pilote-affichage-base.png 548w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/01/07-Mointeur-série-pilote-affichage-base-300x200.png 300w" sizes="auto, (max-width: 548px) 100vw, 548px" /></span></p>
<p style="text-align: justify;">Grâce à <strong> ce programme en exemple, il vous est possible</strong> de modifier est de <strong>piloter en temps réel sans</strong> avoir à continuellement <strong>téléverser</strong>.<br />Ainsi, vous <strong>interagissez directement avec le système de votre projet.</strong> Cela est très utile<strong> pour des phases de tests et d'ajustements de projet</strong>. Amusez vous à l'intégrer à vos projets.</p>
<p>Vous découvrirez au fur et à mesure de votre progression qu'il existe d'autres méthodes pratiques pour exploiter le moniteur série.</p>
<p style="text-align: justify;">Pour conclure, <span style="color: #008080;"><strong><a style="color: #008080;" href="https://plaisirarduino.fr/telechargement/">téléchargez</a></strong></span> le programme "Moniteur_serie_pilote" <strong>amusez vous à l'intégrer à vos projets</strong>. Encore une fois, <span style="color: #0000ff;"><strong>merci de votre lecture</strong></span>.</p>
<p style="text-align: center;"><strong><a href="https://plaisirarduino.fr/"><em><span style="text-decoration: underline; color: #008080;">Plaisir Arduino.</span></em></a></strong></p>


<p></p>
<p>Cet article <a href="https://plaisirarduino.fr/moniteur-serie-2/">Comment piloter depuis le moniteur Aduino ?</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RFID avec Arduino</title>
		<link>https://plaisirarduino.fr/rfid-avec-arduino/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Wed, 25 Jul 2018 17:13:25 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2998</guid>

					<description><![CDATA[<p>Le module RFID RC522 Principe de fonctionnement Ce cours a pour objectif d'appréhender le module RFID. Le téléchargement du code source vous permettra de mettre en application la modification de chaque block. Le module RFID détecte des badges ou des cartes magnétiques à moins de 10 cm. Le passage d’un &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/rfid-avec-arduino/">RFID avec Arduino</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 style="text-align: center;"><span style="color: #0000ff;"><b>Le module RFID RC522</b></span></h1>
<p style="text-align: center;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID.jpg"><img loading="lazy" decoding="async" class="wp-image-3010 alignnone" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID.jpg" alt="Photo module RFID" width="227" height="170" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID.jpg 3264w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-300x225.jpg 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-768x576.jpg 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-1024x768.jpg 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/Module-RFID-700x525.jpg 700w" sizes="auto, (max-width: 227px) 100vw, 227px" /></a></p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/20rEFd5he1s" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2>Principe de fonctionnement</h2>
<p >Ce cours a pour objectif d'appréhender le module RFID. Le téléchargement du code source vous permettra de mettre en application la modification de chaque block.</p>
<p>Le module RFID détecte des badges ou des cartes magnétiques à moins de 10 cm. Le passage d’un composant magnétique permet de lire l’identifiant de l'UID de la carte, ainsi que les données enregistrées.</p>
<p>Par principe, chaque carte RFID dispose de son propre UID.</p>
<p>De plus, les cartes ou tags répondent à une fréquence. Les tags, les plus répandus, sont à une fréquence de 13,56Mhz.</p>
<p>Le contenu est divisé en plusieurs secteurs, subdivisé en block et encore en données.</p>
<p>Certaines cartes disposent du block 0 verrouillé, c’est-à-dire non modifiable. Celui-ci contient essentiellement l’identifiant unique "UID".<span class="Apple-converted-space"> </span></p>
<p>Sur le marché, vous pouvez avoir des cartes dont le cluster UID est modifiable. Dans le cadre de ce tutoriel, j’utilise des cartes dont l’UID est modifiable à 13,56Mhz et d’une capacité mémoire de 1 Ko.
</p>
<h2>Schéma du module RFID RC522</h2>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid.png"><img loading="lazy" decoding="async" class="size-full wp-image-2999 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid.png" alt="Schéma RFID" width="1024" height="768" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid-300x225.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid-768x576.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/rfid-700x525.png 700w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></p>
<p>Le montage du module RFID se compose de 7 fils :</p>
<ul>
<li>RST/Reset <span class="Apple-converted-space">  </span>RST <span class="Apple-converted-space">      </span>—&gt; <span class="Apple-converted-space">  </span>Pin 9 Arduino</li>
<li>SPI SS<span class="Apple-converted-space">      </span>SDA(SS)<span class="Apple-converted-space">  </span>—&gt;<span class="Apple-converted-space">    </span>Pin 10 Arduino</li>
<li>SPI MOSI<span class="Apple-converted-space">    </span>MOSI<span class="Apple-converted-space">      </span>—&gt;<span class="Apple-converted-space">  </span>Pin 11 Arduino</li>
<li>SPI MISO<span class="Apple-converted-space">    </span>MISO <span class="Apple-converted-space">    </span>—&gt;<span class="Apple-converted-space">    </span>Pin 12 Arduino</li>
<li>SPI SCK <span class="Apple-converted-space">    </span>SCK<span class="Apple-converted-space">      </span>—&gt;<span class="Apple-converted-space">    </span>Pin 13 Arduino</li>
<li>GND<span class="Apple-converted-space"> </span></li>
<li>VCC 3,3V !Attention pas 5V</li>
</ul>
<h2>Lire le contenu d’un module RFID</h2>
<p>Maintenant que nous avons vu à quoi ressemble le contenu d’un tag RFID,  passons à la pratique.</p>
<p>Premièrement, ajoutons la librairie MFRC522<span class="Apple-converted-space"> </span></p>
<p>A ce stade, les exemples de la librairie MFRC52  permettent de lire et d’écrire (attention !!! le fait d’approcher votre carte du module en écriture modifie les informations contenues dans le tag et la rend inutilisable) .<span class="Apple-converted-space"> </span></p>
<p>Voyons le résultat de l’exemple « dump info » qui est sans danger.</p>
<p>Exemple dump info:</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid.png"><img loading="lazy" decoding="async" class="size-full wp-image-3000 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid.png" alt="Dump RFID" width="455" height="948" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid.png 455w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/tableau_rfid-144x300.png 144w" sizes="auto, (max-width: 455px) 100vw, 455px" /></a></p>
<p><span class="Apple-converted-space">    </span></p>
<p>Cet exemple nous donne toutes les informations de notre carte RFID . On y trouve la capacité mémoire, l’UID, les secteurs, les adresses et les données.</p>
<p>Vous constaterez que les données sont sous formes hexadécimales, c’est un langage<span class="Apple-converted-space">  </span>machine qui nous est incompréhensible au premier abord.</p>
<h2>Ecrire du contenu<span class="Apple-converted-space"> dans le module RFID</span></h2>
<p>Pour écrire une information dans le tag, il est nécessaire de définir trois choses :<span style="color: #ff0000;"> le secteur</span> , <span style="color: #0000ff;">l’adresse</span> , et <span style="color: #339966;">les données</span>.<span class="Apple-converted-space">  </span>La modification des données se font par ligne de 16 octets. <span class="Apple-converted-space"> </span></p>
<p>&nbsp;</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png"><img loading="lazy" decoding="async" class="size-full wp-image-3001 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png" alt="Exemple de secteur RFID" width="482" height="256" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png 482w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID-300x159.png 300w" sizes="auto, (max-width: 482px) 100vw, 482px" /></a></p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/07/contenue-RFID.png"><br />
</a>Nous pourrions mettre n’importe quelles données hexadécimales. En ce qui me concerne, j’ai fait le choix de faire correspondre les données, au traditionnel tableau ascii. En effet , ce langage se montre  particulièrement utile pour l’exploitation des informations par la suite.</p>
<p>Lançons l’exemple ReadAndWrite (Attention!! Modification du tag).</p>
<p>L’exécution de ce sketch a pour effet de modifier le secteur 1, le block 4 et les 16 octets hexadécimales.<span class="Apple-converted-space"> </span></p>
<p>En relisant le contenu, les données à cet emplacement, vous avez 0x01, 0x02, 0x03, 0x04,0x05, 0x06, 0x07, 0x08, 0x08, 0x09, 0xff, 0x0b,0x0c, 0x0d, 0x0e, 0x0f</p>
<h2>Retour d'expérience</h2>
<p>Suite aux deux "programmes exemples" que je vous ai présenté, vous êtes capable de lire et d'écrire sur une carte RFID.</p>
<p>Dans mon expérience de l'utilisation de la carte RFID, j'ai rendu inutilisable une paire de cartes en voulant tester les différents exemples de la librairie.</p>
<p>Ce que j'ai constaté:</p>
<ul>
<li>Ne pas modifier le dernier block d'un secteur. Exemple: secteur 1 block 7, secteur 2 block 11 etc...</li>
<li>Ne pas tester n'importe quel code sans le comprendre .</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Cet article <a href="https://plaisirarduino.fr/rfid-avec-arduino/">RFID avec Arduino</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Thermostat créé avec un LCD et Arduino.</title>
		<link>https://plaisirarduino.fr/thermostat-temperature-arduino/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Fri, 02 Mar 2018 19:56:41 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2704</guid>

					<description><![CDATA[<p> Le thermostat. Le but de ce projet est de réaliser un thermostat et de donner quelques notions de gestion de ce type de projet. LE THERMOSTAT. Un thermostat est principalement utilisé pour surveiller un environnement thermique ambiant et pour piloter un système de chauffe. Il se compose principalement d'une sonde &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/thermostat-temperature-arduino/">Thermostat créé avec un LCD et Arduino.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 style="text-align: center;"><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;"> Le thermostat.</span></span></strong></h1>
<h1 style="text-align: center;"><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;"><img loading="lazy" decoding="async" class="alignnone wp-image-2764" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/thermostat.jpg" alt="thermostat" width="240" height="160" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/thermostat.jpg 640w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/thermostat-300x200.jpg 300w" sizes="auto, (max-width: 240px) 100vw, 240px" /></span></span></h1>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/L5qG0IbKY14" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe><br />
Le but de ce projet est de <strong>réaliser un thermostat</strong> et de donner quelques notions de <strong>gestion de ce type de projet. </strong></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">LE THERMOSTAT.</span></strong></span></h4>
<p>Un thermostat est principalement utilisé pour <strong>surveiller un environnement thermique</strong> ambiant et pour <strong>piloter un système de chauffe</strong>.</p>
<p><b>I</b>l se compose principalement d'une<strong> sonde de température, d'une sortie de pilotage,d'un clavier de boutons et d'un afficheur.</strong></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">LE MATÉRIEL.</span></strong></span></h4>
<p><strong>Un potentiomètre</strong> qui simulera la variation de température.<br />
<strong>Une LED de couleur verte</strong> branchée en sortie qui simulera l'activation de notre système.<br />
<strong>Une autre LED de couleur rouge</strong> branchée en sortie qui simulera l'activation d'un défaut système.</p>
<p>Ci-dessous la liste du matériel utilisé:</p>
<ul>
<li>Une carte Arduino.</li>
<li>Un afficheur <strong><a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><em>LCD</em> </a></strong>. 16X2.</li>
<li>Deux (2) LED Rouge et Vert.</li>
<li>Trois (3) résistances de charge de 220 ohm.</li>
<li>Trois (3) boutons poussoirs.</li>
<li>Deux (2) potentiomètres de 10k ohm.</li>
</ul>
<h4><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">LE SCHÉMA.</span></span><br />
</strong></h4>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-2931 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432.png" alt="" width="1045" height="653" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432.png 1045w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-300x187.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-768x480.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-1024x640.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/03/01-Thermostat-schéma-e1520167285432-700x437.png 700w" sizes="auto, (max-width: 1045px) 100vw, 1045px" /></p>
<h4></h4>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">NOTRE CAHIER DES CHARGES.</span></strong></span></h4>
<p>Avoir un menu capable de :</p>
<ol>
<li>Afficher la température actuelle.</li>
<li>Indiquer la tendance de la température sur un temps défini.</li>
<li>Enregistrer les températures minimum et maximum.</li>
<li>Signaler les alarmes de dépassement seuil MINI et MAXI et les remettre à zéro.</li>
<li>Modifier les valeurs de paramètres de seuils.</li>
<li>Piloter des sorties en fonction du traitement signal.</li>
<li>Retourner l'état du système.</li>
</ol>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">ÉTUDE DU PROJET THERMOSTAT.</span></strong><span style="color: #0000ff;"><br />
</span></h4>
<h6><strong><span style="color: #0000ff;">1 -La température.</span></strong></h6>
<p>Dans un premier temps pour <strong>connaître la température ambiante d'un milieu,</strong> il nous faut faire<a href="https://plaisirarduino.fr/signaux-dentrees-et-sortie-analogique/"><em> <span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">l’acquisition d'un signal analogique</span></span></em></a> de la sonde de température.</p>
<h6><strong><span style="color: #0000ff;">2 - La tendance.</span></strong></h6>
<p>L'indication de tendance d’évènements fonctionne suivant le principe d'<strong>enregistrement cadencé</strong> sur un temps défini. Une comparaison dans le temps de la valeur N-1 est faite avec la valeur actuelle. En fonction de <strong>l'écart négatif, positif</strong> ou nul, on <strong>affichera un symbole</strong> à  l'écran LCD à l’occurrence une <strong>flèche allant vers le bas , le haut ou double</strong> pour une valeur stable.</p>
<p><figure id="attachment_2905" aria-describedby="caption-attachment-2905" style="width: 306px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2905 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Tendance.png" alt="" width="306" height="144" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Tendance.png 306w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Tendance-300x141.png 300w" sizes="auto, (max-width: 306px) 100vw, 306px" /><figcaption id="caption-attachment-2905" class="wp-caption-text">Symboles des tendances. + - =</figcaption></figure></p>
<p><strong>L'affichage de la tendance de la température ambiante</strong> permet une surveillance active de notre application. C'est un petit plus à notre thermostat.</p>
<h6><strong><span style="color: #0000ff;">3 - Le MINI/MAXI enregistré.</span><br />
</strong></h6>
<p>Nous souhaitons également avoir<strong> une surveillance des évènements du système.</strong> Pour cela, nous intégrons <strong>l'enregistrement des mesures de températures maximum et minimum</strong>.<br />
L'<strong>initialisation des ces valeurs</strong> doit également être possible <strong>par une commande à l'afficheur LCD.</strong></p>
<h6><strong><span style="color: #0000ff;">4 - Les alarmes et leurs signalements.</span></strong></h6>
<p>Les alarmes seront <strong>activées lors du franchissement des seuils MINI et MAXI</strong> définis en fonction de l'application par l'utilisateur.</p>
<p>Un thermostat dédié à la surveillance d'une application a pour but de <strong>signaler et ou de </strong><strong>piloter un système pour réaliser une action palliative</strong> lors de dysfonctionnements.<br />
Dans notre cas, les alarmes seront signalées par l'allumage de la <strong>LED rouge mais</strong> également par l<strong>'activation d'un pointeur à la fenêtre des mesures MINI et MAXI des températures.</strong></p>
<p>De toute évidence,<strong> une alarme qui </strong><strong>signale un dysfonctionnement</strong> doit par conséquent <strong>être maintenue</strong>.<br />
L'alarme sera donc <strong>acquittée seulement par l'action de l'utilisateur.</strong></p>
<h6><strong><span style="color: #0000ff;">5 - La modification des seuils de températures.</span></strong></h6>
<p>Comme cités ci-dessus, nous avons déjà deux seuils connus:<strong> le MAXI et le MINI.</strong></p>
<p>En plus des seuils MINI et MAXI, notre système doit être activé et désactivé à des températures définies en fonction de l'application et par l'utilisateur.<br />
D’ailleurs,<strong> la température définie</strong> pour la <strong>mise à l’arrêt</strong> d'un système de chauffage est ce que l'on appelle <strong>la consigne.</strong></p>
<p>Tout d'abord,  <strong>le point de consigne:<br />
</strong><strong> C'est un seuil</strong> auquel un système<strong> doit maintenir une application à un état ou une grandeur physique de fonctionnement</strong>. Dans notre cas, c'est une température mais cela peut être un débit, une pression, une position ou une vitesse.</p>
<p>Pour notre projet, nous l’appellerons <strong>seuil d' "ARRÊT".</strong></p>
<p>En suite, l<strong>e seuil de "MARCHE":</strong><br />
A l'inverse du point de consigne, nous avons <strong>le seuil MARCHE</strong> qui va définir la mise en <strong>service du système.</strong></p>
<p>Ils doivent être <strong>ajustés et adaptés </strong><strong>à volonté suivant la configuration et la demande d'exploitation des projets.<br />
</strong>Par conséquent, il va nous falloir <strong>la possibilité de modifier ces seuils</strong> via l'afficheur L.C.D.</p>
<p>Attention! Les seuils de températures ne doivent pas être croisés.</p>
<p>C'est-à-dire que le seuil <strong>d ’ARRÊT </strong><strong>doit toujours être supérieur au seuil de MARCHE.</strong></p>
<p>Ce qui implique également que <strong>le seuil MAXI doit toujours être supérieur au point de consigne</strong>. Mais aussi que <strong>le seuil MINI doit toujours être inférieur au seuil de MARCHE </strong>et inversement.</p>
<p>Donc, il va nous falloir<strong> contrôler les valeurs</strong><strong> lors de la saisie</strong> pour que ces conditions soient respectées.</p>
<h6><strong><span style="color: #0000ff;">6 - Les sorties.</span><br />
</strong></h6>
<p>L' <strong>activation des sorties </strong>est le résultat  du traitement du signal <strong>en fonction des seuils définis</strong> par le projet.<br />
Dans notre cas, nous avons deux sorties. L'une pour le pilotage du système matérialisé par une LED verte et l'autre pour le signalement d'alarmes par une LED rouge.</p>
<p>Conformément à notre projet, <strong>le pilotage de la sortie se fera en mode tout ou rien.</strong></p>
<h6><strong><span style="color: #0000ff;">7 - Le retour d'état.</span><br />
</strong></h6>
<p>Étant donné que  l'activation des <strong>sorties définit l'état de fonctionnement</strong> du système, nous en profitons donc pour <strong>retourner cet état</strong> MARCHE ou ARRÊT par l'affichage d'un message <strong>STOP ou RUN</strong> <strong>à l'afficheur L.C.D.</strong> Sont également affichés <strong>les états d'alarmes.</strong></p>
<p>Nous avons à présent réuni  toutes les particularités de notre projet pour passer à l'étape de <strong>programmation du menu. </strong></p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">Le menu du thermostat.</span></strong></h4>
<p>Plus concrètement, nous allons maintenant étudier<strong> le menu </strong>qui nous permettra de<strong> visualiser la température ambiante </strong>ainsi que sa tendance et qui nous permettra de <strong>saisir les valeurs de seuils.</strong></p>
<p>Suivant le cahier des charges, notre menu est composé d'une <strong>fenêtre de LECTURE </strong>pour la <strong><span style="color: #ff0000;">visualisation de la température</span> , <span style="color: #339966;">l'état du système</span> et <span style="color: #ff6600;">sa tendance</span>.</strong></p>
<p><figure id="attachment_2897" aria-describedby="caption-attachment-2897" style="width: 1036px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2897 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture.png" alt="" width="1036" height="234" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture.png 1036w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-300x68.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-768x173.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-1024x231.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-fenetre-de-lecture-700x158.png 700w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /><figcaption id="caption-attachment-2897" class="wp-caption-text">Fenêtre de lecture.</figcaption></figure></p>
<p>Somme toute, le projet est simple.<strong> Mais la complexité réside dans la conception du MENU.</strong></p>
<p>Premièrement, il faut <strong>penser la structure de notre menu</strong>. (Sur une feuille de papier !!)<br />
Voyez ci-dessous la structure qui va nous servir à la <strong>construction du programme MENU.</strong></p>
<p style="text-align: center;">Ci-dessous la structure du menu.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2892 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu..png" alt="" width="530" height="752" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu..png 446w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-211x300.png 211w" sizes="auto, (max-width: 530px) 100vw, 530px" /></p>
<h6><strong><span style="color: #0000ff;">PARAMÉTRAGE ET VISUALISATION DE DONNÉES.</span></strong></h6>
<p>Un appui sur <strong>ENTRÉE</strong> affiche les fenêtres de <strong>SÉLECTIONS de PARAMÈTRES</strong> à faire défiler par un appui sur le bouton<strong> PLUS(+).<br />
</strong>Un second appui sur <strong>ENTRÉE</strong> permet la <strong>SAISIE</strong> <strong>d'une valeur au paramètre sélectionné.<br />
</strong>Ensuite, à la fin du processus de saisie,  un appui sur <strong>ENTRÉE</strong> valide la saisie et<strong> retourne le menu à la fenêtre de LECTURE</strong>.</p>
<p>De plus, s'ajoutent <strong>deux fenêtres supplémentaires </strong>aux paramètres<strong> .</strong><br />
Une fenêtre pour la<strong> visualisation des températures MINI et MAXI</strong> <strong>mesurées</strong> et la suivante de<strong> de remise à zéro des alarmes et des mesures</strong> MINI / MAXI.</p>
<p>En outre, un appui sur<strong> le bouton MOINS (-) permet un retour à la fenêtre de LECTURE</strong> <strong>depuis les positions de SÉLECTION</strong>.</p>
<p>D'autre part, un <strong>retour systématique à la fenêtre de lecture</strong> sera effectué <strong>si aucune action au clavier n'est détectée </strong>pendant un certain temps.</p>
<h6><strong><span style="color: #0000ff;">SIGNALISATIONS LCD.</span><br />
</strong></h6>
<p>Lors d'une<strong> alarme, c</strong>elle-ci sera <strong>signalée par l'allumage de la LED rouge mais également via l'affichage LCD.<br />
</strong>Un<strong><span style="color: #ff0000;"> pointeur d'alarme</span> sous forme d'une <span style="color: #ff0000;">flèche</span> sera visible à la fenêtre des enregistrements de températures mini et maxi</strong><strong>.</strong></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2899" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme.png" alt="" width="1036" height="234" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme.png 1036w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-300x68.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-768x173.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-1024x231.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Pointeur-dalarme-700x158.png 700w" sizes="auto, (max-width: 1036px) 100vw, 1036px" /></p>
<p><strong>La fenêtre RAZ </strong>est prévue pour l’<strong>acquittement des alarmes</strong> mais aussi pour <strong>initialiser les valeurs mini/maxi</strong> enregistrées. Ce qui notamment <strong>effacera aussi le pointeur d'alarme</strong>.</p>
<h4><span style="text-decoration: underline; color: #0000ff;"><strong><span style="color: #0000ff; text-decoration: underline;">LE PROGRAMME</span>. </strong></span></h4>
<p>Dans le cas d'un MENU L.C.D., <strong>chaque action sur un bouton sélectionne un CAS particulier d'affichag</strong><strong>e.</strong><br />
Notre programme se basera donc essentiellement sur<strong> l'application de</strong> <a href="https://plaisirarduino.fr/switch-case/"><span style="color: #33cccc;">switch().</span></a></p>
<h6><strong><span style="color: #0000ff;">LE CLAVIER.</span></strong></h6>
<p>Tout d'abord, <strong>le clavier</strong> sera géré par une fonction nommée "<strong>boutons()</strong>"<strong> qui retournera les états d'activation de chaque bouton.</strong><strong><br />
</strong></p>
<h6><strong><span style="color: #0000ff;">L'AFFICHAGE DES FENÊTRES.</span></strong></h6>
<p>Pour commencer, il est  à noter qu'un affichage à répétition de boucle sur un afficheur LCD n'est pas conseillé, surtout si l'on effectue un rafraîchissement d'écran. ("clear()")<br />
Par conséquent, nous avons fait en sorte que l'affichage ne s'active qu'une seule fois.<br />
Pour cela, nous <strong>"verrouillons" les fenêtres en effectuant un conditionnement d’exécution des cas par les appuis de boutons.<br />
</strong> Une variable nommée<strong> "fenêtre" servira de "verrou"</strong> mais également de <strong>repère pour la sélection de chaque CAS de FENÊTRES.</strong></p>
<p><strong><br />
</strong>Aussi, nous faisons le choix d'utiliser une<strong> table de données, de type "String", contenant les noms de paramètres</strong> afin d<strong>'activer un affichage  standard via une fonction.</strong> Ce qui permet d'éviter la répétition des lignes de codes similaires.<strong><br />
</strong></p>
<h6><strong><span style="color: #0000ff;">LA SAISIE DE VALEUR AUX PARAMÈTRES.</span><br />
</strong></h6>
<p>Comme nous l'avons évoqué dans l'étude de projet, nous effectuons la <strong>mise en butée de la saisie (+/-1) </strong> en fonction des valeurs voisines respectives à chaque paramètre.</p>
<p>En revanche, lors d'une saisie, contrairement à l'affichage standard qui n'est activé qu'une seule fois;  une <strong>actualisation constante de la valeur est nécessaire.</strong></p>
<h6><strong><span style="color: #0000ff;">LES DONNÉES PROGRAMMES.</span></strong></h6>
<p>Afin de manipuler plus facilement les données et leurs affichages respectifs,  nous utilisons deux tableaux.<br />
Ces tableaux contiennent <strong> les valeurs de paramètres de chaque seuil et leurs noms respectifs.</strong> Ces données sont <strong>organisées en fonction de leur position d'affichage.</strong><br />
C'est-à-dire que la donnée du tableau des valeurs de seuils correspond à la donnée du tableau du nom du seuil.</p>
<p>Par exemple l'index 2 du tableau "nom_parametres[2]" qui contient "MARCHE" correspond à la valeur d'index 2 au tableau "parametres[2]" qui contient 25.(par défaut ).</p>
<p><strong>L'index 0 du tableau "parametres[0]" est utilisé pour le chargement de la valeur signal.</strong></p>
<h6 style="text-align: center;"><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">PRÉSENTATION DU MENU THERMOSTAT.</span></strong></span></h6>
<p><figure id="attachment_2894" aria-describedby="caption-attachment-2894" style="width: 523px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2894" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-image.png" alt="" width="523" height="736" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-image.png 462w, https://plaisirarduino.fr/arduino/wp-content/uploads/2018/02/02-Thermostat-Structure-menu.-image-213x300.png 213w" sizes="auto, (max-width: 523px) 100vw, 523px" /><figcaption id="caption-attachment-2894" class="wp-caption-text">Représentation de l'affichage du menu.</figcaption></figure></p>
<h4></h4>
<p><em>En définitif,  vous avez là un outil d’exploitation compatible avec des projets exploitant un signal analogique avec un écran</em> <a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline; color: #33cccc;">LCD.</span></a><em><br />
</em><em>Vous pouvez à présent <strong>créer votre propre menu et opérer une saisie de données à transmettre à votre système.</strong> Explorez et amusez-vous à l’adapter à vos projets.</em></p>
<p><em><strong>En téléchargeant le sketch «</strong><a href="https://plaisirarduino.fr/telechargement/"><span style="text-decoration: underline; color: #33cccc;"> MENU_THERMOSTAT_LCD</span></a> <strong>» vous découvrirez sans difficultés sa construction ainsi que ses différentes</strong> <a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline; color: #33cccc;">fonctions.</span></a> Ces fonctions ne contiennent aucune particularité que nous n’ayons pas abordé jusque là, voici donc pourquoi nous ne les détaillerons pas.</em></p>
<h2 style="text-align: center;"><strong><span style="color: #0000ff;">MERCI.</span></strong></h2>
<h4 style="text-align: center;"><em><strong><a href="https://plaisirarduino.fr/">Plaisir Arduino.fr</a></strong></em></h4>
<h3><strong> </strong></h3>
<p>Cet article <a href="https://plaisirarduino.fr/thermostat-temperature-arduino/">Thermostat créé avec un LCD et Arduino.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Shield ethernet</title>
		<link>https://plaisirarduino.fr/shield-ethernet/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Mon, 24 Jul 2017 21:18:20 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2780</guid>

					<description><![CDATA[<p>Je vous présente le Shield Ethernet. L'objectif de ce cours va être de présenter la commande de diode rouge, verte et bleu grâce à un navigateur Internet. Présentation du shield ethernet. Le Shield Ethernet utilise la broche 4 pour faire appel à la carte SD et les broches 10/11/12/13 pour &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/shield-ethernet/">Shield ethernet</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Je vous présente le Shield Ethernet.</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/aAD9afA24qY" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>L'objectif de ce cours va être de présenter la commande de diode rouge, verte et bleu grâce à un navigateur Internet.</p>
<h2><span style="text-decoration: underline;">Présentation du shield ethernet.</span></h2>
<p><figure id="attachment_2783" aria-describedby="caption-attachment-2783" style="width: 660px" class="wp-caption alignnone"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/Key-ehernet-mod.001.jpeg"><img loading="lazy" decoding="async" class="size-large wp-image-2783" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/Key-ehernet-mod.001-1024x576.jpeg" alt="Schema du shield ethernet" width="660" height="371" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/Key-ehernet-mod.001-1024x576.jpeg 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/Key-ehernet-mod.001-300x169.jpeg 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/Key-ehernet-mod.001-768x432.jpeg 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/Key-ehernet-mod.001-700x393.jpeg 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/Key-ehernet-mod.001.jpeg 1920w" sizes="auto, (max-width: 660px) 100vw, 660px" /></a><figcaption id="caption-attachment-2783" class="wp-caption-text">Schéma du shield ethernet</figcaption></figure></p>
<p>Le Shield Ethernet utilise la broche 4 pour faire appel à la carte SD et les broches 10/11/12/13 pour l’usage du shield.</p>
<h2><span style="text-decoration: underline;">La Carte SD</span></h2>
<p>La carte SD contient la page HTML que nous avons nommé "pagehtml.txt".  Vous avez le code complet en téléchargement.</p>
<h2><span style="text-decoration: underline;">Partie 1</span></h2>
<p>Le programme se compose de deux parties, la phase d'initialisation qui comprend les librairies, les variables, l’instanciation ethernet et le setup.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/setup.jpg"><img loading="lazy" decoding="async" class="size-full wp-image-2781" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/setup.jpg" alt="Setup ethernet" width="490" height="714" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/setup.jpg 490w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/setup-206x300.jpg 206w" sizes="auto, (max-width: 490px) 100vw, 490px" /></a></p>
<h2><span style="text-decoration: underline;">Partie 2</span></h2>
<p>La deuxième partie comprend la fonction loop qui englobe les quatre fonctions suivantes: MonURL, traitementurl,  ecritureSD et MonHTML.</p>
<p><figure id="attachment_2782" aria-describedby="caption-attachment-2782" style="width: 495px" class="wp-caption alignnone"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/loop.png"><img loading="lazy" decoding="async" class="size-full wp-image-2782" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/loop.png" alt="loop ethernet" width="495" height="280" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/loop.png 495w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/loop-300x170.png 300w" sizes="auto, (max-width: 495px) 100vw, 495px" /></a><figcaption id="caption-attachment-2782" class="wp-caption-text">Contient le loop ethernet</figcaption></figure></p>
<p>&nbsp;</p>
<h3><span style="text-decoration: underline;">MonURL</span></h3>
<p>Le rôle de "monURL", est de créer une chaîne de caractères avec la variable "Mydata".  Afin qu'à chaque connexion d'un client, nous captions ses informations URL.</p>
<p><figure id="attachment_2784" aria-describedby="caption-attachment-2784" style="width: 484px" class="wp-caption aligncenter"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/monurl.png"><img loading="lazy" decoding="async" class="size-full wp-image-2784" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/monurl.png" alt="url shield ethernet " width="484" height="258" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/monurl.png 484w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/monurl-300x160.png 300w" sizes="auto, (max-width: 484px) 100vw, 484px" /></a><figcaption id="caption-attachment-2784" class="wp-caption-text">Récupérer l'url de la carte ethernet</figcaption></figure></p>
<h3><span style="text-decoration: underline;">TraitementURL</span></h3>
<p>Maintenant  que avons l'url de l'utilisateur, nous vérifions que celle-ci contient B2=1, B3=1 etc... . Dans la mesure où il y a une correspondance, on agit sur la broche en question.</p>
<p><figure id="attachment_2785" aria-describedby="caption-attachment-2785" style="width: 459px" class="wp-caption aligncenter"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/traitement-url.png"><img loading="lazy" decoding="async" class="size-full wp-image-2785" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/traitement-url.png" alt="traité url shields ethernet" width="459" height="766" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/traitement-url.png 459w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/traitement-url-180x300.png 180w" sizes="auto, (max-width: 459px) 100vw, 459px" /></a><figcaption id="caption-attachment-2785" class="wp-caption-text">Traite l'url de shields ethernet</figcaption></figure></p>
<h3><span style="text-decoration: underline;">EcritureSD</span></h3>
<p>La fonction ecritureSD, voit son utilité dans le fait de mémoriser l’état des valeurs pour les boutons radio.</p>
<p>A chaque fois où un utilisateur renvoie l’information d'allumer des diodes, cette information doit être mémorisée au niveau de la page html. Le but est donc de définir si la LED rouge est égale à 1, on inscrit  la valeur checked. Car comme vous le savez, les deux boutons radio ne peuvent être actifs en même temps.</p>
<p><figure id="attachment_2787" aria-describedby="caption-attachment-2787" style="width: 401px" class="wp-caption aligncenter"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/ecrituresd.png"><img loading="lazy" decoding="async" class="size-full wp-image-2787" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/ecrituresd.png" alt="écrire dans la carte sd" width="401" height="803" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/ecrituresd.png 401w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/ecrituresd-150x300.png 150w" sizes="auto, (max-width: 401px) 100vw, 401px" /></a><figcaption id="caption-attachment-2787" class="wp-caption-text">Ecrire dans la carte SD</figcaption></figure></p>
<h3><span style="text-decoration: underline;">MonHTML</span></h3>
<p>Restitue le contenu du fichier "pagehtml.txt".</p>
<p><figure id="attachment_2788" aria-describedby="caption-attachment-2788" style="width: 489px" class="wp-caption aligncenter"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/mon-html.png"><img loading="lazy" decoding="async" class="size-full wp-image-2788" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/mon-html.png" alt="permet de restitué la page HTML" width="489" height="183" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/mon-html.png 489w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/07/mon-html-300x112.png 300w" sizes="auto, (max-width: 489px) 100vw, 489px" /></a><figcaption id="caption-attachment-2788" class="wp-caption-text">Restitution de la page HTML</figcaption></figure></p>
<p>Cet article <a href="https://plaisirarduino.fr/shield-ethernet/">Shield ethernet</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Créer un MENU &#8211; LCD avec Arduino.</title>
		<link>https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Fri, 14 Jul 2017 17:50:32 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2445</guid>

					<description><![CDATA[<p>&#160; &#160; La principale fonction d'un afficheur LCD est de renvoyer des informations à l'utilisateur d'un système. Mais il peut également donner la possibilité de saisir des données pour piloter ce système. Prenons l'exemple d'un thermostat d'ambiance. A l'aide d'une commande de boutons, on peut saisir, la consigne de température &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/">Créer un MENU &#8211; LCD avec Arduino.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><figure id="attachment_2266" aria-describedby="caption-attachment-2266" style="width: 507px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2266" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min.png" alt="lcd-min" width="507" height="225" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min.png 1054w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-300x133.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-768x341.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-1024x455.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/12/LCD-min-700x311.png 700w" sizes="auto, (max-width: 507px) 100vw, 507px" /><figcaption id="caption-attachment-2266" class="wp-caption-text">Afficheur LCD.</figcaption></figure></p>
<p>&nbsp;</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/nKuJ7b8vPWc" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>&nbsp;</p>
<p><strong>La principale fonction d'un afficheur <a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline;"><em><span style="color: #00ccff; text-decoration: underline;">LCD</span></em></span> </a>est de renvoyer des informations à l'utilisateur d'un système.</strong> Mais il peut également<strong> donner la possibilité de saisir des données pour piloter ce système</strong>. Prenons l'exemple d'un thermostat d'ambiance. A l'aide d'une commande de boutons, on peut saisir, la consigne de température voulue dans une pièce.</p>
<p>L’intérêt de ce projet réside dans le fait qu'<strong>il n'est plus utile d'accéder au programme source pour modifier une valeur et de téléverser pour agir sur le système</strong>. Ainsi le pilotage du système est rendu, de toute évidence,  <strong>accessible à des utilisateurs lambdas.</strong></p>
<p>Le but de notre projet va être, donc au travers d'un programme exemple que nous vous proposons, de <strong>faire varier l'intensité lumineuse de plusieurs LED (2) via un afficheur <a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline;"><em><span style="color: #00ccff; text-decoration: underline;">LCD</span></em></span></a></strong>  et<strong> un clavier de boutons PLUS (+), MOINS (-), ENTRÉE. </strong></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">1 - Le matériel.</span></strong></span></h4>
<ul>
<li>Une carte Arduino.</li>
<li>Un afficheur <strong><a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline;"><em><span style="color: #00ccff; text-decoration: underline;">LCD</span></em></span> </a></strong>. 16X2.</li>
<li>deux (2) LED Rouge et Vert.</li>
<li>Trois résistances de charge de 220 ohm.</li>
<li>Trois Boutons poussoirs.</li>
<li>Deux potentiomètres de 10k ohm.</li>
</ul>
<h4> <strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">2 - Les branchements.</span></span></strong></h4>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2560" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/01-Schéma-cablage.png" alt="01 - Schéma cablage" width="709" height="464" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/01-Schéma-cablage.png 709w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/01-Schéma-cablage-300x196.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/01-Schéma-cablage-700x458.png 700w" sizes="auto, (max-width: 709px) 100vw, 709px" /></p>
<h3 style="text-align: left;"><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">Étude du projet.</span></strong></span></h3>
<p><strong>D'abord nous avons trois boutons poussoirs. PLUS (+), MOINS (-) et ENTRÉE</strong>.<br />
Évidemment,<strong> les boutons poussoirs serviront à naviguer</strong> <strong>dans un menu et</strong> c'est aussi  grâce à eux que nous pourrons<strong> saisir une donnée puis l'affecter à l'une des LED</strong>.<br />
<strong>La <em><a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">fonction</span></span></a> <span style="text-decoration: underline;">clavier() </span></em><em>contrôle</em> <em><span style="text-decoration: underline; color: #33cccc;"><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/les-entrees-sortie-de-la-platine-arduino/">l'état des boutons.</a></span></em></strong> et renvoie les actions de chaque bouton à sa <strong>variable de retour nommé "action".</strong></p>
<p><strong>Pour affecter une donnée à l'une des LED, il faut avoir la possibilité de les sélectionner. </strong>Alors il va de ce fait falloir<strong> créer un <span style="text-decoration: underline;">menu de sélection.</span></strong><br />
<strong>La <em><a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">fonction</span></span></a></em> <span style="text-decoration: underline;"><em>menu()</em></span> activera l’affichage de chaque fenêtre en fonction des actions sur les boutons</strong> et par conséquent elle aura <strong>en paramètre la variable de retour</strong> de la <strong><em><a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">fonction</span></span></a></em> clavier().</strong></p>
<p>En clair, <strong>l<span style="text-decoration: underline;">e plus gros du travail réside dans la conception du menu</span>.</strong> Car gérer un afficheur <span style="color: #33cccc;"><strong><span style="text-decoration: underline;"><em><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/">LCD</a></em></span> </strong></span> et deux LED nous savons le faire.<br />
<em><strong>Consultez au besoin le tuto <span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;"><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/">l'afficheur LCD, comment l'exploiter ?</a></span></span>. </strong></em></p>
<p>Mais avant de passer au menu, il faut tout d'abord <strong>s'intéresser à deux points</strong> essentiels concernant <strong>la donnée. </strong><strong>L'unité et s</strong><strong>a grandeur d'exploitation.</strong></p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">1 L'unité de la donnée.</span></strong></h4>
<p>Effectivement il y a plusieurs façons de piloter un système.<br />
Prenons pour exemple des systèmes qui nécessitent <strong>l'utilisation de données en degrés Celsius, en degrés angulaire, en mètres, ou autres</strong>.</p>
<p>En partant de notre exemple, <strong>le pourcentage % est </strong><strong>l</strong><strong>'unité la plus parlante et la plus simple à exploiter</strong> pour un utilisateur aux commandes d'un système de variations de puissances. Cette unité est donc préférable<strong> si plusieurs utilisateurs ont accès au système.</strong></p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">2 Grandeur de la donnée.</span></strong></h4>
<p>En fonction du système, d'autre <strong>projets peuvent utiliser </strong>des valeurs angulaires allant jusqu’à 180° ou 360°  (servomoteur) , une température ou une distance précise etc... .<br />
Certains projets, en fonction de leurs équipements et de leurs précisions auront besoin d'une<strong> valeur de données bien plus grande</strong> comme 450mm ou plus.</p>
<p>Il faut souligner qu’<strong>une valeur plus grande que la grandeur de la donnée peut compromettre le bon fonctionnement de vos projets.</strong><br />
A l'inverse, <strong>une valeur négative ou trop petite peut également être source de problèmes.<br />
</strong>En effet, pour assurer un bon pilotage et sécuriser votre système <strong><span style="text-decoration: underline;"> il ne faut pas dépasser la grandeur et la valeur minimale </span>imposées par le système.<br />
</strong></p>
<p>Par conséquent, il faut<strong> limiter la valeur de saisie entre ces deux bornes mini et maxi.</strong><br />
Ainsi une personne non averti ne pourra <strong>pas saisir une donnée aberrante</strong> pour le système.</p>
<p>Dans notre cas, pour piloter les LED nous utilisons une <strong>modulation de puissance allant de</strong> <strong>0</strong> <strong>à 255 points</strong>.<strong> La grandeur maximale pour notre donnée est donc de 255 et la valeur minimale de 0. </strong>Au delà de ces valeurs le système réagira de façon non désiré ou aléatoire.<strong><br />
</strong></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">3.La limitation de donnée.</span></strong></span></h4>
<p>Nous avons <strong>différencié deux types de données:</strong></p>
<p><strong> </strong> "<strong>Numérique</strong>" pour des nombres et  "<strong>Pourcentage</strong>" pour une valeur en pourcentage.</p>
<h6><strong><span style="text-decoration: underline; color: #0000ff;">Numérique.</span></strong></h6>
<p><strong>Pour limiter la saisie d'une valeur numérique chaque chiffre est limité en fonction de la valeur maximum de la donnée  exploitable.</strong><br />
Pour notre exemple, nous<strong> limiterons la saisie à 255 (PWM). Ce qui revient à contrôler</strong>, si le chiffre de <strong>la centaine <span style="text-decoration: underline;">est égale à 2, </span>dans ce cas la dizaine</strong> <span style="text-decoration: underline;">aura pour valeur maximum 5</span> et de même <strong>pour la dizaine, si elle est égale à 5,</strong> <strong>l'unité</strong> <span style="text-decoration: underline;">aura pour valeur maximum 5</span>.</p>
<h6><strong><span style="text-decoration: underline; color: #0000ff;">La donnée en pourcentage.</span></strong></h6>
<p>Étant donné que la valeur de saisie sera<span style="color: #33cccc;"><strong><span style="text-decoration: underline;"><em><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/signaux-dentrees-et-sortie-analogique/"> préalablement conditionné</a><span style="color: #33cccc; text-decoration: underline;">e</span></em></span>, </strong></span>dans le programme source, <strong>entre 0% et 100%</strong> <strong>l'utilisation d'une valeur erronée n'est plus possible.</strong></p>
<p>Il est à noter  cependant, que <strong>deux données différentes seront utiles</strong>.<br />
En effet dans notre cas, <strong>le pilotage à besoin d'une donnée différent</strong><strong>e</strong> de celle de<strong> l'affichage.<br />
</strong>Il faudra donc<strong> opérer une mise à l’échelle vers une valeur adéquate de pilotage.<br />
</strong>Soit de 0 à 255 PWM.<br />
Cela implique<strong> deux variables différentes. L'une pour l'activation de l'affichage et l'autre pour le pilotage.</strong></p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">La saisie de la donnée.</span></strong></h4>
<p>En bref, si on laisse la possibilité d'une saisie non limitée, nous avons<strong> trois modes de saisie.</strong></p>
<ul>
<li><strong> Non limité. (Paramètre 0).</strong></li>
<li><strong>Valeur maximum. (Paramètre 1).<br />
</strong></li>
<li><strong>Pourcentage. (Paramètre 2).</strong></li>
</ul>
<p><strong>Incrémenter une donnée</strong> pour des projets nécessitant <strong>jusqu'à 360° ou 800 mm</strong> serait évidemment <strong>un peu long</strong>. Par conséquent, <strong>il est judicieux d'agir sur chaque chiffre</strong> du nombre  composant la donnée.</p>
<p>De toute évidence, en saisissant chaque <span style="text-decoration: underline;">chiffre,</span> <strong>la donnée ne pourra pas être supérieure à neuf (9) ou inférieure à zéro (0).</strong> Elle <strong>évoluera donc entre ces deux bornes, </strong>ce qui nous permet néanmoins, de saisir des valeurs allant de 0 à 9999 au besoin.<strong><br />
</strong></p>
<p>La <span style="text-decoration: underline;"> <strong><em><a href="https://plaisirarduino.fr/les-fonctions/"><span style="color: #33cccc; text-decoration: underline;">fonction</span></a></em></strong> <strong>saisie (mode,X,Y,Z)</strong></span> est là pour contrôler la saisie de la donnée<em>.<br />
</em>Elle a<strong> comme paramètre la variable "mode" pour la sélection du mode de saisie et pour chaque chiffre X, Y et Z,  la valeur maximum</strong> de la donnée.<br />
<span style="text-decoration: underline;">En fonction du mode de saisie choisie,</span> elle<strong> adapte la grandeur de saisie pour chaque chiffre de la donnée. Elle met à l’échelle ou recompose la donnée saisie puis la charge pour l'affichage et renvoie la valeur de pilotage.</strong></p>
<ul>
<li><span style="text-decoration: underline;">En </span><strong><span style="text-decoration: underline;">mode pourcentage</span>:<br />
</strong>La saisie est immédiate. Pour apporter <strong>plus de souplesse à la saisie, </strong> la <strong>correction de donnée</strong> est réalisée <strong>depuis la valeur actuelle</strong>.</li>
<li><span style="text-decoration: underline;"><strong>En mode numérique:<br />
</strong></span>Par contre, la saisie se fait au troisième et dernier chiffre saisi. L<strong>a donnée est ensuite chargée dans une variable</strong> prévue pour le <strong>pilotage et l'affichage de la sélection.</strong> Dans notre cas, c'est l'unité du nombre 255. La correction de données reprendra depuis zéro.</li>
</ul>
<p>Le programme sera donc exploitable<strong> en fonction du mode de saisie choisi et de la grandeur de la donnée.</strong></p>
<p><span style="text-decoration: underline;"><strong>Note </strong></span>: libre à vous de <strong>modifier la valeur maxi</strong> <strong>de la donnée et l'affichage de l'unité</strong> dans le menu.</p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">3.4 Le nombre d'organes à piloter.<br />
</span></strong></span></h4>
<p><strong>Le nombre d'organes à piloter définira le nombre de fenêtre de sélection à créer dans votre menu.</strong></p>
<p>Ici,  nous avons seulement deux LED à piloter.<br />
Vous pouvez bien-sûr<strong> en fonction des capacités de votre carte et des besoins de votre projet,  ajouter autant de fenêtre de sélection que vous le souhaitez.</strong> Afin de compléter l'exemple nous en avons crée trois de plus.</p>
<p>Nous pouvons, à présent, <strong>passer au montage de notre menu.</strong></p>
<h3><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">4 Le menu.</span></span></strong></h3>
<p>Avant de se lancer dans la programmation d'un menu, il faut avant tout<strong> avoir un repère de travail. </strong>Ce qui veut dire, <strong>penser</strong> <strong>à la structure</strong> <strong>et établir</strong> <strong>un schéma représentatif du menu.</strong></p>
<p>Voici un schéma représentatif de la structure du <strong>menu avec les actions utiles</strong> pour passer d'une fenêtre à l'autre.</p>
<p><img loading="lazy" decoding="async" class="wp-image-2690 size-full aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/02-LCD-projet-structure-menu-e1497268820313.png" alt="02 - LCD projet structure menu" width="479" height="663" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/02-LCD-projet-structure-menu-e1497268820313.png 479w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/02-LCD-projet-structure-menu-e1497268820313-217x300.png 217w" sizes="auto, (max-width: 479px) 100vw, 479px" /></p>
<p>A première vue, <strong>une action sur les boutons implique une sélection de fenêtres</strong>. A chaque fenêtre est <strong>attribuée un numéro. Ces numéros</strong> permettent<strong> d'activer l'affichage </strong>et de  <strong>verrouiller une position dans le menu</strong>.<br />
Il y a deux<strong> "sous fenêtres". La onze (11) permet de verrouiller l'étape de la sélection des LED et la douze (12)</strong><strong> permet de verrouiller l'étape de paramétrage.</strong></p>
<p><strong>La fenêtre de sélection "RAZ" </strong>est en fait, l’accès à <strong>un sous-menu</strong> dans lequel, il nous est possible de <strong>mettre à zéro toutes les données</strong> par la<strong> sélection du choix OUI (O) ou NON (N)</strong>. Voici donc la structure de ce sous-menu "RAZ".</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-2674 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/03-LCD-projet-structure-sous-menu-RAZ-e1497352483110.png" alt="03 - LCD projet structure sous menu RAZ" width="553" height="658" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/03-LCD-projet-structure-sous-menu-RAZ-e1497352483110.png 553w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/03-LCD-projet-structure-sous-menu-RAZ-e1497352483110-252x300.png 252w" sizes="auto, (max-width: 553px) 100vw, 553px" /></p>
<h4><strong><span style="text-decoration: underline;"><span style="color: #0000ff; text-decoration: underline;">3.2 Les fenêtres.<br />
</span></span></strong></h4>
<p>Pour créer le menu, il faut utiliser la <strong><em><a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;"> fonction</span></span></a></em> menu().<br />
</strong>Elle permet de générer l'affichage des fenêtres<strong>.</strong><br />
L'activation des affichages des fenêtres <strong>se fait en fonction des actions sur les boutons et la position actuelle verrouillée dans le menu</strong>.<br />
Pour cette raison, la<strong> <em><a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">fonction</span></span></a></em></strong> à<strong> pour paramètre la variable de retour "action" de la <em><a href="https://plaisirarduino.fr/les-fonctions/"><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">fonction</span></span></a></em></strong> <strong>clavier().</strong></p>
<p>Ci-dessous, l'illustration du menu.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-2711 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/04-LCD-projet-structure-image-e1497468783709.png" alt="04 - LCD projet structure image" width="457" height="658" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/04-LCD-projet-structure-image-e1497468783709.png 457w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/06/04-LCD-projet-structure-image-e1497468783709-208x300.png 208w" sizes="auto, (max-width: 457px) 100vw, 457px" /></p>
<p>Voyons maintenant<strong> comment va se dérouler la validation de la donnée.</strong></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #0000ff; text-decoration: underline;">4 Validation de données.</span></strong></span></h4>
<p>Durant la saisie en cours,<strong> l'</strong><strong>actualisation de la valeur </strong>se fait <strong>dans la boucle principale </strong>(loop).<strong><br />
</strong></p>
<p>Une fois <strong>la sélection validée,</strong> la fenêtre de <strong>paramétrage est active,</strong> on peut alors<strong> saisir une valeur, puis la valider</strong><strong>.</strong> Cette valeur est ensuite <strong>affectée à une variable</strong> prévue au <span style="text-decoration: underline;"><strong>pilotage</strong></span> de la sélection et à <span style="text-decoration: underline;"><strong>l'affichage</strong></span>.</p>
<p>Pour finir, l<strong>'affichage retourne à la fenêtre de lecture. </strong>Dans notre exemple, celle de la LED une (1) et  deux (2).</p>
<h4><strong><span style="text-decoration: underline; color: #0000ff;">C'est ainsi que le programme LCD MENU se termine !</span></strong></h4>
<p>Partant de cet exemple, vous<strong> pouvez piloter d'autres systèmes que des LED</strong>. Comme des systèmes  équipés de<strong> sondes de température, de servomoteurs ou bien de moteurs à courant continu et bien d'autres.</strong></p>
<h3 style="text-align: center;"><strong><span style="color: #0000ff;">FIN.</span></strong></h3>
<p><em>Vous avez là un premier outil d'exploitation d'écran <strong><a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline;"><span style="color: #00ccff; text-decoration: underline;">LCD</span></span></a></strong>. Vous pouvez à présent <strong>créer votre propre menu et opérer une saisie de données à transmettre à votre système.</strong> Explorez et amusez vous à l'adapter à vos projets.</em></p>
<p><strong><em>En téléchargeant le sketch "</em></strong><a href="https://plaisirarduino.fr/telechargement/"><span style="text-decoration: underline;"><em><span style="color: #33cccc; text-decoration: underline;">LCD_MENU ARDUINO</span></em></span></a><strong><em>" vous découvrirez sans difficulté la construction des différentes</em></strong> <span style="text-decoration: underline;"><em><span style="color: #33cccc; text-decoration: underline;"><a style="color: #33cccc; text-decoration: underline;" href="https://plaisirarduino.fr/les-fonctions/">fonction</a>s</span></em></span><strong><em><span style="color: #33cccc;">. </span></em></strong><em>Ces fonctions ne contiennent aucune particularité que nous n'ayons pas abordé jusque là, voici donc pourquoi nous ne les détaillerons pas.<br />
</em></p>
<p><em><span style="text-decoration: underline;"><strong>Remarque:</strong></span> Il est possible d'utiliser des bibliothèques que vous trouverez sur le net . Mais, ce projet a pour but de faire comprendre et maîtriser les différentes méthodes de base de la bibliothèque &lt;&lt;<strong><span style="color: #ff9900;">LiquidCrystal</span>.h</strong>&gt;&gt; et l'exploitation d'un écran <strong><a href="https://plaisirarduino.fr/afficheur-lcd-comment-lexploiter/"><span style="text-decoration: underline;"><span style="color: #00ccff; text-decoration: underline;">LCD</span></span></a></strong>.<br />
Un tableau string aurait également pu être utilisé pour générer les affichages. Mais pour plus de lisibilité, nous n'avons pas utilisé cette méthode.<br />
</em></p>
<p><em>Nous vous invitons à nous faire part de vos commentaires et propositions.<br />
</em></p>
<h2 style="text-align: center;"><strong><span style="color: #0000ff;">MERCI.</span></strong></h2>
<h4 style="text-align: center;"><span style="text-decoration: underline;"><em><strong><a href="https://plaisirarduino.fr/"><span style="color: #0000ff; text-decoration: underline;">Plaisir Arduino.fr</span></a></strong></em></span></h4>
<h3 style="text-align: center;"><strong><span style="color: #0000ff;"> </span></strong></h3>
<p>Cet article <a href="https://plaisirarduino.fr/cree-un-menu-sur-lcd-avec-arduino/">Créer un MENU &#8211; LCD avec Arduino.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Processing et port série</title>
		<link>https://plaisirarduino.fr/processing-et-arduino/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Mon, 08 May 2017 17:02:58 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=2591</guid>

					<description><![CDATA[<p>Communiquer avec le port série Pour permettre l'interaction entre processing et arduino, il est nécessaire de connaître le port de communication. Pour l'arduino, il faut brancher la platine et repérer le port actif pour le téléversement. Pour processing, il faut afficher la liste des ports actifs sur l'ordinateur et affecter &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/processing-et-arduino/">Processing et port série</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><iframe loading="lazy" src="https://www.youtube.com/embed/S3HpkjcoqCM" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<h2 style="text-align: left;"><span style="text-decoration: underline;">Communiquer avec le port série</span></h2>
<p>Pour permettre l'interaction entre processing et arduino, il est nécessaire de connaître le port de communication.</p>
<p>Pour l'arduino, il faut brancher la platine et repérer le port actif pour le téléversement.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing.jpg"><img loading="lazy" decoding="async" class="size-full wp-image-2594 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing.jpg" alt="Port actif arduino" width="680" height="603" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing.jpg 680w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-300x266.jpg 300w" sizes="auto, (max-width: 680px) 100vw, 680px" /></a></p>
<p>Pour processing, il faut afficher la liste des ports actifs sur l'ordinateur et affecter celui qui correspond à l'arduino.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2593 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/découverte-du-port-com.jpg" alt="Port com processing" width="707" height="604" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/découverte-du-port-com.jpg 707w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/découverte-du-port-com-300x256.jpg 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/découverte-du-port-com-700x598.jpg 700w" sizes="auto, (max-width: 707px) 100vw, 707px" /></p>
<p>Dans ce cas, c'est le port "COM 6" qui prend pour valeur 0.</p>
<h2><span style="text-decoration: underline;">Envoyer une donnée par l'arduino </span></h2>
<p>Deux instructions sont indispensables:</p>
<p style="text-align: center;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/setup.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2597" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/setup.png" alt="setup" width="500" height="600" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/setup.png 500w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/setup-250x300.png 250w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a></p>
<p>&nbsp;</p>
<p>Avec cette base le programme arduino est opérationnel, toutefois la donnée envoyée est toujours la même.</p>
<p>&nbsp;</p>
<h2><span style="text-decoration: underline;">Envoyer une donnée par Processing</span></h2>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-envoi-1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2599" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-envoi-1.png" alt="envoie une donnée par processing" width="700" height="600" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-envoi-1.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-envoi-1-300x257.png 300w" sizes="auto, (max-width: 700px) 100vw, 700px" /></a></p>
<p>Voilà, la donnée 1 est envoyée par le port série à condition de bien mettre une valeur adaptée pour soi dans l'instruction "Serial.list[ ]". Dans mon cas,  c'est "Serial.list[0]".</p>
<h2><span style="text-decoration: underline;">Traiter la donnée avec Arduino</span></h2>
<p style="text-align: center;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/arduino-reception-1.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2602" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/arduino-reception-1.png" alt="arduino reception" width="500" height="600" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/arduino-reception-1.png 500w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/arduino-reception-1-250x300.png 250w" sizes="auto, (max-width: 500px) 100vw, 500px" /></a></p>
<p>Les données séries sont stockées dans la variable "val". Il suffit de réceptionner la donnée val et de la traiter.</p>
<p>&nbsp;</p>
<h2><span style="text-decoration: underline;">Traiter la donnée avec Processing</span></h2>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-2614" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-1024x546.png" alt="traitement données processing" width="660" height="352" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-1024x546.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-300x160.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-768x409.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing-700x373.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2017/05/processing.png 1366w" sizes="auto, (max-width: 660px) 100vw, 660px" /></a></p>
<p>La variable "sb" contient la chaîne de caractère à exploiter dans le programme. Dans ce cas précis, j'ai choisi de l'afficher dans un fond blanc.</p>
<p style="text-align: center;"><strong><span style="color: #000080;">FIN</span></strong></p>
<p>Si vous n'avez pas encore vu la vidéo de processing, je vous invite à la visionner. De plus, le code complet se trouve en téléchargement avec d'autres exemples .</p>
<p>Cet article <a href="https://plaisirarduino.fr/processing-et-arduino/">Processing et port série</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MAX 7219</title>
		<link>https://plaisirarduino.fr/max-7219/</link>
		
		<dc:creator><![CDATA[Eugénio DA-LUZ]]></dc:creator>
		<pubDate>Fri, 30 Dec 2016 19:06:53 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=1940</guid>

					<description><![CDATA[<p>Comprendre le MAX 7219 Le MAX 7219 est un circuit intégré permettant le contrôle d'afficheur sept segments jusqu'à huit digits et de matrices à leds. L’aspect le plus important du MAX 7219 est de pouvoir être contrôlé par un bus compatible SPI, QSPI et MICROWIRE. N'utilisant que trois fils pour &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/max-7219/">MAX 7219</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2 style="text-align: center;"><span style="text-decoration: underline;"><span style="color: #3366ff; text-decoration: underline;"><strong>Comprendre le MAX 7219</strong></span></span></h2>
<p><span style="color: #000000;">Le MAX 7219 est <strong>un circuit intégré permettant le contrôle d'afficheur</strong> sept segments <strong>jusqu'à huit digits</strong> et de matrices à leds.</span></p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/mTJcrdIzBfs" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p><span style="color: #000000;">L’aspect le plus important du <strong>MAX 7219</strong> est de pouvoir être <strong>contrôlé par un bus compatible SPI, QSPI et<u> </u>MICROWIRE</strong>. N'utilisant que trois fils pour la communication, il permet ainsi de <strong>libérer des sorties de la carte Arduino</strong> pour d'autres usages.</span></p>
<p>Tout d’abord, je commencerai par <strong>détailler le fonctionnement  du MAX 7219</strong>  <strong>à l’aide du "datasheet".</strong> Ensuite, je vous proposerai la librairie <strong>« <span style="color: #ffcc00;"><span style="color: #ff6600;">SPI</span> </span>.h »</strong> et <strong>« <span style="color: #ff6600;">LedControl</span>.h » </strong> pour l'exploiter dans vos programmes.</p>
<h3 style="text-align: center;"><span style="text-decoration: underline;"><strong>Exploiter le DATASHEET.</strong></span></h3>
<p><span style="color: #000000;">Le "<strong><a style="color: #000000;" href="https://datasheets.maximintegrated.com/en/ds/MAX7219-MAX7221.pdf">datasheet</a>"</strong> est un document (pdf) fourni par le fabriquant du composant dans lequel nous y trouverons <strong>toutes les explications nous permettant son exploitation</strong>. Nous nous appuierons donc sur ce document et <strong>les tableaux qui y sont représentés</strong>. Vous verrez par conséquent, comment lire un "datasheet".</span></p>
<h4><strong><span style="text-decoration: underline;">Le format de transmission des données série du MAX 7219</span></strong></h4>
<p>En premier lieu le <strong>MAX 7219 utilise un format de transmission sur 16Bits</strong>  de <strong>D0 à D15</strong> représenté par le tableau ci-dessous.<span style="color: #ff6600;"><span style="color: #0000ff;"><br />
</span></span></p>
<div class="page" title="Page 6">
<div class="section">
<div class="layoutArea">
<div class="column">
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/format-de-donnée-2.png"><img loading="lazy" decoding="async" class="wp-image-1965 size-large aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/format-de-donnée-2-1024x71.png" width="660" height="46" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/format-de-donnée-2-1024x71.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/format-de-donnée-2-300x21.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/format-de-donnée-2-768x54.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/format-de-donnée-2-700x49.png 700w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/format-de-donnée-2.png 1233w" sizes="auto, (max-width: 660px) 100vw, 660px" /></a><span style="color: #000000;">Vous y observerez de gauche à droite:</span></p>
</div>
</div>
</div>
</div>
<ul>
<li><span style="color: #000000;">Les huit premiers bit de <strong>D0 à D7</strong> pour des données (data). <strong>D0</strong> étant le bit, dit de poids </span><span style="color: #000000;">faible (<strong>LSB</strong>) et <strong>D7</strong> le bit de poids fort (<strong>MSB</strong>).</span></li>
<li><span style="color: #000000;">Les quatre prochains bits de<strong> D8 à D11 </strong>sont utilisés pour les adresses (registre).</span></li>
<li><span style="color: #000000;">Les quatre bits de<strong> D12 à D15</strong> restent par contre inexploités.</span></li>
</ul>
<p><span style="color: #000000;">Ainsi, le <strong>MAX 7219</strong> utilise <strong>14 registres de 0xX0 à 0xXF représentés dans le tableau (N°)</strong> ci- dessous. Le registre <strong>OxXD</strong> <em>n’étant </em>pas exploité.</span></p>
<h3 style="text-align: left;"><span style="text-decoration: underline;"><strong>Tableau des adresses de registre</strong></span></h3>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/tableau-de-registre-1-2.png"><img loading="lazy" decoding="async" class="wp-image-1964 size-full aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/tableau-de-registre-1-2.png" width="589" height="669" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/tableau-de-registre-1-2.png 589w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/tableau-de-registre-1-2-264x300.png 264w" sizes="auto, (max-width: 589px) 100vw, 589px" /></a><span style="color: #000000;">Commençons par examiner les registres «<strong> «DIGIT0 » à « DIGIT7 »</strong> représentés en hexadécimale de <strong>0xX1 à 0xX8</strong>. En fait, ces huit registres <strong>permettent</strong> <strong>d’affecter</strong> <strong>une donnée à</strong> <strong><span style="text-decoration: underline;">chaque</span> Digit. Vous observerez qu'il y a aussi des fonctions spécifiques.</strong></span></p>
<h2 style="text-align: center;"><strong><span style="text-decoration: underline;">Les fonctions du MAX 7219.</span></strong></h2>
<h4><span style="text-decoration: underline;"><strong>1) La fonction "decode mode" - "0xx9".</strong></span></h4>
<p><span style="color: #ff6600;"><span style="color: #000000;">Commençons par  le registre<strong> "decode Mode"</strong> <strong>"0xX9", </strong></span><span style="color: #0000ff;"><span style="color: #000000;"><strong>il permet d'activer le code</strong> "<strong>B</strong> <strong>font</strong>". Le code B s'active sur les digits de votre choix en y inscrivant un bit à 1. Le tableau 4 ci-dessous, nous donne quelques exemples d'activation du  "decode mode". </span><br />
</span></span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2096 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/002-MAX7219.png" alt="002-max7219" width="857" height="228" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/002-MAX7219.png 857w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/002-MAX7219-300x80.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/002-MAX7219-768x204.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/002-MAX7219-700x186.png 700w" sizes="auto, (max-width: 857px) 100vw, 857px" /></p>
<p><span style="color: #000000;">Il suffit de prendre pour exemple la deuxième ligne du tableau pour comprendre comment activer le code B. L'activation à 1 du digit 0 de l'afficheur par la donnée <strong>0x01</strong>(héxa.) implique que seul le digit 0 sera en code B. Les sept autres digits à 0 de l'affichage ne seront pas gérés par le code B.</span></p>
<p><span style="color: #000000;">Par exemple, si l'on souhaite activer le code B seulement au digit quatre (4), cela nous donnera en binaire et respectivement au tableau ceci: 0001 0000 soit en hexadécimale 0x10. Nous avons donc la donnée utile à renseigner au registre "decode mode" "<strong>0xX9</strong>" pour activer le code B au digit 4 "D4". Bien-sûr, vous remarquerez que cette donnée est la suivante après 0x0f.</span></p>
<h5><span style="color: #000000;"><strong><span style="text-decoration: underline;">Qu'est-ce que le "code B" ?</span></strong></span></h5>
<p>Pour comprendre <strong>le code B,</strong> il faut tout d’abord savoir que c'est <strong>une fonction interne au MAX 7219 </strong>qui décode les données d'affichage selon un tableau prédéfini et représenté ci-dessous.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2094 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/001-MAX7219.png" alt="001-max7219" width="854" height="501" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/001-MAX7219.png 854w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/001-MAX7219-300x176.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/001-MAX7219-768x451.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/001-MAX7219-700x411.png 700w" sizes="auto, (max-width: 854px) 100vw, 854px" /></p>
<p><span style="color: #000000;">Plus précisément ce tableau nous montre comment, en fonction du registre appelé correspondant à un caractère , le MAX 7219 va activer les segments pour afficher les chiffres et caractères inscrits dans le tableau du code B .</span></p>
<p><span style="color: #000000;">Ainsi, chaque donnée d'affichage d'un caractère présent dans ce tableau sera systématiquement décodé, si le mode code B est activé au digit piloté pour l'affichage de la donnée qu'il reçoit .</span></p>
<p style="text-align: left;"><span style="color: #000000;"><a style="color: #000000;" href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/quatre.png"><img loading="lazy" decoding="async" class="size-full wp-image-2085 alignright" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/quatre.png" alt="chiffre quatre sept segment" width="117" height="183" /></a>Prenons le cas de l'envoi de la  donnée du chiffre quatre (4) "0x04" à afficher au <strong>digit 0 </strong>et activé en "<strong>decode</strong> <strong>Mode</strong>", tous les segments correspondant au registre du chiffre 4 seront activés pour afficher 4. Soit les segments B,C,F et G sur l'afficheur sept segments. Comme indiqué par le tableau 5.</span></p>
<p><span style="color: #000000;">A l'inverse, si "décode mode" n'est pas activé, seul le segment E de l'afficheur va s'allumer. Pourquoi ? Car la valeur "<strong>0x04</strong>" <strong>vaut en binaire 0000</strong> <strong>0100</strong> et que dans ce cas le MAX 7219 décode l'affichage suivant un mode binaire. On trouve ici un exemple important, à savoir que sans "decode mode" chaque segment est piloté individuellement en fonction du bit à 1. Le tableau 6 ci dessous représente la correspondance des huit segments via les huit bits.</span></p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/convertion.png"><img loading="lazy" decoding="async" class="size-full wp-image-2084 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/convertion.png" alt="max 7219 sans décode mode" width="407" height="343" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/convertion.png 407w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/convertion-300x253.png 300w" sizes="auto, (max-width: 407px) 100vw, 407px" /></a>En fait "<strong>decode mode</strong>" <strong>nous simplifie la tâche</strong> de façon à ne pas traiter en binaire l'affichage d'un chiffre. Ce qui impliquerait l'envoi de huit données de huit bits les unes après les autres pour piloter chaque segment. Il faut reconnaître que cela serait fastidieux.<span style="color: #0000ff;"><br />
</span></p>
<p><span style="color: #000000;">En conclusion,  il est possible d'afficher des symboles ou caractères comme le moins "- "ou un "C" en désactivant "decode mode" au digit de notre choix.</span><span style="color: #0000ff;"><br />
</span></p>
<h4><span style="text-decoration: underline;"><strong><span style="color: #000000; text-decoration: underline;">2) LA FONCTION "intensity" - "0xXA"</span><br />
</strong></span></h4>
<p>Abordons à présent le registre "<strong>intensity</strong>" "<strong>0xXA</strong>". Il permet de <strong>définir l'intensité lumineuse de l'afficheur</strong>. En fonction du tableau  7, ci-dessous, il peut avoir seize (16) données, sur quatre (4) bits, possible de "0xX0" à "0xXF" (hexa.) allant du plus faible éclairage au plus fort.<span style="color: #ff6600;"><br />
</span></p>
<h4><img loading="lazy" decoding="async" class="size-full wp-image-2112 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/003-MAX7219.png" alt="003-max7219" width="857" height="484" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/003-MAX7219.png 857w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/003-MAX7219-300x169.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/003-MAX7219-768x434.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/003-MAX7219-700x395.png 700w" sizes="auto, (max-width: 857px) 100vw, 857px" /></h4>
<h4><span style="text-decoration: underline; color: #000000;"><strong>LA FONCTION "scan limit" - "OxXB"</strong></span></h4>
<p>Passons ensuite au registre "<strong>scan limit</strong>" "<strong>OxXB</strong>" Il a pour rôle de <strong>définir le nombre de digits que l'on souhaite exploiter de digit0 à digit8</strong>. En fonction du tableau 8 ci-dessous, il peut prendre huit (8) données sur trois (3) bits allant de 0xX0 à 0xX7 sélectionnant ainsi les digits de droite à gauche.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2114" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/004-MAX7219.png" alt="004-max7219" width="850" height="283" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/004-MAX7219.png 850w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/004-MAX7219-300x100.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/004-MAX7219-768x256.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/004-MAX7219-700x233.png 700w" sizes="auto, (max-width: 850px) 100vw, 850px" /></p>
<p>Il faut souligner que <strong>le digit 0 sera toujours le minimum configurable</strong> et à juste titre, car il ne serait pas logique d'utiliser cette fonction pour une extinction générale alors qu'une fonction de ce type existe.</p>
<h4><span style="color: #000000;"><strong><span style="text-decoration: underline;">3) LA FONCTION "shutdown" - "OxXC".</span></strong></span></h4>
<p>Le registre "<strong>shutdown</strong>" <strong>"OxXC".</strong>  Il permet d'<strong>allumer ou d’éteindre l'afficheur.</strong> Suivant le tableau trois (3) ci-dessous? il ne prend que deux (2) données sur un (1) bit soit "0xX0" ou "0xX1". A zéro (0) "0xX0" l'afficheur est éteint.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2117 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/005-MAX7219.png" alt="005-max7219" width="812" height="190" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/005-MAX7219.png 812w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/005-MAX7219-300x70.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/005-MAX7219-768x180.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/005-MAX7219-700x164.png 700w" sizes="auto, (max-width: 812px) 100vw, 812px" /></p>
<h4><span style="text-decoration: underline;"><strong>4) LA FONCTION "Display test" - "0xXF"</strong></span></h4>
<p>Et enfin, le registre <strong>"Display test" "0xXF",</strong> il permet de tester l'afficheur en activant toutes les leds de l'afficheur. En fonction du tableau dix (10)  comme "<strong>shutdown</strong>", il ne prend que deux (2) données sur un (1) bit soit "<strong>0xX0"</strong> ou <strong>"0xX1"</strong>. A un (1) le mode test de l'afficheur est activé.<span style="color: #ff6600;"><br />
</span></p>
<p><img loading="lazy" decoding="async" class=" wp-image-2119 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/006-MAX7219.png" alt="006-max7219" width="409" height="193" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/006-MAX7219.png 824w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/006-MAX7219-300x141.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/006-MAX7219-768x362.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/006-MAX7219-700x330.png 700w" sizes="auto, (max-width: 409px) 100vw, 409px" /></p>
<p>Cependant, il est à noter que le mode test reste activé tant qu'une do<strong>nnée de désactivation "0xX0" n'est pas renvoyé au registre "0xXF".</strong></p>
<p>Concrètement, nous venons de passer en revue les fonctions de registre ainsi que leurs données d'exploitation.</p>
<p>Mais nous ne savons toujours pas comment les transmettre au MAX.</p>
<h3 style="text-align: center;"><span style="text-decoration: underline;"><strong>L'ENVOI DES DONNÉES.</strong></span></h3>
<h4><span style="text-decoration: underline;"><strong>Avant propos: Les données transmises.</strong></span></h4>
<p>Dans nos programmes, il va falloir remplacer le "<strong>X</strong>" majuscule, dans les données des tableaux, par le chiffre ou la lettre correspondant à la bonne donnée hexadécimale.</p>
<p>Prenons le cas de la donnée "<strong>0xX6</strong>". En premier lieu, regardons <strong>les deux premiers "caractères"</strong> "<strong>0x</strong>", ils indiquent que la donnée et de <strong>type HEXADÉCIMALE</strong>. Voyons ensuite <strong>les deux prochain caractères "X6".</strong> Ces derniers sont la<strong> transcription hexadécimale d'une donnée en bits. </strong>Hors le<strong> format Hexadécimale n'accepte pas le terme "X</strong>" il va donc falloir le remplacer. Mais par quoi ?</p>
<p><img loading="lazy" decoding="async" class="alignright wp-image-2136 " src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/007-MAX7219-e1478469602398.png" alt="007-max7219" width="254" height="218" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/007-MAX7219-e1478469602398.png 410w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/007-MAX7219-e1478469602398-300x258.png 300w" sizes="auto, (max-width: 254px) 100vw, 254px" /></p>
<p>Pour le savoir, il suffit d'<strong>utiliser la calculette du "PC" en mode programmeur</strong> sur "<strong>hexa</strong>" et "<strong>octet</strong>" et de reprendre les bits du tableau, en l’occurrence le sept (7), en cliquant sur les bits affichés en calculette. Avec 0000 0110 on trouve 6, ce qui nous fait "06" car ce format s'écrit sur deux caractères et le premier a par défaut 0, si il n'est pas affiché.</p>
<p>A partir de là "<strong>0xX6</strong>" devient "<strong>0x06"</strong>.</p>
<p>Toutefois, il sera possible de l'écrire simplement par zéro "0 ou un "1" lorsque la donnée n'est que sur un (1) bit.</p>
<h4><span style="text-decoration: underline;"><strong>Le format d'envoi.</strong></span></h4>
<p>Avant tout chose, elles doivent respecter ce que l'on appelle un format d'envoi. Et c'est donc dans vos programmes que ce format devra être respecté.</p>
<p>Nous venons de voir précédemment qu'il fallait renseigner<strong> une adresse et sa donnée</strong> pour activer la fonction d'un registre. Il nous faudra donc les envoyer toutes les deux.</p>
<p><span style="color: #0000ff;"><strong>Considérons une fonction de transfert de données constituée des deux paramètres utiles "adresse" et "data". </strong><em>(data = données en anglais).</em></span><strong><span style="color: #800080;"><br />
</span></strong></p>
<ul>
<li><span style="color: #0000ff;"><strong>void transfert(adresse, data);</strong></span></li>
</ul>
<p>Pour une compréhension aisée, prenons par exemple, la fonction "<strong>Display</strong> <strong>test</strong>" qui a pour adresse "<strong>0xXF</strong>",  si l'on souhaite l'activer, il faut donc  inscrire "<strong>0xX1</strong>" comme donnée.</p>
<p>En conclusion, cela nous donne en paramètre de fonction.</p>
<ul>
<li><strong><span style="color: #800080;"><span style="color: #33cccc;">void</span> </span>transfert(<span style="color: #ff0000;">0x0F</span>,<span style="color: #ff0000;"> 0x01</span>);<span style="color: #800080;"> //Transfert des données.</span></strong></li>
</ul>
<p><strong>La fonction transférera de notre carte Arduino vers le MAX7219, </strong> les données selon le <strong>protocole</strong> choisi via le port série. Dans notre cas, c'est le <strong>SPI</strong> que nous utiliserons.</p>
<h3 style="text-align: center;"><span style="text-decoration: underline;"><strong>LA COMMUNICATION</strong></span></h3>
<h4><span style="text-decoration: underline;"><strong>LE S.P.I.<br />
</strong></span></h4>
<p>Le Max 7219 peut fonctionner avec plusieurs<strong> protocoles de communication bus</strong>. Mais dans ce tutoriel, nous utiliserons et ne parlerons que du protocole de bus <strong>SPI</strong> qui transmet les données de la platine Arduino vers le MAX 7219.</p>
<p>Qu'est ce que le <strong>SPI </strong>"<em><strong>S</strong>erial <strong>P</strong>eripheral <strong>I</strong>nterface"</em> ? C'est une communication sur le <strong>principe du maître-esclave</strong>. Ce qui veut dire que la transmission des données ne se fait que dans<strong> un seul sens du maître vers l'esclave,</strong> donc la platine Arduino représente le maître et le MAX 7219 l'esclave.<strong> Plusieurs esclaves peuvent être reliés à ce bus</strong> série et seront <strong>sélectionnés</strong> pour réception de données <strong>via une ligne prévue à cet effet</strong>.</p>
<h4><span style="text-decoration: underline;"><strong>LA LIAISON SPI</strong></span></h4>
<p style="text-align: justify;">Ci-dessous,nous avons le schéma de câblage de la liaison série <strong>entre la platine Arduino et le MAX 7219.</strong></p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/MOSI.png"><img loading="lazy" decoding="async" class="alignright" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/MOSI.png" alt="shéma MOSI" width="253" height="189" /></a>On observe trois liaisons:</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li><strong>MOSI </strong>qui signifie "<strong>M</strong>aster<strong> O</strong>utput <strong>S</strong>lave <strong>I</strong>Nput" est une broche de sortie vers <strong>DIN </strong>qui est l'e<span id="result_box" lang="fr">ntrée de traitement des données série</span>.</li>
<li><strong>I/O</strong> est une sortie vers <strong>LOAD </strong>(CS) qui est l'entrée d'activation de chargement de données.</li>
</ol>
</li>
</ol>
<ol>
<li style="text-align: justify;"><strong>SCK </strong>est une sortie vers <strong>CLK</strong> qui est l'e<span id="result_box" class="short_text" lang="fr"><span class="">ntrée d' horloge série.</span></span></li>
</ol>
<p><strong>Le choix des différentes broches pour la liaison SPI ne s'est pas fait au hasard</strong>. Elles ont été définies par la configuration matérielle de la carte Arduino en fonction du mode SPI. Pour le savoir, il faut consulter la documentation de la carte Arduino pour le mode SPI.</p>
<p><img loading="lazy" decoding="async" class=" wp-image-2129 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/008-MAX7219.png" alt="008-max7219" width="473" height="382" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/008-MAX7219.png 614w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/008-MAX7219-300x242.png 300w" sizes="auto, (max-width: 473px) 100vw, 473px" /></p>
<p>Il existe d'autres broches, de type mâle, facilement reconnaissable pour installé cette liaison.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2131 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/009-MAX7219.png" alt="009-max7219" width="237" height="89" /></p>
<p>Premièrement la broche onze (11) <strong>MOSI</strong> configurée en mode sortie va envoyer les données sous forme de suite de bit zéro(0)-un(1).</p>
<p>Deuxièmement la broche dix (10) <strong>I/O</strong> configurée en mode sortie, activera le chargement des données dans le MAX.</p>
<p>Et troisièmement la broche treize (13) <strong>SCK</strong> configurée également en mode sortie, elle synchronisera et cadencera la transmission des données.</p>
<p>Voici la représentation schématique de la transmission au niveau du MAX7219..</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2132 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/010-MAX7219.png" alt="010-max7219" width="805" height="311" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/010-MAX7219.png 805w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/010-MAX7219-300x116.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/010-MAX7219-768x297.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/010-MAX7219-700x270.png 700w" sizes="auto, (max-width: 805px) 100vw, 805px" /></p>
<p>C'est ainsi que se passe la transmission en fonction de l'état de chaque entrée du MAX. Vous constaterez qu'il y a aussi <strong>DOUT</strong> qui est une entrée<span id="result_box" class="" lang="fr"><span class=""> utilisée</span> p<span class="">our connecter en série plusieurs MAX7219 ou MAX7221 mais nous ne l'utiliserons pas.</span></span></p>
<p>En résumé, la condition de fonctionnement de ce circuit dépend de l'état bas <strong>LOAD</strong> (CS), de l'envoi des données par <strong>MOSI</strong> et de leur synchronisation par <strong>SCK</strong>. Ce schéma illustre bien la transmission des données <strong>du  bit de poids fort D15 vers le bit de poids faible D0.</strong></p>
<h4><span style="text-decoration: underline;"><strong>L'exploitation du bus SPI</strong></span></h4>
<p>Tout d’abord pour exploiter le MAX, il va nous falloir configurer notre port série SPI à l'aide de paramètres. Tout comme nous le faisons pour exploiter le port série du moniteur avec la fonction <strong><span style="color: #ff9900;">Serial</span>.<span style="color: #ff9900;">begin</span>();</strong>.</p>
<p>Sauf qu'à la différence du port série moniteur, cela va se faire au travers d'une <strong>librairie</strong> <strong>incluse dans l'IDE de Arduino</strong>. Cette librairie s'appelle <strong>&lt;<span style="color: #ff9900;">SPI</span>.h&gt;</strong></p>
<p>Dans le programme, interviennent plusieurs instructions qu'il va être nécessaire de comprendre.</p>
<h5><strong><span style="text-decoration: underline;">Les instructions à connaître</span></strong></h5>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/include.png"><img loading="lazy" decoding="async" class="size-full wp-image-1989" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/include.png" alt="include SPI" width="470" height="16" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/include.png 470w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/include-300x10.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/include-432x16.png 432w" sizes="auto, (max-width: 470px) 100vw, 470px" /></a></p>
<p>Cette instruction indique que nous incluons la librairie SPI.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/SPI-Setting.png"><img loading="lazy" decoding="async" class="size-full wp-image-1990 alignnone" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/SPI-Setting.png" alt="SPI setting" width="419" height="17" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/SPI-Setting.png 419w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/SPI-Setting-300x12.png 300w" sizes="auto, (max-width: 419px) 100vw, 419px" /></a></p>
<p style="text-align: justify;"><strong><span class="wikiword">SPISettings</span> </strong>est utilisée pour configurer le port SPI, il prend successivement trois paramètres:</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="text-align: justify;">La vitesse de transmission des données.</li>
</ul>
</li>
</ul>
<ul>
<li style="list-style-type: none;">
<ul>
<li style="text-align: justify;">L'ordre d'envoi des données.</li>
</ul>
</li>
</ul>
<ul>
<li style="text-align: justify;">Le mode d'envoi.</li>
</ul>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/begintransaction.png"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/begintransaction.png" alt="spi begin transaction SPI" width="269" height="17" /></a></p>
<p>Initialise le bus SPI en utilisant les données  de <strong>SPISettings</strong> dans notre cas TransferMax7219 .</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/SPI-transfert-1.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1996 size-full" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/SPI-transfert-1.png" alt="spi transfert" width="170" height="17" /></a></p>
<p>Transfert des données sous un format  de un (1) octet soit huit (8) bit.</p>
<h5><span style="text-decoration: underline;"><strong>La fonction de transfert de données</strong></span></h5>
<p>Cette tâche étant répétitive, nous avons du créer une fonction de transfert pour dialoguer aisément avec le MAX 7219 dont on fait abondamment usage dans le programme.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/fonction-SPI.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1998" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/fonction-SPI.png" alt="fonction de tranfert de données SPI" width="729" height="183" /></a></p>
<p>La fonction prend deux paramètres en considération: le registre auquel on souhaite s'adresser et  la valeur de la donnée.</p>
<p>Exemple:</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/appel-de-la-fonction.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2000" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/appel-de-la-fonction.png" alt="appel-de-la-fonction" width="608" height="19" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/appel-de-la-fonction.png 608w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/appel-de-la-fonction-300x9.png 300w" sizes="auto, (max-width: 608px) 100vw, 608px" /></a></p>
<p><span style="color: #000000;">Prenons le cas de l'exemple illustré ci-dessus. On fait appel à la fonction <strong>Trsf7219</strong> <strong>pour transmettre</strong> au registre <strong>0x0A</strong> « <strong>intensity </strong>» la donnée <strong>0x06</strong>, soit la valeur <strong>13/32.</strong> Ce qui a pour effet de modifier la luminosité de l’afficheur.</span></p>
<p>Vous savez à présent exploiter l'utilisation des données et leur transmission vers le MAX via la communication SPI. Néanmoins, il existe<strong> un moyen plus simple de transférer des données vers le MAX</strong>. Ce moyen est <strong>une librairie que l'on appe</strong>lle <strong>&lt;<span style="color: #ff9900;">LedControl</span>.h&gt;</strong></p>
<h2>Utilisation de LedControl</h2>
<p><strong><span style="color: #ff9900;">LedControl</span></strong>  est une librairie simple qui offre des <strong>fonctions simplifiées de transfert de données vers le MAX7219</strong> rendant ainsi la programmation d'un afficheur sept segments ou d'une matrice <strong>plus souple et conviviale</strong>. Elle utilise des <strong>fonctions sous forme de  texte</strong> bien documenté et qui  permettent de réaliser de nombreuses choses.</p>
<h3>Les fonctions de bases</h3>
<p>Après avoir téléchargé la librairie &lt;<span style="color: #ff9900;">ledcontrol</span>.h&gt;, il est nécessaire de l'inclure au programme.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/include-led-controle.png"><img loading="lazy" decoding="async" class=" wp-image-2010 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/include-led-controle.png" alt="include led controle" width="316" height="57" /></a><span style="color: #ff9900;"><span style="color: #000000;"> Ci-dessous </span>LedControl</span> est <strong>déclaré par une instance d'un objet </strong>et appelé "<strong>septSegMax</strong>" dans notre programme. Cette fonction prend trois (3) paramètres, définis par le câblage de la platine Arduino et un (1), la dernière valeur correspond  au nombre de contrôleur présent sur le bus.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/instance-led-controle.png"><img loading="lazy" decoding="async" class="wp-image-2011 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/instance-led-controle.png" alt="Instance LED Controle" width="538" height="50" /></a>L'objet "<strong>septSegMax</strong>" servira donc à faire appel aux fonctions fournies par &lt;<span style="color: #ff9900;">LedControl</span>.h&gt;.</p>
<ul>
<li>Le premier paramètre définit la <strong>broche 10</strong> de l'Arduino comme étant <strong>LOAD</strong> <strong>CS</strong></li>
<li>Le deuxième paramètre définit la <strong>broche 13</strong> de l'Arduino comme étant <strong>CLK</strong></li>
<li>Le troisième paramètre définit la <strong>broche 11</strong> de l'Arduino comme étant le <strong>MOSI</strong></li>
<li>Le dernier paramètre correspond au <strong>nombre de MAX7219</strong> utilisé. Ici un (1).</li>
</ul>
<p>Voyons enfin les fonctions de &lt;LedControl.h&gt;</p>
<h4><span style="text-decoration: underline;">La fonction<strong> shutdown();</strong></span></h4>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/shutdown-led-controle.png"><img loading="lazy" decoding="async" class=" wp-image-2012 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/shutdown-led-controle.png" alt="shutdown LED Controle" width="440" height="48" /></a>Cette fonction permet d'allumer ou d’éteindre le MAX 7219. Si la valeur est <strong><span style="color: #33cccc;">false</span></strong>, le circuit fonctionne normalement et à l'inverse, <strong><span style="color: #33cccc;">true</span> </strong>le circuit est éteint. Vous constatez de toute évidence que les registres précédemment utilisés ont été remplacés par des fonctions de sorte que leurs noms soient évocateurs à rôle. Dans notre cas, <strong><span style="color: #ff9900;">shutdown</span>(paramètre1, <span style="color: #33cccc;">paramètre2</span> );</strong> il faut reconnaître que cela est bien plus simple.</p>
<h4><span style="text-decoration: underline;">La fonction<strong> setIntensity();</strong></span></h4>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/Intensité-lumineuses-led-controle.png"><img loading="lazy" decoding="async" class="wp-image-2013 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/Intensité-lumineuses-led-controle.png" alt="Intensité lumineuse SetIntensity" width="426" height="57" /></a>Vous l'aurez deviné cette fonction permet de <strong>définir l'intensité lumineuse de l'afficheur</strong> en 16 valeurs différentes; 15 étant notamment  le maximum représentant le nombre de données possible que l'on a vu dans le tableau sept (7).</p>
<h4><span style="text-decoration: underline;">La fonction<strong> clearDisplay();</strong></span></h4>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/clear-display-Led-controle.png"><img loading="lazy" decoding="async" class="wp-image-2015 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/clear-display-Led-controle.png" alt="clearDisplay efface l'afficheur" width="401" height="69" /></a>Cette fonction éteint l'afficheur et supprime toutes les données précédentes.</p>
<div style="border-left: 1px solid blue; padding-left: 5px;">
<hr />
<p style="text-align: center;"><span style="color: #ff0000;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/500px-Icon_attention_blue-1.png"><img loading="lazy" decoding="async" class="alignnone wp-image-2051 " src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/500px-Icon_attention_blue-1.png" width="95" height="83" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/500px-Icon_attention_blue-1.png 500w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/500px-Icon_attention_blue-1-300x260.png 300w" sizes="auto, (max-width: 95px) 100vw, 95px" /></a></span></p>
<p style="text-align: center;"><span style="color: #000080;">fonction AFFICHEUR SEPT SEGMENTS</span></p>
<p><span style="text-decoration: underline;">La fonction<strong> setDigit();</strong></span><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/setDigit-Led-controle.png"><img loading="lazy" decoding="async" class="wp-image-2017 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/setDigit-Led-controle.png" alt="instruction setDigit 4 paramettre" width="492" height="58" /></a>Elle prend quatre paramètres:</p>
<ul>
<li>le premier est l'adresse de l'afficheur par défaut toujours à 0.</li>
<li>le deuxième est le digit qui a une valeur de 0 à 7.</li>
<li>le troisième est la valeur de l'afficheur comprise de 0 à 15 en correspondance hexadécimal (afficher la lettre A vaut 10 et F vaut 15)</li>
<li> le quatrième permet d'afficher le point DP si la valeur est  "true".</li>
</ul>
<h4><span style="text-decoration: underline;">La fonction<strong> setRow</strong></span></h4>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/setRow-Led-controle.png"><img loading="lazy" decoding="async" class="wp-image-2018 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/10/setRow-Led-controle.png" alt="setrow-led-controle" width="488" height="60" /></a>Elle prend trois paramètres:</p>
<ul>
<li>le premier est l'adresse de l'afficheur par défaut toujours à 0.</li>
<li>le second est le <strong>digit</strong> en question qui prendre pour valeur de 0 à 7.</li>
<li>le troisième est une donnée en octet "<strong>B01110111</strong>" ou en hexadécimal "<strong>0x77"</strong>. Ce troisième paramètre a pour avantage d'afficher tous les segments que l'on souhaite sur un digit de manière distincte.</li>
</ul>
</div>
<div style="border-left: 1px solid red; padding-left: 5px;">
<p style="text-align: center;"><span style="color: #ff0000;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention.png"><img loading="lazy" decoding="async" class="wp-image-397 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention.png" alt="icone attention rouge" width="68" height="60" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention.png 500w, https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention-300x260.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention-148x128.png 148w, https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention-31x27.png 31w, https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention-38x33.png 38w, https://plaisirarduino.fr/arduino/wp-content/uploads/2015/09/500px-Icon_attention-248x215.png 248w" sizes="auto, (max-width: 68px) 100vw, 68px" /></a></span></p>
<p style="text-align: center;"><span style="color: #ff0000;">fonction MATRICE 64 LED</span></p>
<p>LedControl ne s'aborde pas exactement de la même façon si on travaille en matrice ou en afficheur sept segments.</p>
<p><strong>Info:</strong> L'usage de la matrice 1588BS inverse mes colonnes et mes lignes.</p>
<h2>Les fonctions de base</h2>
<h4><span style="text-decoration: underline;">la fonction<strong> setLed</strong></span></h4>
<p style="text-align: center;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setLed_ledcontrole.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2152" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setLed_ledcontrole.png" alt="Fonction setled de led controle" width="427" height="54" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setLed_ledcontrole.png 427w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setLed_ledcontrole-300x38.png 300w" sizes="auto, (max-width: 427px) 100vw, 427px" /></a></p>
<p>Elle prend quatre paramètres:</p>
<ul>
<li>le premier est l'adresse de l'afficheur par défaut toujours à 0.</li>
<li>le second est la ligne de la matrice qui prendre pour valeur de 0 à 7.</li>
<li>le troisième est la colonne de la matrice qui prendre pour valeur de 0 à 7.</li>
<li>le quatrième si elle a pour paramètre " true" la diode est allumée, sinon elle a  "false" et la diode est éteinte.</li>
</ul>
<h4></h4>
<h4><span style="text-decoration: underline;">la fonction<strong> setRow</strong></span></h4>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setrow-matmax.png"><img loading="lazy" decoding="async" class="wp-image-2090 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setrow-matmax.png" alt="set row paramettre" width="429" height="55" /></a></p>
<p>Elle prend trois paramètres:</p>
<ul>
<li>le premier est l'adresse de l'afficheur par défaut toujours à 0.</li>
<li>le second est la ligne en question qui prend pour valeur de 0 à 7.</li>
<li>le troisième est une donnée en octet "<strong>B01110111</strong>" ou en hexadécimal "<strong>0x77"</strong>. Ce troisième paramètre a pour avantage d'afficher toutes les diodes que l'on souhaite sur la colonne de manière distincte.</li>
</ul>
<h4></h4>
<h4><span style="text-decoration: underline;">la fonction <strong>setColumn</strong></span></h4>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setrow-matmax.png"><img loading="lazy" decoding="async" class="wp-image-2090 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/11/setrow-matmax.png" alt="set row paramettre" width="429" height="55" /></a></p>
<p>Elle prend trois paramètres:</p>
<ul>
<li>le premier est l'adresse de l'afficheur par défaut toujours à 0.</li>
<li>le second est la colonne en question qui prendre pour valeur de 0 à 7.</li>
<li>le troisième est une donnée en octet "<strong>B01110111</strong>" ou en hexadécimal "<strong>0x77"</strong>. Ce troisième paramètre a pour avantage d'afficher toutes les diodes que l'on souhaite sur la ligne de manière distincte.</li>
</ul>
</div>
<h2>Schéma de montage</h2>
<h3>Schéma Afficheur Sept Segments</h3>
<p>Maintenant pour utiliser le Max 7219, nous allons faire un montage type avec deux afficheurs 4 digits,  dont il est possible de câbler qu'un seul afficheur.</p>
<p>Vous trouverez un sketch pour 8 et 4 digits en téléchargement. .</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/4digits_7segments_MAX7219_ARDUINO_schéma.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3915" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/4digits_7segments_MAX7219_ARDUINO_schéma.jpg" alt="schema max 7219" width="2058" height="978" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/4digits_7segments_MAX7219_ARDUINO_schéma.jpg 2058w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/4digits_7segments_MAX7219_ARDUINO_schéma-300x143.jpg 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/4digits_7segments_MAX7219_ARDUINO_schéma-768x365.jpg 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/4digits_7segments_MAX7219_ARDUINO_schéma-1024x487.jpg 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/4digits_7segments_MAX7219_ARDUINO_schéma-700x333.jpg 700w" sizes="auto, (max-width: 2058px) 100vw, 2058px" /></a></p>
<h2>Schéma Matrice 1588BS</h2>
<p>Constater que les digits de la matrice correspondent à la cathode commune et que les segments à l'anode commune, ceci inverse l'utilisation de la librairie LedControle où les colonnes correspondent aux segments et les digits aux lignes.  Après avoir tester plusieurs montages celui-ci a été le plus fonctionnel.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/fritzing-Matrice-8x8_schéma.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3918" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/fritzing-Matrice-8x8_schéma.png" alt="Matrice à led 8x8" width="1602" height="1029" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/fritzing-Matrice-8x8_schéma.png 1602w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/fritzing-Matrice-8x8_schéma-300x193.png 300w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/fritzing-Matrice-8x8_schéma-768x493.png 768w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/fritzing-Matrice-8x8_schéma-1024x658.png 1024w, https://plaisirarduino.fr/arduino/wp-content/uploads/2019/04/fritzing-Matrice-8x8_schéma-700x450.png 700w" sizes="auto, (max-width: 1602px) 100vw, 1602px" /></a></p>
<p>Cet article <a href="https://plaisirarduino.fr/max-7219/">MAX 7219</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Envoyer et recevoir des données au moniteur série.</title>
		<link>https://plaisirarduino.fr/moniteur-serie/</link>
		
		<dc:creator><![CDATA[M.D-L]]></dc:creator>
		<pubDate>Sat, 10 Sep 2016 16:37:58 +0000</pubDate>
				<category><![CDATA[Projet]]></category>
		<guid isPermaLink="false">https://plaisirarduino.fr/?p=1259</guid>

					<description><![CDATA[<p>Envoyer et recevoir des données au moniteur série. Introduction. Le but de ce projet  et d'envoyer et recevoir des données au moniteur série. Pour cela, seule une carte arduino nous est utile avec un cordon USB. Lançons le moniteur série et configurons le. Puis dans le compilateur, configurons le débit de &#8230;</p>
<p>Cet article <a href="https://plaisirarduino.fr/moniteur-serie/">Envoyer et recevoir des données au moniteur série.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 class="western" style="text-align: center;"><strong><span style="text-decoration: underline; color: #0000ff;">Envoyer et recevoir des données au moniteur série.</span></strong></h1>
<h2><span style="text-decoration: underline;">Introduction.</span></h2>
<p>Le but de ce projet  et d'envoyer et recevoir des données au moniteur <em><span style="color: #0000ff;"><a style="color: #0000ff;" href="https://plaisirarduino.fr/le-moniteur-serie/">série</a></span></em>. Pour cela, seule une carte arduino nous est utile avec un cordon USB.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/carte-Arduino-UNO.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/carte-Arduino-UNO.png" alt="" width="261" height="189" name="images1" align="BOTTOM" border="1" /></span></a>Lançons le <em><span style="color: #0000ff;">moniteur série</span></em> et configurons le.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/liste-baud.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/liste-baud-89x150.png" alt="" width="89" height="150" name="images2" align="BOTTOM" border="1" /></span></a>Puis dans le compilateur, <strong>configurons le débit</strong> de transmission de la carte Arduino.</p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-IDE-configuration.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-IDE-configuration.png" alt="" width="481" height="67" name="images3" align="BOTTOM" border="1" /></span></a>Nous avons utilisé la classe <strong><span style="color: #ff9900;">Serial</span>.</strong> avec la fonction <strong><span style="color: #ff9900;">begin</span></strong><strong><span style="color: #000000;">();</span></strong> que nous avons renseigné avec la valeur 9600 baud de transmission. Les deux périphériques fonctionnent à la même vitesse.</p>
<h2 style="text-align: center;"><u>Recevoir des données.</u></h2>
<p style="text-align: justify;">Voilà, tout est prêt pour la communication. Commençons par <strong>recevoir au moniteur des données envoyées par la carte Arduino.</strong><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/test-moniteur-donnée.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/test-moniteur-donnée.png" alt="" width="503" height="51" name="images4" align="BOTTOM" border="1" /></span></a>Pour cela, nous utilisons la fonction <strong><span style="color: #ff9900;">println</span></strong><strong>();</strong></p>
<h3 style="text-align: justify;"><span style="text-decoration: underline;"><span style="color: #ff9900; text-decoration: underline;">println</span>();</span></h3>
<p style="text-align: justify;"><strong><span style="color: #ff9900;">println</span></strong><strong>();</strong> <strong>envoie les données vers le moniteur série </strong>avec un <strong>saut à la ligne </strong>. Ici notre donnée est une phrase placée entre<strong><u> les guillemets ces derniers sont utiles</u></strong><strong> pour ce type de données qui sont des caractères alphabétiques</strong>. Ci-dessus, nous testons notre communication.</p>
<p style="text-align: justify;">Téléversons notre programme et voyons le résultat.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée.png" alt="" width="380" height="210" name="images5" align="BOTTOM" border="1" /></span></a>Le moniteur affiche la phrase ! Notre communication est bonne.</p>
<h3 style="text-align: justify;"><span style="text-decoration: underline;">Le code <strong>A.S.C.I.</strong></span></h3>
<p style="text-align: justify;">Vous constaterez ci dessus que nous avons volontairement négligé les accents sur les «e» . Cela est dû au fait que<strong> les caractères alphabétiques sont organisés par un code conventionné, appelé ASCII = A<em>merican </em>S<em>tandard </em>C<em>ode for </em>I<em>nformation </em>I<em>nterchange*</em></strong>. Mais les accents sont « exclus » de ce code.</p>
<p><em>* </em><em>Il est possible de trouver des extensions de code ASCII qui incluent les caractères spéciaux.</em></p>
<p><strong><u>ASTUCE:</u></strong> Pour connaître le code ASCII des lettres majuscules ou minuscules: il faut retenir que <strong>"A" majuscule vaut 65 points et que</strong> <strong>l'écart avec la lettre "a" minuscule est de 32 points, </strong>soit "a" minuscule correspond à 65+32 = 97 en code ASCII. Les caractères se suivent dans le tableau.</p>
<h4>Afficher le résultat d'un petit calcul.</h4>
<p style="text-align: justify;">Nous allons maintenant demander <strong>d'afficher le résultat d'un petit calcul </strong><strong>avec une phrase complémentaire. </strong><span style="text-decoration: underline;">Il n'est pas permis de mélanger les types de données dans la fonction <strong><span style="color: #ff9900; text-decoration: underline;">print</span></strong><strong>();</strong> </span>il nous faudra donc faire plusieurs appels de cette fonction pour chacun d'eux.<br />
<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/calcul-moniteur-serie-donnée.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/calcul-moniteur-serie-donnée.png" alt="05 moniteur serie E-R pgm calcul" width="545" height="339" name="images6" align="BOTTOM" border="1" /></span></a>Nous déclarons trois variables. Deux pour le calcul et une pour le résultat. Puis nous réalisons le produit de nos deux variables, pour stocker le résultat dans la variable prévue à cet effet. Nous affichons ensuite une phrase complémentaire suivie de la valeur du résultat et d'un <strong>saut à la ligne suivante sous une autre méthode avec l'intégration de \n en fin de phrase.</strong></p>
<p style="text-align: justify;"><strong><u>NOTE:</u></strong><br />
Dans nos phrases chaque mot est espacé, il est donc possible de <strong>mettre des espaces en fin de phrase pour créer un espace avec la donnée suivante.</strong></p>
<p>Téléversons les ajouts et voyons le résultat.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-défilement.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-défilement.png" alt="" width="421" height="233" name="images7" align="BOTTOM" border="1" /></span></a>L'affichage défile et est illisible a cette vitesse !!! Nous pourrions temporiser cela mais cela ne serais pas une solution confortable.</p>
<h3><span style="text-decoration: underline;">Exploitation du moniteur pou la mise en forme visuelle de l'affichage.</span></h3>
<p style="text-align: justify;">Il y a deux raisons à cela. La manière dont on a envoyé les données et le fait que ces dernières sont envoyées à chaque cycle d’exécution de la fonction <strong><span style="color: #808000;">loop</span></strong><strong>()</strong>. Si l'on souhaite stopper le défilement, il faut décocher la case en-bas à gauche.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-coche-defilement-.png"><span style="color: #000080;"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-coche-defilement-.png" alt="Mointeur série coche defilement" width="140" height="23" name="images8" align="BOTTOM" border="1" /></span></a></p>
<p><strong>Note:</strong> Le défilement représente chaque cycle de passage dans la boucle <strong><span style="color: #808000;">loop</span></strong><strong>()</strong>.</p>
<p style="text-align: justify;">Une fois l'affichage stoppé, on constate qu'il nous<u> manque des sauts de lignes pour que cela soit correctement lisible.</u>  Installons des sauts de lignes vierges avec <strong><span style="color: #ff9900;">println</span></strong><strong>();</strong> entre chaque exécutions et ajoutons une temporisation avec la fonction <strong><span style="color: #ff9900;">delay</span></strong><strong>();</strong> qui aidera à la lecture des données transmises.</p>
<p style="text-align: justify;"><strong><u>NOTE:</u></strong> Il vous sera utile de ralentir le défilement du moniteur série par la mise en place de <strong><span style="color: #ff9900;">delay</span></strong><strong>();</strong> qui <strong>arrêtera temporairement le cycle du programme</strong> et vous <strong>permettra de comprendre son évolution</strong> ou de<strong> cibler ces dysfonctionnement (Débogage).</strong></p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-rérganisation-ligne.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-rérganisation-ligne.png" alt="" width="544" height="371" name="images9" align="BOTTOM" border="1" /></span></a>Nous avons en fin de programme nos deux instructions. Téléversons les ajouts et voyons le résultat.</p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-réorganisé.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-réorganisé.png" alt="" width="410" height="228" name="images10" align="BOTTOM" border="1" /></span></a>Stoppons le défilement et revenons au début. On retrouve nos espaces et l'inter-ligne. C'est déjà plus lisible !!</p>
<p style="text-align: justify;"><strong><u>Astuce:</u></strong> Pour un programme qui n'effectue qu'une seule et unique action. Il est possible de forcer son arrêt dans une boucle <strong><span style="color: #808000;">while</span></strong><strong>();</strong> en y inscrivant 1. <strong><span style="color: #808000;">while</span></strong><strong>(1);*.</strong> Cela permet d'avoir une page dégagée et plus de confort visuel. C'est également utile pour rechercher des dysfonctionnement dans des séquences d'un programme. (débogage) Mais le mieux pour des tests ou des exemples est de l’inscrire dans le <strong><span style="color: #808000;">setup</span></strong><strong>()</strong>.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-astuce-while1.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-astuce-while1.png" alt="" width="295" height="13" name="images11" align="BOTTOM" border="1" /></span></a>Installons cette instruction à la fin du programme suivant. Téléversons et voyons le résultat.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-while1.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-while1.png" alt="" width="432" height="240" name="images12" align="BOTTOM" border="1" /></span></a>Nous y voyons déjà plus clair !!</p>
<h3><span style="text-decoration: underline;">Manipuler les format de données</span></h3>
<p style="text-align: justify;">A présent que l'affichage est ordonné, nous allons <strong>manipuler notre résultat</strong>. Il serait <strong>utile de pouvoir convertir</strong> l'affichage de cette donnée et de voir quelle est sa valeur.</p>
<p>Il y a trois types de format de données que l'on peut exploiter.</p>
<ul>
<li>Le décimale <strong><span style="color: #33cccc;">DEC</span></strong><strong><span style="color: #000000;">. </span></strong><span style="color: #000000;">Le système décimale est un système en base 10 (avec les chiffres de 0 à 9). </span></li>
<li>L’hexadécimale <strong><span style="color: #33cccc;">HEX</span></strong>. L'hexadécimale en base 16 avec les chiffres de 0 à 9 en plus des lettres de A à F qui représentent les valeurs de 10 à 15.</li>
<li>Le binaire <strong><span style="color: #33cccc;">BIN</span></strong>. Le système binaire en base 2 avec les chiffres 0 et 1 seulement. (mais à lui seul a permis le montage de système complexe que l'on connaît)</li>
</ul>
<p>Nous ne rentrerons pas dans le détail de chaque format. Il est nécessaire ici de<strong> connaître l'exploitation possible de ce type de format.</strong></p>
<p>Pour afficher une donnée dans un format voulu, il suffit de l'indiquer avec une virgule "<strong><span style="color: #800080;">,</span></strong>" dit <strong><span style="color: #800080;">opérateur séquentiel</span></strong> dans la fonction <strong><span style="color: #ff9900;">print</span></strong><strong>();</strong></p>
<p><u>Ça se présente sous cette forme (Exemple).</u></p>
<p><strong><span style="color: #ff9900;">Serial</span></strong><strong>.</strong><strong><span style="color: #ff9900;">print</span></strong><strong>(variable</strong> <strong><span style="color: #800080;">opérateur séquentiel</span></strong><strong><span style="color: #33cccc;"> format</span></strong><strong><span style="color: #000000;">);</span></strong><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/51-moniteur-serie-format-variable.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/51-moniteur-serie-format-variable.png" alt="51 moniteur serie format variable" width="576" height="188" name="images13" align="BOTTOM" border="1" /></span></a>Voici le résultat au moniteur.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/51-moniteur-serie-affichage-format-variable.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/51-moniteur-serie-affichage-format-variable.png" alt="51 moniteur serie affichage format variable" width="279" height="84" name="images14" align="BOTTOM" border="1" /></span></a>L'utilisation de l'affichage sous un format différent est parfois utiles pour un traitement plus lisible de données binaires vers l'hexadécimale.</p>
<h2 style="text-align: center;"><u>Envoyer des données.</u></h2>
<p>Nous avons vu comment envoyer des données vers le moniteur. Maintenant nous allons envoyer des données vers la carte Arduino.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-bouton-envoyé.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="alignleft" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-bouton-envoyé.png" alt="moniteur série donnée bouton envoyé" width="76" height="25" name="images15" align="BOTTOM" border="1" /></span></a>Pour envoyer des données vers la carte nous avons une zone de saisie de données et un bouton.</p>
<h3><span style="text-decoration: underline;"><span style="color: #ff9900; text-decoration: underline;"><span style="color: #000000; text-decoration: underline;">Fonctions  </span>available</span>() et <span style="color: #ff9900; text-decoration: underline;">read</span>().</span></h3>
<p style="text-align: justify;">Pour cela, nous allons utiliser deux autres fonctions de <strong><span style="color: #ff9900;">Serial</span></strong><strong>.</strong> Tout d'abord comme dans toute communication, il va falloir dire à la carte que l'on s'adresse à elle.</p>
<p style="text-align: justify;"><strong><span style="color: #ff9900;">available</span></strong><strong>()</strong> va contrôler si des données sont présentent dans le buffer*. Dans ce cas, on les lira avec la fonction <strong><span style="color: #ff9900;">read</span></strong><strong>()</strong> qui va récupérer les données dans le buffer. C'est l'acquisition de la donnée qui vient d'être faite.</p>
<p>*<em>Buffer: Mémoire tampon de stockage de données pour le transfert.</em></p>
<p style="text-align: justify;"><strong><span style="color: #ff9900;">read</span></strong>() récupère les données une à une dans le buffer. Il faudra répéter son action de lecture<strong> tant qu'</strong>il y a des données dans le buffer. L'utilisation de <strong><span style="color: #808000;">while</span></strong><strong>()</strong> nous permettra de réaliser cette opération. Il faut savoir également que <strong><span style="color: #ff9900;">read</span></strong>() efface du buffer la donnée qu'il vient de lire.</p>
<p>Créons <strong>une variable qui va récupérer les données et </strong>mettons en place<br />
les fonctions dans notre programme.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-acquis.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-acquis.png" alt="" width="494" height="235" name="images16" align="BOTTOM" border="1" /></span></a>La présence de données est contrôlée par <strong><span style="color: #ff9900;">Serial</span></strong><strong>.</strong><strong><span style="color: #ff9900;">available</span></strong><strong>()</strong>. La fonction retourne « <strong><span style="color: #33cccc;">true</span></strong> » (1) si des données sont présentent dans le buffer. Ensuite la fonction <strong><span style="color: #ff9900;">read</span></strong><strong>()</strong> s'occupe de lire dans le buffer et de charger les données dans la variable «<strong> acquis_donnees</strong> » .</p>
<p><strong><u>NOTE:</u></strong> Ici <strong><span style="color: #ff9900;">delay</span></strong><strong>()</strong> apporte une stabilité de traitement des données. Sans cela, il y a un risque d'un affichage erroné.</p>
<p style="text-align: justify;">Téléversons les modifications et voyons le résultat avec l'envoi du mot <u>Arduino</u>.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-resultat-envoie-1.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-resultat-envoie-1.png" alt="" width="406" height="225" name="images17" align="BOTTOM" border="1" /></span></a>Que s'est-il passé ? Il nous retourne que des chiffres !</p>
<h3 style="text-align: justify;"><span style="text-decoration: underline;">Le type <span style="color: #33cccc; text-decoration: underline;">char</span></span></h3>
<p style="text-align: justify;">Se sont les valeurs de <strong>code ASCII qui correspondent à chaque lettre</strong> du mot Arduino. Ces chiffres correspondent à ce qui a été envoyé par le moniteur pour transférer les données vers la carte. Cette dernière nous les a simplement<strong> retourné sous le format entier</strong> <strong><span style="color: #33cccc;">int</span></strong> de la variable dans laquelle elles ont été stockées.</p>
<p style="text-align: justify;">Si l'on souhaite avoir un retour de notre envoi par des lettres, il faut <strong>faire la conversion inverse</strong>. Sauf qu'une conversion n'est pas intéressante car nous avons <strong>le type</strong> <strong><span style="color: #33cccc;">char</span></strong> qui prend en charge les caractères alphabétiques. Il nous faut donc changer le type de déclaration de la variable <strong>acquis_donnees</strong>.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-type-char.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-type-char.png" alt="moniteur série donnée type char" width="462" height="37" name="images18" align="BOTTOM" border="1" /></span></a>Renvoyons le mot arduino.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-Arduino-char.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-Arduino-char.png" alt="" width="417" height="230" name="images19" align="BOTTOM" border="1" /></span></a>Afficher ce mot sur une ligne, c'est possible. Comme on le voit sur le moniteur chaque lettre du mot est une donnée lue à chaque lecture de <strong><span style="color: #ff9900;">read</span></strong><strong>()</strong>.</p>
<p><strong>La première solution</strong> est de retirer les sauts de lignes après l'affichage de la donnée et supprimer la phrase complémentaire à l'aide des barres obliques //.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-solution-1.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-solution-1.png" alt="" width="503" height="35" name="images20" align="BOTTOM" border="1" /></span></a>Cela nous donne.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-solution-1.png"><span style="color: #000080;"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-solution-1.png" alt="" width="454" height="252" name="images21" align="BOTTOM" border="1" /></span></a></p>
<h2 style="text-align: center;"><span style="text-decoration: underline;">Envoyer une chaine de caractères.</span></h2>
<p style="text-align: justify;">Vous constaterez que les lettres s'affichent une à une comme précédemment. C'est dû  au traitement de notre acquisition qui s'effectue via notre variable de type<strong><span style="color: #33cccc;"> char</span></strong><strong><span style="color: #000000;">.</span></strong> Il nous faudrait stocker une à une les lettres de notre mot dans une variable; mais le type <strong><span style="color: #33cccc;">char</span></strong> <strong>n'a de place mémoire</strong> que pour des caractères alphabétiques seuls. I<strong>l ne permet pas de stocker un mot ou une phrase</strong> qui sont trop volumineux pour l'espace mémoire alloué. <strong>Une suite de lettres alphabétiques dans un mot ou une phrase est appelée chaîne de caractères.</strong></p>
<h3><span style="text-decoration: underline;"><span style="color: #33cccc; text-decoration: underline;">String</span></span></h3>
<p style="text-align: justify;">Il existe une classe <strong><span style="color: #33cccc;">String</span></strong> qui contient <strong>suffisamment de place mémoire</strong> pour des chaînes de caractères.</p>
<p style="text-align: justify;">Comment utiliser <strong><span style="color: #33cccc;">String</span></strong> ?<br />
<strong><span style="color: #33cccc;">String</span></strong><strong> est une classe</strong> <strong>qui regroupe plusieurs fonctions</strong> <strong>utiles à l'exploitation des chaînes de caractères.</strong> A la différence de <strong><span style="color: #ff9900;">Serial</span></strong>, pour faire appel à l'une de ses fonctions, il faut lui attribuer un  <strong><u>objet</u></strong>  . Un  <strong><u>objet</u></strong> : c'est comme une variable mais pas vraiment. Il nous faut la nommer judicieusement en fonction de son utilisation.</p>
<p style="text-align: justify;">Voici comment attribuer un <strong><u>objet,</u></strong> qui ne sera utile uniquement pour la <strong>classe</strong><strong><span style="color: #33cccc;"> String</span></strong><br />
à laquelle il est rattaché. Dans le jargon, on dit faire une instanciation*.</p>
<p><em>*Instanciation :  L'instance d'une classe est faite par l'affectation d'un objet qui lui est propre à son exploitation.</em></p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-string-declaration.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-string-declaration.png" alt="" width="496" height="38" name="images22" align="BOTTOM" border="1" /></span></a><strong>chaineCaractere</strong>; est notre <strong><u>objet</u></strong>, une instance de <strong><span style="color: #33cccc;">String</span></strong>.</p>
<p style="text-align: justify;">Comme nous l'avons vu plutôt on récupère les données une à une. Donc par le biais d'une addition <strong>nous stockerons une à une les données reçues dans l'objet</strong>.</p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-solution-2-chargement-donnée.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-solution-2-chargement-donnée.png" alt="moniteur série donnée solution 2 chargement donnée" width="367" height="33" name="images23" align="BOTTOM" border="1" /></span></a>N'oublions pas de réinstaller notre phrase complémentaire et le saut de ligne en fin d'affichage de données. Il nous faut à présent afficher notre objet <strong>chaineCaractere</strong> à la place de <strong>acquis_donnees</strong></p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnee-solution-2.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnee-solution-2.png" alt="moniteur série donnee solution 2" width="545" height="320" name="images24" align="BOTTOM" border="1" /></span></a>Téléversons nos modifications et envoyons le mot <strong><u>Arduino</u></strong>.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnee-affichage-solution-2.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnee-affichage-solution-2.png" alt="" width="405" height="223" name="images25" align="BOTTOM" border="1" /></span></a>Le résultat est volontaire, c'est pour vous montrer comment se déroule l'acquisition et ce qu'il se passe à chaque cycle de <strong><span style="color: #808000;">while</span></strong><strong>()</strong>.</p>
<h3 style="text-align: justify;"><span style="text-decoration: underline;">Mise en forme de l'affichage des données.</span></h3>
<p style="text-align: justify;"><strong>Pour un affichage complet</strong> de notre envoi, il nous faut <strong>sortir</strong> <strong>de la boucle </strong><strong><span style="color: #808000;">while</span></strong><strong>()</strong> l'affichage de notre<strong> objet </strong>. Par conséquent, il se retrouve <strong>dans le programme principal </strong><strong><span style="color: #808000;">loop</span></strong><strong>()</strong> et notre phrase complémentaire<strong> risque d’être afficher en continu</strong>. Donc pour éviter cela nous allons<strong> conditionner l'affichage </strong>sur la présence de données contenues dans notre <strong>objet</strong>.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-hors-while.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-hors-while.png" alt="moniteur série donnée hors while" width="535" height="235" name="images26" align="BOTTOM" border="1" /></span></a><strong><u>NOTE rappel:</u></strong> <strong><span style="color: #ff9900;">delay</span></strong><strong>()</strong> dans la boucle sera à présent seulement utile pour apporter une <strong>stabilité de traitement</strong> des données. Sans ça, il y a un risque d'un affichage erroné.</p>
<p style="text-align: justify;">Téléversons les modifications et voyons le résultat avec l'envoi du mot Arduino.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-hors-while.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-hors-while.png" alt="" width="421" height="233" name="images27" align="BOTTOM" border="1" /></span></a>Voici un résultat plus satisfaisant ! Nous avons un bel outil qui nous permet de retourner une phrase au moniteur. Amusez-vous avec d'autres mots et phrases.</p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-belle-outil.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-belle-outil.png" alt="moniteur série donnée affichage belle outil" width="415" height="36" name="images28" align="BOTTOM" border="1" /></span></a><strong><u>Petit plus:</u></strong> Pour<strong> l'affichage des données avec </strong><strong><span style="color: #33cccc;">String,</span></strong> il est possible de le faire avec <strong>une seule ligne d'instruction à l'aide d'un "+" en fin de phrase</strong>. Vous comprendrez que cela est faisable par le traitement de <strong>type de</strong> <strong>données identiques</strong>. Voyez ci-dessous.</p>
<h3 style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-string-une-seul-ligne.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-string-une-seul-ligne.png" alt="moniteur série donnée string une seul ligne" width="471" height="33" name="images29" align="BOTTOM" border="1" /></span></a><span style="text-decoration: underline;">Les fins de lignes de données ?</span></h3>
<p style="text-align: justify;">Nous allons voir à présent <strong>l'importance que le moniteur porte au saut de ligne et fin de ligne</strong>. Nous avons vu précédemment que <strong>le code ASCII régie la transmission des données</strong>. Pour traiter les données en fonction des sauts ou fins de lignes, il nous faut connaître le code ASCII des sauts de lignes et fins de lignes. Celui de <strong>fin de ligne "LF - Line feed" vaut 10 en code ASCII.</strong><br />
Nous allons donc <strong>contrôler la présence du code 10</strong> dans la réception des données transmises pour afficher un message.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-code-10.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-code-10.png" alt="moniteur série donnée code 10" width="577" height="151" name="images30" align="BOTTOM" border="1" /></span></a>Assurez-vous que le paramètre de ligne du moniteur soit sur "<strong>Pas de fin de ligne</strong>" (<em>nous verons pourquoi plus tard</em>).</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/bouton-parametre-ligne.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/bouton-parametre-ligne.png" alt="" width="123" height="25" name="images31" align="BOTTOM" border="1" /></span></a>Téléversons les modifications et envoyons le mot <strong><u>Arduino</u></strong>.</p>
<p style="text-align: justify;"><u>Rien ne se passe ! C'est normal .</u> Cela pour comprendre que les fins de lignes sont générées par le moniteur lui-même lors d'une transmission de données. Pour Activer les fins de lignes, il faut changer le paramètre d'envoi de données sur "<strong>nouvelle ligne</strong>"</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-bouton-défilement.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/Mointeur-série-bouton-défilement.png" alt="Mointeur série bouton défilement" width="118" height="23" name="images32" align="BOTTOM" border="1" /></span></a>Essayez avec le mot <strong>Arduino</strong>.</p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-end-line-.png"><span style="color: #000080;"><img loading="lazy" decoding="async" class="aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/moniteur-série-donnée-affichage-end-line-.png" alt="" width="431" height="240" name="images33" align="BOTTOM" border="1" /></span></a>Cela fonctionne. Et l'on comprend maintenant que le moniteur peut être configuré pour traiter des envois de données sur des fins de lignes ou pas. Si vous appuyez simplement sur "entrée" ou le bouton "envoyé" vous envoyez des données vierges.</p>
<p><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/50-moniteur-envoi-reception-vierge.png"><span style="color: #000080;"><img loading="lazy" decoding="async" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/50-moniteur-envoi-reception-vierge.png" alt="50 moniteur envoi-reception vierge" width="512" height="71" name="images34" align="BOTTOM" border="1" /></span></a></p>
<h2><u>Je vous propose un petit jeu !!</u></h2>
<p style="text-align: justify;">Amusons-nous à distinguer chaque mot d'une phrase !!!!<br />
Pour cela nous allons faire la même chose que pour les sauts de lignes, sauf que cette fois, se sont les espaces entre chaque mot que nous chercherons.</p>
<p style="text-align: justify;">Dans le tableau ASCII<strong> l'espace "space" vaut 32.</strong><br />
Nous avons également besoin de savoir <strong>quand vient le saut de ligne 10</strong> pour <strong>le dernier mot de la phrase qui ne dispose</strong> <strong>pas forcément d'un espace</strong>. Intégrons cette dernière valeur dans notre condition de  contrôle.</p>
<p style="text-align: justify;">Nous aurons aussi besoin d'un<strong> objet "chaineCaractere2" supplémentaire pour décomposer notre phrase</strong>. Il va nous falloir <strong>réinitialiser à zéro (vider) notre nouvel objet à chaque détection d'espace</strong> pour afficher seulement le mot suivant entre espace. En utilisant la boucle <strong><span style="color: #808000;">while</span>()</strong> tant que des données sont présentes.</p>
<p style="text-align: justify;"><a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/52-moniteur-serie-separation-32-10.png"><img loading="lazy" decoding="async" class="size-full wp-image-1267 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/52-moniteur-serie-separation-32-10.png" alt="52 moniteur serie separation 32+10" width="608" height="529" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/52-moniteur-serie-separation-32-10.png 608w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/52-moniteur-serie-separation-32-10-300x261.png 300w" sizes="auto, (max-width: 608px) 100vw, 608px" /></a>Téléversons nos modifications et voyons le résultat avec une phrase de plusieurs mots.<a href="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/53-moniteur-serie-affichage-32-10.png"><img loading="lazy" decoding="async" class="size-full wp-image-1268 aligncenter" src="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/53-moniteur-serie-affichage-32-10.png" alt="53 moniteur serie affichage 32+10" width="672" height="173" srcset="https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/53-moniteur-serie-affichage-32-10.png 672w, https://plaisirarduino.fr/arduino/wp-content/uploads/2016/04/53-moniteur-serie-affichage-32-10-300x77.png 300w" sizes="auto, (max-width: 672px) 100vw, 672px" /></a>Cela fonctionne mais prenez garde au paramétrage du moniteur car en mode "<strong>pas de fin de ligne</strong>" le dernier mot ne sera pas affiché, si vous n'y ajoutez pas d'espace. Le mode "<strong>nouvelle ligne</strong>" est approprié à l'utilisation de ce sketch.</p>
<p style="text-align: justify;">Il existe de multiples fonctions de <strong><span style="color: #33cccc;">String</span></strong> utiles pour le traitement des chaînes de caractères.</p>
<p style="text-align: justify;">Vous avez exploré les bases pour traiter l'envoi et la réception de données au moniteur série. <strong><span style="color: #0000ff;">Nous avons atteint le but de ce projet.</span></strong> Il y a beaucoup de manière d'utiliser le moniteur série. Vous le découvrirez au fur et à mesure de votre progression.</p>
<h3 style="text-align: center;"><strong><span style="color: #3366ff;">FIN.</span></strong></h3>
<p><em><a href="https://plaisirarduino.fr/telechargement/"><span style="color: #0000ff;">Téléchargez les codes sources</span></a> référent à ce sujet. <strong>Merci.</strong></em></p>
<p>Cet article <a href="https://plaisirarduino.fr/moniteur-serie/">Envoyer et recevoir des données au moniteur série.</a> est apparu en premier sur <a href="https://plaisirarduino.fr">PlaisirArduino</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Mise en cache de page à l’aide de Disk: Enhanced 
Minified using Disk
Mise en cache de la base de données de 123/167 requêtes en 0.042 secondes utilisant Disk

Served from: plaisirarduino.fr @ 2026-05-12 22:36:40 by W3 Total Cache
-->