<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Arduino</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur la programmation des cartes de développement dans l'environnement Arduino]]></description>
		<language>fr</language>
		<lastBuildDate>Thu, 04 Jun 2026 09:42:40 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Arduino</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Programme Arduino - Thinkercad simulation volet roulant</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183862&amp;goto=newpost</link>
			<pubDate>Sun, 24 May 2026 17:53:50 GMT</pubDate>
			<description>Bonjour, 
 
Je souhaite faire...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je souhaite faire une simulation pour un projet sur tinkercad d'un volet roulant equipé d'un capteur de luminosité .<br />
<br />
Le volet doit s'ouvrir et se fermer a partir d'un certain seuil lux (30 Lux par exemple) mais j'arrive pas a faire fonctionner le programme.<br />
<br />
J'etais partis sur un L293D  un moteur pour inversion de sens et 2 interrupteurs (fins de course point haut , point bas).<br />
<br />
Apres je voulais émuler les fins de course <br />
<br />
Avec quoi représenter au mieux cette simulation ? <br />
<br />
Merci Beaucoup</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>seb605151</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183862/general-developpement/programmation-systeme/embarque/arduino/programme-arduino-thinkercad-simulation-volet-roulant/</guid>
		</item>
		<item>
			<title><![CDATA[[Arduino ESP32] ILI9341 affichage inversé]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183809&amp;goto=newpost</link>
			<pubDate>Wed, 20 May 2026 16:13:10 GMT</pubDate>
			<description><![CDATA[Bonjour à tous , 
j'aurai...]]></description>
			<content:encoded><![CDATA[<div>Bonjour à tous ,<br />
j'aurai besoin de toute votre maestria pour me sortir de cette galère <br />
<br />
comme vous le voyez sur la photo jointe , l'affichage est inversé (en miroir) <br />
et je n'arrive pas à le remettre en paysage de la façon normale<br />
mon montage est le suivant :<br />
=&gt;&gt; un ESP32S3 et un écran ILI9341 avec SD <br />
<br />
le programme ci-dessous charge le croquis suivant pour initialiser l'écran <br />
j'y ai associé un extrait de la datasheet du ILI9341 <br />
<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br />199<br />200<br />201<br />202<br />203<br />204<br />205<br />206<br />207<br />208<br />209<br />210<br />211<br />212<br />213<br />214<br />215<br />216<br />217<br />218<br />219<br />220<br />221<br />222<br />223<br />224<br />225<br />226<br />227<br />228<br />229<br />230<br />231<br />232<br />233<br />234<br />235<br />236<br />237<br />238<br />239<br />240<br />241<br />242<br />243<br />244<br />245<br />246<br />247<br />248<br />249<br />250<br />251<br />252<br />253<br />254<br />255<br />256<br />257<br />258<br />259<br />260<br />261<br />262<br />263<br />264<br />265<br />266<br />267<br />268<br />269<br />270<br />271<br />272<br />273<br />274<br />275<br />276<br />277<br />278<br />279<br />280<br />281<br />282<br />283<br />284<br />285<br />286<br />287<br />288<br />289<br />290<br />291<br />292<br />293<br />294<br />295<br />296<br />297<br />298<br />299<br />300<br />301<br />302<br />303<br />304<br />305<br />306<br />307<br />308<br />309<br />310<br />311<br />312<br />313<br />314<br />315<br />316<br />317<br />318<br />319<br />320<br />321<br />322<br />323<br />324<br />325<br />326<br />327<br />328<br />329<br />330<br />331<br />332<br />333<br />334<br />335<br />336<br />337<br />338<br />339<br />340<br />341<br />342<br />343<br />344<br />345<br />346<br />347<br />348<br />349<br />350<br />351<br />352<br />353<br />354<br />355<br />356<br />357<br />358<br />359<br />360<br />361<br />362<br />363<br />364<br />365<br />366<br />367<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;">#ifndef TFT_DRIVER_H</span>
<span style="color: #339933;">#define TFT_DRIVER_H</span>
&nbsp;
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;Arduino.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;SPI.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &quot;hw_config.h&quot;</span>
&nbsp;
<span style="color: #339933;">#define TFT_SWRESET   0x01</span>
<span style="color: #339933;">#define TFT_SLPOUT    0x11</span>
<span style="color: #339933;">#define TFT_COLMOD    0x3A</span>
<span style="color: #339933;">#define TFT_MADCTL    0x36</span>
<span style="color: #339933;">#define TFT_CASET     0x2A</span>
<span style="color: #339933;">#define TFT_RASET     0x2B</span>
<span style="color: #339933;">#define TFT_RAMWR     0x2C</span>
<span style="color: #339933;">#define TFT_DISPON    0x29</span>
<span style="color: #339933;">#define TFT_DISPOFF   0x28</span>
<span style="color: #339933;">#define TFT_INVON     0x21</span>
<span style="color: #339933;">#define TFT_INVOFF    0x20</span>
&nbsp;
<span style="color: #339933;">#define DISPLAY_WIDTH  280  </span>
<span style="color: #339933;">#define DISPLAY_HEIGHT 240</span>
&nbsp;
<span style="color: #339933;">#define ST7789_COL_OFFSET 20  &lt;====( affichage pr&eacute;vu initialement pour un ST7789 )</span>
&nbsp;
<span style="color: #339933;">#define TFT_BLACK   0x0000</span>
<span style="color: #339933;">#define TFT_WHITE   0xFFFF</span>
<span style="color: #339933;">#define TFT_RED     0xF800</span>
<span style="color: #339933;">#define TFT_GREEN   0x07E0</span>
<span style="color: #339933;">#define TFT_BLUE    0x001F</span>
&nbsp;
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint8_t</span> font_5x7<span style="color: black;">&#91;</span><span style="color: black;">&#93;</span> <span style="color: #0080ff;">PROGMEM</span> = <span style="color: black;">&#123;</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x20 ' '</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x5F</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x21 '!'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x07</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x07</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x22 '&quot;'</span>
    <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #808080;">// 0x23 '#'</span>
    <span style="color: #cc66cc;">0x24</span>, <span style="color: #cc66cc;">0x2A</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x2A</span>, <span style="color: #cc66cc;">0x12</span>, <span style="color: #808080;">// 0x24 '$'</span>
    <span style="color: #cc66cc;">0x23</span>, <span style="color: #cc66cc;">0x13</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x64</span>, <span style="color: #cc66cc;">0x62</span>, <span style="color: #808080;">// 0x25 '%'</span>
    <span style="color: #cc66cc;">0x36</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x55</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #cc66cc;">0x50</span>, <span style="color: #808080;">// 0x26 '&amp;'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x05</span>, <span style="color: #cc66cc;">0x03</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x27 '''</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x1C</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x28 '('</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #cc66cc;">0x1C</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x29 ')'</span>
    <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x3E</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #808080;">// 0x2A '*'</span>
    <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x3E</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #808080;">// 0x2B '+'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x50</span>, <span style="color: #cc66cc;">0x30</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x2C ','</span>
    <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #808080;">// 0x2D '-'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x60</span>, <span style="color: #cc66cc;">0x60</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x2E '.'</span>
    <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x10</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x02</span>, <span style="color: #808080;">// 0x2F '/'</span>
    <span style="color: #cc66cc;">0x3E</span>, <span style="color: #cc66cc;">0x51</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x45</span>, <span style="color: #cc66cc;">0x3E</span>, <span style="color: #808080;">// 0x30 '0'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x42</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x31 '1'</span>
    <span style="color: #cc66cc;">0x42</span>, <span style="color: #cc66cc;">0x61</span>, <span style="color: #cc66cc;">0x51</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x46</span>, <span style="color: #808080;">// 0x32 '2'</span>
    <span style="color: #cc66cc;">0x21</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x45</span>, <span style="color: #cc66cc;">0x4B</span>, <span style="color: #cc66cc;">0x31</span>, <span style="color: #808080;">// 0x33 '3'</span>
    <span style="color: #cc66cc;">0x18</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x12</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x10</span>, <span style="color: #808080;">// 0x34 '4'</span>
    <span style="color: #cc66cc;">0x27</span>, <span style="color: #cc66cc;">0x45</span>, <span style="color: #cc66cc;">0x45</span>, <span style="color: #cc66cc;">0x45</span>, <span style="color: #cc66cc;">0x39</span>, <span style="color: #808080;">// 0x35 '5'</span>
    <span style="color: #cc66cc;">0x3C</span>, <span style="color: #cc66cc;">0x4A</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x30</span>, <span style="color: #808080;">// 0x36 '6'</span>
    <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x71</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x05</span>, <span style="color: #cc66cc;">0x03</span>, <span style="color: #808080;">// 0x37 '7'</span>
    <span style="color: #cc66cc;">0x36</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x36</span>, <span style="color: #808080;">// 0x38 '8'</span>
    <span style="color: #cc66cc;">0x06</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x29</span>, <span style="color: #cc66cc;">0x1E</span>, <span style="color: #808080;">// 0x39 '9'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x36</span>, <span style="color: #cc66cc;">0x36</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x3A ':'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x56</span>, <span style="color: #cc66cc;">0x36</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x3B ';'</span>
    <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x3C '&lt;'</span>
    <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #808080;">// 0x3D '='</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #808080;">// 0x3E '&gt;'</span>
    <span style="color: #cc66cc;">0x02</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x51</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x06</span>, <span style="color: #808080;">// 0x3F '?'</span>
    <span style="color: #cc66cc;">0x32</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x79</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x3E</span>, <span style="color: #808080;">// 0x40 '@'</span>
    <span style="color: #cc66cc;">0x7E</span>, <span style="color: #cc66cc;">0x11</span>, <span style="color: #cc66cc;">0x11</span>, <span style="color: #cc66cc;">0x11</span>, <span style="color: #cc66cc;">0x7E</span>, <span style="color: #808080;">// 0x41 'A'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x36</span>, <span style="color: #808080;">// 0x42 'B'</span>
    <span style="color: #cc66cc;">0x3E</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #808080;">// 0x43 'C'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #cc66cc;">0x1C</span>, <span style="color: #808080;">// 0x44 'D'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #808080;">// 0x45 'E'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #808080;">// 0x46 'F'</span>
    <span style="color: #cc66cc;">0x3E</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x7A</span>, <span style="color: #808080;">// 0x47 'G'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #808080;">// 0x48 'H'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x49 'I'</span>
    <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x3F</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #808080;">// 0x4A 'J'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x22</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #808080;">// 0x4B 'K'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #808080;">// 0x4C 'L'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x02</span>, <span style="color: #cc66cc;">0x0C</span>, <span style="color: #cc66cc;">0x02</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #808080;">// 0x4D 'M'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x10</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #808080;">// 0x4E 'N'</span>
    <span style="color: #cc66cc;">0x3E</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x3E</span>, <span style="color: #808080;">// 0x4F 'O'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x06</span>, <span style="color: #808080;">// 0x50 'P'</span>
    <span style="color: #cc66cc;">0x3E</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x51</span>, <span style="color: #cc66cc;">0x21</span>, <span style="color: #cc66cc;">0x5E</span>, <span style="color: #808080;">// 0x51 'Q'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x19</span>, <span style="color: #cc66cc;">0x29</span>, <span style="color: #cc66cc;">0x46</span>, <span style="color: #808080;">// 0x52 'R'</span>
    <span style="color: #cc66cc;">0x46</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x31</span>, <span style="color: #808080;">// 0x53 'S'</span>
    <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #808080;">// 0x54 'T'</span>
    <span style="color: #cc66cc;">0x3F</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x3F</span>, <span style="color: #808080;">// 0x55 'U'</span>
    <span style="color: #cc66cc;">0x1F</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x1F</span>, <span style="color: #808080;">// 0x56 'V'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x18</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #808080;">// 0x57 'W'</span>
    <span style="color: #cc66cc;">0x63</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x63</span>, <span style="color: #808080;">// 0x58 'X'</span>
    <span style="color: #cc66cc;">0x03</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x78</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x03</span>, <span style="color: #808080;">// 0x59 'Y'</span>
    <span style="color: #cc66cc;">0x61</span>, <span style="color: #cc66cc;">0x51</span>, <span style="color: #cc66cc;">0x49</span>, <span style="color: #cc66cc;">0x45</span>, <span style="color: #cc66cc;">0x43</span>, <span style="color: #808080;">// 0x5A 'Z'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x5B '['</span>
    <span style="color: #cc66cc;">0x02</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x10</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #808080;">// 0x5C '\'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x5D ']'</span>
    <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x02</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x02</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #808080;">// 0x5E '^'</span>
    <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #808080;">// 0x5F '_'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x02</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x60 '`'</span>
    <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x78</span>, <span style="color: #808080;">// 0x61 'a'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x48</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x38</span>, <span style="color: #808080;">// 0x62 'b'</span>
    <span style="color: #cc66cc;">0x38</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #808080;">// 0x63 'c'</span>
    <span style="color: #cc66cc;">0x38</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x48</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #808080;">// 0x64 'd'</span>
    <span style="color: #cc66cc;">0x38</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x18</span>, <span style="color: #808080;">// 0x65 'e'</span>
    <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x7E</span>, <span style="color: #cc66cc;">0x09</span>, <span style="color: #cc66cc;">0x01</span>, <span style="color: #cc66cc;">0x02</span>, <span style="color: #808080;">// 0x66 'f'</span>
    <span style="color: #cc66cc;">0x0C</span>, <span style="color: #cc66cc;">0x52</span>, <span style="color: #cc66cc;">0x52</span>, <span style="color: #cc66cc;">0x52</span>, <span style="color: #cc66cc;">0x3E</span>, <span style="color: #808080;">// 0x67 'g'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x78</span>, <span style="color: #808080;">// 0x68 'h'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x7D</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x69 'i'</span>
    <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x3D</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x6A 'j'</span>
    <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x10</span>, <span style="color: #cc66cc;">0x28</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x6B 'k'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x6C 'l'</span>
    <span style="color: #cc66cc;">0x7C</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x18</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x78</span>, <span style="color: #808080;">// 0x6D 'm'</span>
    <span style="color: #cc66cc;">0x7C</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x78</span>, <span style="color: #808080;">// 0x6E 'n'</span>
    <span style="color: #cc66cc;">0x38</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x38</span>, <span style="color: #808080;">// 0x6F 'o'</span>
    <span style="color: #cc66cc;">0x7C</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #808080;">// 0x70 'p'</span>
    <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x14</span>, <span style="color: #cc66cc;">0x18</span>, <span style="color: #cc66cc;">0x7C</span>, <span style="color: #808080;">// 0x71 'q'</span>
    <span style="color: #cc66cc;">0x7C</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #808080;">// 0x72 'r'</span>
    <span style="color: #cc66cc;">0x48</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #808080;">// 0x73 's'</span>
    <span style="color: #cc66cc;">0x04</span>, <span style="color: #cc66cc;">0x3F</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #808080;">// 0x74 't'</span>
    <span style="color: #cc66cc;">0x3C</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x7C</span>, <span style="color: #808080;">// 0x75 'u'</span>
    <span style="color: #cc66cc;">0x1C</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x20</span>, <span style="color: #cc66cc;">0x1C</span>, <span style="color: #808080;">// 0x76 'v'</span>
    <span style="color: #cc66cc;">0x3C</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x30</span>, <span style="color: #cc66cc;">0x40</span>, <span style="color: #cc66cc;">0x3C</span>, <span style="color: #808080;">// 0x77 'w'</span>
    <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x28</span>, <span style="color: #cc66cc;">0x10</span>, <span style="color: #cc66cc;">0x28</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #808080;">// 0x78 'x'</span>
    <span style="color: #cc66cc;">0x0C</span>, <span style="color: #cc66cc;">0x50</span>, <span style="color: #cc66cc;">0x50</span>, <span style="color: #cc66cc;">0x50</span>, <span style="color: #cc66cc;">0x3C</span>, <span style="color: #808080;">// 0x79 'y'</span>
    <span style="color: #cc66cc;">0x44</span>, <span style="color: #cc66cc;">0x64</span>, <span style="color: #cc66cc;">0x54</span>, <span style="color: #cc66cc;">0x4C</span>, <span style="color: #cc66cc;">0x44</span>, <span style="color: #808080;">// 0x7A 'z'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x36</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x7B '{'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x7F</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x7C '|'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x41</span>, <span style="color: #cc66cc;">0x36</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #808080;">// 0x7D '}'</span>
    <span style="color: #cc66cc;">0x10</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #cc66cc;">0x10</span>, <span style="color: #cc66cc;">0x08</span>, <span style="color: #808080;">// 0x7E '~'</span>
    <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>, <span style="color: #cc66cc;">0x00</span>  <span style="color: #808080;">// 0x7F DEL</span>
<span style="color: black;">&#125;</span>;
&nbsp;
<span style="color: #0000ff;">class</span> TFTDriver <span style="color: black;">&#123;</span>
<span style="color: #0000ff;">private</span>:
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">constexpr</span> <span style="color: #0000ff;">int</span> TFT_DC = <span style="color: #cc66cc;">15</span>;
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">constexpr</span> <span style="color: #0000ff;">int</span> TFT_RST = <span style="color: #cc66cc;">9</span>;
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">constexpr</span> <span style="color: #0000ff;">int</span> TFT_CS = <span style="color: #cc66cc;">10</span>;
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">constexpr</span> <span style="color: #0000ff;">int</span> TFT_SCK = <span style="color: #cc66cc;">12</span>;
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">constexpr</span> <span style="color: #0000ff;">int</span> TFT_MOSI = <span style="color: #cc66cc;">11</span>;
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">constexpr</span> <span style="color: #0000ff;">int</span> TFT_MISO = -<span style="color: #cc66cc;">1</span>;
&nbsp;
    <span style="color: #0000ff;">void</span> spi_write_cmd<span style="color: black;">&#40;</span><span style="color: #0000ff;">uint8_t</span> cmd<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;  
        SPI.write<span style="color: black;">&#40;</span>cmd<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> spi_write_byte<span style="color: black;">&#40;</span><span style="color: #0000ff;">uint8_t</span> data<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;  
        SPI.write<span style="color: black;">&#40;</span>data<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> spi_write_word<span style="color: black;">&#40;</span><span style="color: #0000ff;">uint16_t</span> data<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>; 
        SPI.write16<span style="color: black;">&#40;</span>data<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
  <span style="color: #0000ff;">public</span>:
    TFTDriver<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> init<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>TFT_RST, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
&nbsp;
        SPI.begin<span style="color: black;">&#40;</span>TFT_SCK, TFT_MISO, TFT_MOSI, TFT_CS<span style="color: black;">&#41;</span>;
        SPI.setFrequency<span style="color: black;">&#40;</span><span style="color: #cc66cc;">80000000</span><span style="color: black;">&#41;</span>;
	<span style="color: #808080;">//SPI.setFrequency(40000000);</span>
        SPI.setDataMode<span style="color: black;">&#40;</span>SPI_MODE0<span style="color: black;">&#41;</span>;
        SPI.setBitOrder<span style="color: black;">&#40;</span>MSBFIRST<span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_RST, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_RST, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_RST, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_SWRESET<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_SLPOUT<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_COLMOD<span style="color: black;">&#41;</span>;
        spi_write_byte<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0x55</span><span style="color: black;">&#41;</span>;  
&nbsp;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_MADCTL<span style="color: black;">&#41;</span>;
        <span style="color: #808080;">//spi_write_byte(0x60);  // Landscape: rotate 90&deg;        &lt;====== valeur d'origine </span>
	spi_write_byte<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0x70</span><span style="color: black;">&#41;</span>;  <span style="color: #808080;">// &lt;==== test </span>
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_CASET<span style="color: black;">&#41;</span>;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_RASET<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: black;">&#41;</span>;
&nbsp;
        fillScreen<span style="color: black;">&#40;</span>TFT_BLACK<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_DISPON<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_INVOFF<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> fillScreen<span style="color: black;">&#40;</span><span style="color: #0000ff;">uint16_t</span> color<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_CASET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>ST7789_COL_OFFSET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>ST7789_COL_OFFSET + DISPLAY_WIDTH - <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_RASET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>DISPLAY_HEIGHT - <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_RAMWR<span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;  
&nbsp;
        <span style="color: #0000ff;">uint32_t</span> pixel_count = <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span><span style="color: black;">&#41;</span>DISPLAY_WIDTH * DISPLAY_HEIGHT;
        <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">uint8_t</span> buffer<span style="color: black;">&#91;</span><span style="color: #cc66cc;">512</span><span style="color: black;">&#93;</span>;  
&nbsp;
        <span style="color: #0000ff;">uint8_t</span> high = color &gt;&gt; <span style="color: #cc66cc;">8</span>;
        <span style="color: #0000ff;">uint8_t</span> low = color &amp; <span style="color: #cc66cc;">0xFF</span>;
        <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> i = <span style="color: #cc66cc;">0</span>; i &lt; <span style="color: #cc66cc;">512</span>; i += <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            buffer<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> = high;
            buffer<span style="color: black;">&#91;</span>i + <span style="color: #cc66cc;">1</span><span style="color: black;">&#93;</span> = low;
        <span style="color: black;">&#125;</span>
&nbsp;
        <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span> i = <span style="color: #cc66cc;">0</span>; i &lt; pixel_count; i += <span style="color: #cc66cc;">256</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            <span style="color: #0000ff;">uint32_t</span> chunk_size = <span style="color: black;">&#40;</span>pixel_count - i &gt; <span style="color: #cc66cc;">256</span><span style="color: black;">&#41;</span> ? <span style="color: #cc66cc;">256</span> : <span style="color: black;">&#40;</span>pixel_count - i<span style="color: black;">&#41;</span>;
            SPI.writeBytes<span style="color: black;">&#40;</span>buffer, chunk_size * <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        <span style="color: black;">&#125;</span>
&nbsp;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> pushImage<span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">int</span> y, <span style="color: #0000ff;">int</span> w, <span style="color: #0000ff;">int</span> h, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint16_t</span> *data, <span style="color: #0000ff;">bool</span> preswapped = <span style="color: #0080ff;">false</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_CASET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>x + ST7789_COL_OFFSET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>x + w - <span style="color: #cc66cc;">1</span> + ST7789_COL_OFFSET<span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_RASET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>y<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>y + h - <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_RAMWR<span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;  
&nbsp;
        <span style="color: #0000ff;">uint32_t</span> pixel_count = <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span><span style="color: black;">&#41;</span>w * h;
&nbsp;
        <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">uint8_t</span> buffer<span style="color: black;">&#91;</span><span style="color: #cc66cc;">1024</span><span style="color: black;">&#93;</span>;  
&nbsp;
        <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span> i = <span style="color: #cc66cc;">0</span>; i &lt; pixel_count; i += <span style="color: #cc66cc;">512</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            <span style="color: #0000ff;">uint32_t</span> chunk_size = <span style="color: black;">&#40;</span>pixel_count - i &gt; <span style="color: #cc66cc;">512</span><span style="color: black;">&#41;</span> ? <span style="color: #cc66cc;">512</span> : <span style="color: black;">&#40;</span>pixel_count - i<span style="color: black;">&#41;</span>;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>preswapped<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span> 
                SPI.writeBytes<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint8_t</span> *<span style="color: black;">&#41;</span>&amp;data<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>, chunk_size * <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span> j = <span style="color: #cc66cc;">0</span>; j &lt; chunk_size; j++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
                    <span style="color: #0000ff;">uint16_t</span> pixel = data<span style="color: black;">&#91;</span>i + j<span style="color: black;">&#93;</span>;
                    buffer<span style="color: black;">&#91;</span>j * <span style="color: #cc66cc;">2</span><span style="color: black;">&#93;</span> = pixel &gt;&gt; <span style="color: #cc66cc;">8</span>;      
                    buffer<span style="color: black;">&#91;</span>j * <span style="color: #cc66cc;">2</span> + <span style="color: #cc66cc;">1</span><span style="color: black;">&#93;</span> = pixel &amp; <span style="color: #cc66cc;">0xFF</span>;  
                <span style="color: black;">&#125;</span>
                SPI.writeBytes<span style="color: black;">&#40;</span>buffer, chunk_size * <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
&nbsp;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span> 
    <span style="color: #0000ff;">void</span> drawChar<span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">int</span> y, <span style="color: #0000ff;">char</span> c, <span style="color: #0000ff;">uint16_t</span> fg, <span style="color: #0000ff;">uint16_t</span> bg, <span style="color: #0000ff;">int</span> scale = <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>scale &lt; <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            scale = <span style="color: #cc66cc;">1</span>;
        <span style="color: black;">&#125;</span>
&nbsp;
        <span style="color: #0000ff;">uint8_t</span> idx = <span style="color: black;">&#40;</span>c &gt;= <span style="color: #cc66cc;">0x20</span> &amp;&amp; c &lt;= <span style="color: #cc66cc;">0x7F</span><span style="color: black;">&#41;</span> ? <span style="color: #0000ff;">static_cast</span>&lt;<span style="color: #0000ff;">uint8_t</span>&gt;<span style="color: black;">&#40;</span>c - <span style="color: #cc66cc;">0x20</span><span style="color: black;">&#41;</span> : <span style="color: #0000ff;">static_cast</span>&lt;<span style="color: #0000ff;">uint8_t</span>&gt;<span style="color: black;">&#40;</span><span style="color: #FF0000;">'?'</span> - <span style="color: #cc66cc;">0x20</span><span style="color: black;">&#41;</span>;
        <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint8_t</span> *glyph = &amp;font_5x7<span style="color: black;">&#91;</span>idx * <span style="color: #cc66cc;">5</span><span style="color: black;">&#93;</span>;
&nbsp;
        <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> cy = <span style="color: #cc66cc;">0</span>; cy &lt; <span style="color: #cc66cc;">7</span>; cy++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> cx = <span style="color: #cc66cc;">0</span>; cx &lt; <span style="color: #cc66cc;">5</span>; cx++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
                <span style="color: #0000ff;">uint8_t</span> line = pgm_read_byte<span style="color: black;">&#40;</span>&amp;glyph<span style="color: black;">&#91;</span>cx<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>;
                <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>line &amp; <span style="color: black;">&#40;</span><span style="color: #cc66cc;">1</span> &lt;&lt; cy<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
                    drawFilledRect<span style="color: black;">&#40;</span>x + cx * scale, y + cy * scale, scale, scale, fg<span style="color: black;">&#41;</span>;
                <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                    drawFilledRect<span style="color: black;">&#40;</span>x + cx * scale, y + cy * scale, scale, scale, bg<span style="color: black;">&#41;</span>;
                <span style="color: black;">&#125;</span>
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> drawFilledRect<span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">int</span> y, <span style="color: #0000ff;">int</span> w, <span style="color: #0000ff;">int</span> h, <span style="color: #0000ff;">uint16_t</span> color<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>w &lt;= <span style="color: #cc66cc;">0</span> || h &lt;= <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            <span style="color: #0000ff;">return</span>;
        <span style="color: black;">&#125;</span>
&nbsp;
        <span style="color: #0000ff;">int</span> x0 = <span style="color: #0080ff;">max</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, x<span style="color: black;">&#41;</span>;
        <span style="color: #0000ff;">int</span> y0 = <span style="color: #0080ff;">max</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, y<span style="color: black;">&#41;</span>;
        <span style="color: #0000ff;">int</span> x1 = <span style="color: #0080ff;">min</span><span style="color: black;">&#40;</span>DISPLAY_WIDTH - <span style="color: #cc66cc;">1</span>, x + w - <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span>;
        <span style="color: #0000ff;">int</span> y1 = <span style="color: #0080ff;">min</span><span style="color: black;">&#40;</span>DISPLAY_HEIGHT - <span style="color: #cc66cc;">1</span>, y + h - <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>x1 &lt; x0 || y1 &lt; y0<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            <span style="color: #0000ff;">return</span>;
        <span style="color: black;">&#125;</span>
&nbsp;
        <span style="color: #0000ff;">int</span> clipped_w = x1 - x0 + <span style="color: #cc66cc;">1</span>;
        <span style="color: #0000ff;">int</span> clipped_h = y1 - y0 + <span style="color: #cc66cc;">1</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_CASET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>x0 + ST7789_COL_OFFSET<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>x1 + ST7789_COL_OFFSET<span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_RASET<span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_word<span style="color: black;">&#40;</span>y0<span style="color: black;">&#41;</span>;
        spi_write_word<span style="color: black;">&#40;</span>y1<span style="color: black;">&#41;</span>;
&nbsp;
        spi_write_cmd<span style="color: black;">&#40;</span>TFT_RAMWR<span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_DC, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">uint32_t</span> pixels = <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span><span style="color: black;">&#41;</span>clipped_w * clipped_h;
&nbsp;
        <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span> i = <span style="color: #cc66cc;">0</span>; i &lt; pixels; i++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
             SPI.write16<span style="color: black;">&#40;</span>color<span style="color: black;">&#41;</span>;
        <span style="color: black;">&#125;</span>
&nbsp;
         <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>TFT_CS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> drawNumber<span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">int</span> y, <span style="color: #0000ff;">int</span> num, <span style="color: #0000ff;">uint16_t</span> fg, <span style="color: #0000ff;">uint16_t</span> bg, <span style="color: #0000ff;">int</span> scale = <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>num &lt; <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span> num = <span style="color: #cc66cc;">0</span>;
        <span style="color: #0000ff;">char</span> buf<span style="color: black;">&#91;</span><span style="color: #cc66cc;">10</span><span style="color: black;">&#93;</span>;
        sprintf<span style="color: black;">&#40;</span>buf, <span style="color: #FF0000;">&quot;%d&quot;</span>, num<span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">int</span> px = x;
        <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> i = <span style="color: #cc66cc;">0</span>; buf<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> != <span style="color: #FF0000;">'</span><span style="color: #800000;">\0</span><span style="color: #FF0000;">'</span>; i++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            drawChar<span style="color: black;">&#40;</span>px, y, buf<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>, fg, bg, scale<span style="color: black;">&#41;</span>;
            px += <span style="color: black;">&#40;</span><span style="color: #cc66cc;">5</span> + <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> * scale; 
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #0000ff;">void</span> drawString<span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> x, <span style="color: #0000ff;">int</span> y, <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> *str, <span style="color: #0000ff;">uint16_t</span> fg, <span style="color: #0000ff;">uint16_t</span> bg, <span style="color: #0000ff;">int</span> scale = <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> px = x;
        <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> i = <span style="color: #cc66cc;">0</span>; str<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span> != <span style="color: #FF0000;">'</span><span style="color: #800000;">\0</span><span style="color: #FF0000;">'</span>; i++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            drawChar<span style="color: black;">&#40;</span>px, y, str<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>, fg, bg, scale<span style="color: black;">&#41;</span>;
            px += <span style="color: black;">&#40;</span><span style="color: #cc66cc;">5</span> + <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> * scale;  
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
&nbsp;
        <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">uint16_t</span> color565<span style="color: black;">&#40;</span><span style="color: #0000ff;">uint8_t</span> r, <span style="color: #0000ff;">uint8_t</span> g, <span style="color: #0000ff;">uint8_t</span> b<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">return</span> <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>r &amp; <span style="color: #cc66cc;">0xF8</span><span style="color: black;">&#41;</span> &lt;&lt; <span style="color: #cc66cc;">8</span><span style="color: black;">&#41;</span> | <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>g &amp; <span style="color: #cc66cc;">0xFC</span><span style="color: black;">&#41;</span> &lt;&lt; <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span> | <span style="color: black;">&#40;</span>b &gt;&gt; <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>;
<span style="color: #339933;">#endif</span></pre></td></tr></table></code><hr />
</div>pour l'instant j'ai procédé aux modifications de la valeur 0x60 par d'autres <br />
comme par ex 0x08 , 0x48, 0x88 et 0xC8 mais si l'écran redevient lisible, il reste en format &quot;portrait&quot; et je ne suis pas parvenu à le mettre en &quot;paysage&quot;   <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
spi_write_cmd<span style="color: black;">&#40;</span>TFT_MADCTL<span style="color: black;">&#41;</span>;
        <span style="color: #808080;">//spi_write_byte(0x60);  // Landscape: rotate 90&deg;</span>
	spi_write_byte<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0x70</span><span style="color: black;">&#41;</span>;  <span style="color: #808080;">//</span>
        <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: black;">&#41;</span>;</pre></td></tr></table></code><hr />
</div><br />
Merci donc par avance pour toute l'aide que vous pourrez me donner   <br />
pascal</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p676430d1779292862/general-developpement/programmation-systeme/embarque/arduino/ili9341-affichage-inverse/20260520_174825-1.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
			<ul>
			<li>
	<img class="inlineimg" src="https://forum.developpez.be/images/attach/pdf.gif" alt="Type de fichier : pdf" />
	<a href="https://www.developpez.net/forums/attachments/p676431d1779293406/general-developpement/programmation-systeme/embarque/arduino/ili9341-affichage-inverse/pages-ili9341.pdf/">Pages de ILI9341.pdf</a> 
(115,8 Ko)
</li>
			</ul>
			</fieldset>
	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>cobra38</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183809/general-developpement/programmation-systeme/embarque/arduino/ili9341-affichage-inverse/</guid>
		</item>
		<item>
			<title>Entrées analogiques arduino uno</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183518&amp;goto=newpost</link>
			<pubDate>Fri, 01 May 2026 07:56:15 GMT</pubDate>
			<description>Bonjour , une question de...</description>
			<content:encoded><![CDATA[<div>Bonjour , une question de base à laquelle je ne trouve pas de réponse. Les broches pwm 3, 5, 6, 10 et 11 de l'arduino uno peuvent-t-elles être utilisées comme entrée analogique ? <br />
Merci</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>Sansvingt</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183518/general-developpement/programmation-systeme/embarque/arduino/entrees-analogiques-arduino-uno/</guid>
		</item>
		<item>
			<title>Module LTE pour connecter arduino</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183438&amp;goto=newpost</link>
			<pubDate>Mon, 27 Apr 2026 16:37:39 GMT</pubDate>
			<description>Bonjour,  
 
Est ce que...</description>
			<content:encoded><![CDATA[<div>Bonjour, <br />
<br />
Est ce que quelqu'un sur le forum a deja utilisé ce module LTE pour envoyer des sms avec un Arduino ; ou envoyer des datas..? <br />
<br />
Module Quzenn LTE-FDD-1800MHz<br />
<br />
Ce module se présente sous la forme d'un petit PCB.. <br />
<br />
Merci mour tout regex</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>vdaanen</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183438/general-developpement/programmation-systeme/embarque/arduino/module-lte-connecter-arduino/</guid>
		</item>
		<item>
			<title><![CDATA[[Arduino ESP32] Economie d'énergie ESP32C3 Super Mini]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183373&amp;goto=newpost</link>
			<pubDate>Thu, 23 Apr 2026 08:39:21 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
J'utilise un...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
J'utilise un ESP32C SuperMini qui mesure une température à l’extérieure<br />
puis j'envoie cette mesure via MQTT toutes les xminutes <br />
je recherche le moyen de réduire le plus possible la consommation de l'objet <br />
mais malgré mes efforts la mesure que j'ai effectuée me donne au repos  =&gt; 4mA (?)<br />
et 150µA sans alimenter l'ESP32C3<br />
<br />
Dans le programme ci-dessous je pense avoir fait le maximum pour réduire en deep-sleep la consommation de l'ESP32C3  <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br />199<br />200<br />201<br />202<br />203<br />204<br />205<br />206<br />207<br />208<br />209<br />210<br />211<br />212<br />213<br />214<br />215<br />216<br />217<br />218<br />219<br />220<br />221<br />222<br />223<br />224<br />225<br />226<br />227<br />228<br />229<br />230<br />231<br />232<br />233<br />234<br />235<br />236<br />237<br />238<br />239<br />240<br />241<br />242<br />243<br />244<br />245<br />246<br />247<br />248<br />249<br />250<br />251<br />252<br />253<br />254<br />255<br />256<br />257<br />258<br />259<br />260<br />261<br />262<br />263<br />264<br />265<br />266<br />267<br />268<br />269<br />270<br />271<br />272<br />273<br />274<br />275<br />276<br />277<br />278<br />279<br />280<br />281<br />282<br />283<br />284<br />285<br />286<br />287<br />288<br />289<br />290<br />291<br />292<br />293<br />294<br />295<br />296<br />297<br />298<br />299<br />300<br />301<br />302<br />303<br />304<br />305<br />306<br />307<br />308<br />309<br />310<br />311<br />312<br />313<br />314<br />315<br />316<br />317<br />318<br />319<br />320<br />321<br />322<br />323<br />324<br />325<br />326<br />327<br />328<br />329<br />330<br />331<br />332<br />333<br />334<br />335<br />336<br />337<br />338<br />339<br />340<br />341<br />342<br />343<br />344<br />345<br />346<br />347<br />348<br />349<br />350<br />351<br />352<br />353<br />354<br />355<br />356<br />357<br />358<br />359<br />360<br />361<br />362<br />363<br />364<br />365<br />366<br />367<br />368<br />369<br />370<br />371<br />372<br />373<br />374<br />375<br />376<br />377<br />378<br />379<br />380<br />381<br />382<br />383<br />384<br />385<br />386<br />387<br />388<br />389<br />390<br />391<br />392<br />393<br />394<br />395<br />396<br />397<br />398<br />399<br />400<br />401<br />402<br />403<br />404<br />405<br />406<br />407<br />408<br />409<br />410<br />411<br />412<br />413<br />414<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #808080; font-weight: bold;">/***************************************</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ESP32C3 Mini</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; adresse IP:192.168.1.150</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Version : Test_V20260422a</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;_____</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|----| &nbsp; &nbsp; |-----|</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp;|_____| &nbsp; &nbsp; |</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GPIO5 &nbsp; | 5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 5V | </span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; E-SDA &nbsp;GPIO6 &nbsp; | 6 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;G | </span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp;CS &nbsp;GPIO7 &nbsp; | 7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3V3 | &nbsp; &nbsp;</span>
<span style="color: #808080; font-weight: bold;">&nbsp; AHT-SDA &nbsp;GPIO8 &nbsp; | 8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;4 | GPIO4 &nbsp; &nbsp; E-SCL</span>
<span style="color: #808080; font-weight: bold;">&nbsp; AHT-SCL &nbsp;GPIO9 &nbsp; | 9 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3 | GPIO3 &nbsp; &nbsp; BUSY</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp;DS18B20 GPIO10 &nbsp;| 10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2 | GPIO2 &nbsp; &nbsp; RES</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GPIO20 &nbsp;| 20 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 | GPIO1 &nbsp; &nbsp; DC</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GPIO21 &nbsp;| 21 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 | GPIO0 &nbsp; &nbsp; VBat</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\------------- --/</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span>
<span style="color: #808080; font-weight: bold;">*************************************/</span>
&nbsp;
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;WiFi.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;Wire.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;ArduinoOTA.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;Arduino.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;PubSubClient.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &quot;BitmapGraphics.h&quot;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &quot;Batteriefaible.h&quot;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;functional&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;Wire.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;AHT20.h&gt;</span>  <span style="color: #808080;">//&lt;=======================</span>
&nbsp;
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;OneWire.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;DallasTemperature.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &quot;config.h&quot;</span>
&nbsp;
&nbsp;
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;MQTT.h&gt;</span>
&nbsp;
<span style="color: #0000ff;">char</span> server<span style="color: black;">&#91;</span><span style="color: black;">&#93;</span> = <span style="color: #FF0000;">&quot;mqtt3.thingspeak.com&quot;</span>;
&nbsp;
<span style="color: #808080;">//  E-paper *********************************************</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;GxEPD2_BW.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;GxEPD2_GFX.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;Fonts/FreeMonoBold9pt7b.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &quot;FreeSerifBold30pt7b.h&quot;</span>
<span style="color: #808080;">// 2.9&quot; EPD Module</span>
<span style="color: #808080;">//#define ENABLE_GxEPD2_display 0</span>
<span style="color: #339933;">#define SCREEN_WIDTH   296</span>
<span style="color: #339933;">#define SCREEN_HEIGHT  128</span>
<span style="color: #339933;">#define Large 7    // For best results use odd numbers</span>
<span style="color: #339933;">#define Small 3    // For best results use odd numbers</span>
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint8_t</span> EPD_SCL = <span style="color: #cc66cc;">4</span>; <span style="color: #808080;">// Master-In Slave-Out not used, as no data from display</span>
<span style="color: #0000ff;">static</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint8_t</span> EPD_SDA = <span style="color: #cc66cc;">6</span>; <span style="color: #808080;">// to EPD DIN</span>
GxEPD2_BW&lt;GxEPD2_290_BS, GxEPD2_290_BS::HEIGHT&gt; display<span style="color: black;">&#40;</span>GxEPD2_290_BS<span style="color: black;">&#40;</span><span style="color: #808080;">/*CS=7*/</span> SS, <span style="color: #808080;">/*DC=*/</span> <span style="color: #cc66cc;">1</span>, <span style="color: #808080;">/*RES=*/</span> <span style="color: #cc66cc;">2</span>, <span style="color: #808080;">/*BUSY=*/</span> <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// DEPG0290BS 128x296, SSD1680</span>
&nbsp;
<span style="color: #808080;">//*******************************************************</span>
<span style="color: #339933;">#define aht10 0x38 //adresse 0x38 ou 0x39</span>
<span style="color: #808080;">//*******************************************************</span>
<span style="color: #339933;">#if DEBUG</span>
<span style="color: #339933;">#define D_SerialBegin(...) Serial.begin(__VA_ARGS__)</span>
<span style="color: #339933;">#define D_print(...) Serial.print(__VA_ARGS__)</span>
<span style="color: #339933;">#define D_write(...) Serial.write(__VA_ARGS__)</span>
<span style="color: #339933;">#define D_println(...) Serial.println(__VA_ARGS__)</span>
<span style="color: #339933;">#define D_printf(...) Serial.printf(__VA_ARGS__)</span>
<span style="color: #339933;">#define D_flush(...) Serial.flush(__VA_ARGS__)</span>
<span style="color: #339933;">#define D_timestamp() Serial.printf(&quot;[%lu] &quot;, millis())</span>
<span style="color: #339933;">#else</span>
<span style="color: #339933;">#define D_SerialBegin(bauds)</span>
<span style="color: #339933;">#define D_print(...)</span>
<span style="color: #339933;">#define D_write(...)</span>
<span style="color: #339933;">#define D_println(...)</span>
<span style="color: #339933;">#define D_printf(...)</span>
<span style="color: #339933;">#define D_flush(...)</span>
<span style="color: #339933;">#define D_timestamp()</span>
<span style="color: #339933;">#endif</span>
&nbsp;
<span style="color: #339933;">#ifndef DEBUG</span>
<span style="color: #339933;">#define DEBUG 0 /**&lt; R&eacute;gler &agrave; 1 pour d&eacute;boguer en s&eacute;rie */</span>
<span style="color: #339933;">#endif</span>
&nbsp;
<span style="color: #808080;">//*******************************************************</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">byte</span> oneWireBus = <span style="color: #cc66cc;">10</span>;  <span style="color: #808080;">// DS18B20 pin used for Temperature sensor bus GIPO10</span>
<span style="color: #0000ff;">float</span> humidity;
<span style="color: #0000ff;">float</span> temperature;
<span style="color: #0000ff;">char</span> temp<span style="color: black;">&#91;</span><span style="color: #cc66cc;">10</span><span style="color: black;">&#93;</span>;
<span style="color: #0000ff;">char</span> bat<span style="color: black;">&#91;</span><span style="color: #cc66cc;">10</span><span style="color: black;">&#93;</span>;
<span style="color: #0000ff;">float</span> piscine;
<span style="color: #0000ff;">const</span> gpio_num_t vbatPin = GPIO_NUM_0;
<span style="color: #0000ff;">uint_fast16_t</span> Vbatt ;
<span style="color: #0000ff;">float</span> batteryVoltage;
<span style="color: #0000ff;">int8_t</span> batteryPercentage;
<span style="color: #0000ff;">uint_fast16_t</span> adcValue;
<span style="color: #0000ff;">char</span> error<span style="color: black;">&#91;</span><span style="color: #cc66cc;">15</span><span style="color: black;">&#93;</span>;
<span style="color: #0000ff;">uint8_t</span> wifiRetries = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> isWifiStarted = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">bool</span> isWifiReady = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">bool</span> isRegularWifi = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">bool</span> isMQTTStarted = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">bool</span> isMQTTReady = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">bool</span> isRtcValid = <span style="color: #0080ff;">false</span>;
&nbsp;
&nbsp;
<span style="color: #808080;">//*********** Init **************************</span>
WiFiClient  wifiClient;
WiFiServer serverAP<span style="color: black;">&#40;</span><span style="color: #cc66cc;">80</span><span style="color: black;">&#41;</span>;
PubSubClient pubSubclient<span style="color: black;">&#40;</span>wifiClient<span style="color: black;">&#41;</span>;
OneWire oneWire<span style="color: black;">&#40;</span>oneWireBus<span style="color: black;">&#41;</span>;
DallasTemperature sensors<span style="color: black;">&#40;</span>&amp;oneWire<span style="color: black;">&#41;</span>;
&nbsp;
<span style="color: #808080;">//****    AHT20 ******************************</span>
AHT20 aht; <span style="color: #808080;">//&lt;=========================</span>
<span style="color: #0000ff;">bool</span> status_aht = <span style="color: #0080ff;">false</span>;
&nbsp;
&nbsp;
<span style="color: #808080;">//******************************************************** </span>
<span style="color: #0000ff;">struct</span> __attribute__<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>packed, aligned<span style="color: black;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> WiFiRapide <span style="color: black;">&#123;</span>
  <span style="color: #0000ff;">uint8_t</span> channel;
  <span style="color: #0000ff;">uint8_t</span> ap_mac<span style="color: black;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: black;">&#93;</span>;
  <span style="color: #0000ff;">uint32_t</span> crc32;
<span style="color: black;">&#125;</span>;
&nbsp;
RTC_DATA_ATTR WiFiRapide rtcData = <span style="color: black;">&#123;</span><span style="color: #cc66cc;">0</span>, <span style="color: black;">&#123;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#125;</span>, <span style="color: #cc66cc;">0xDEADBEEF</span><span style="color: black;">&#125;</span>; 
<span style="color: #0000ff;">uint32_t</span> calculateCRC32MPGE2<span style="color: black;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint8_t</span> *data, <span style="color: #0000ff;">size_t</span> length<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0000ff;">uint32_t</span> crc = <span style="color: #cc66cc;">0xffffffff</span>;
  <span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>length--<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    <span style="color: #0000ff;">uint8_t</span> c = *data++;
    <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span> i = <span style="color: #cc66cc;">0x80</span>; i &gt; <span style="color: #cc66cc;">0</span>; i &gt;&gt;= <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
      <span style="color: #0000ff;">bool</span> <span style="color: #0080ff;">bit</span> = crc &amp; <span style="color: #cc66cc;">0x80000000</span>;
      <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>c &amp; i<span style="color: black;">&#41;</span> <span style="color: #0080ff;">bit</span> = !<span style="color: #0080ff;">bit</span>;
      crc &lt;&lt;= <span style="color: #cc66cc;">1</span>;
      <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span><span style="color: #0080ff;">bit</span><span style="color: black;">&#41;</span> crc ^= <span style="color: #cc66cc;">0x04c11db7</span>;
    <span style="color: black;">&#125;</span>
  <span style="color: black;">&#125;</span>
  <span style="color: #0000ff;">return</span> crc;
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> printByte<span style="color: black;">&#40;</span><span style="color: #0000ff;">uint8_t</span> b<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;0x&quot;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>b &lt; <span style="color: #cc66cc;">0x10</span><span style="color: black;">&#41;</span> <span style="color: #0080ff;">Serial</span>.write<span style="color: black;">&#40;</span><span style="color: #FF0000;">'0'</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span>b, HEX<span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> printStructure<span style="color: black;">&#40;</span>WiFiRapide&amp; s<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;channel = &quot;</span><span style="color: black;">&#41;</span>; <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>s.channel<span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;ap_mac[] = &quot;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">for</span> <span style="color: black;">&#40;</span><span style="color: #0000ff;">uint8_t</span> i = <span style="color: #cc66cc;">0</span>; i &lt; <span style="color: #0000ff;">sizeof</span><span style="color: black;">&#40;</span>s.ap_mac<span style="color: black;">&#41;</span>; i++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    printByte<span style="color: black;">&#40;</span>s.ap_mac<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">Serial</span>.write<span style="color: black;">&#40;</span><span style="color: #FF0000;">' '</span><span style="color: black;">&#41;</span>;
  <span style="color: black;">&#125;</span>
  <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;CRC32-MPEG2 = 0x&quot;</span><span style="color: black;">&#41;</span>; <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>s.crc32, HEX<span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> startMillis;
&nbsp;
<span style="color: #808080;">//*****************************************</span>
<span style="color: #808080;">// SETUP</span>
<span style="color: #808080;">//****************************************</span>
&nbsp;
<span style="color: #0000ff;">void</span> setup<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
<span style="color: black;">&#123;</span>  	
	<span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// il sert surtout au premier boot pour qu'on le voit sur le moniteur s&eacute;rie</span>
	D_SerialBegin<span style="color: black;">&#40;</span><span style="color: #cc66cc;">115200</span><span style="color: black;">&#41;</span>;
	<span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>!<span style="color: #0080ff;">Serial</span><span style="color: black;">&#41;</span> yield<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
	<span style="color: #808080;">//Serial.print(&quot;Taille de la structure = &quot;); Serial.print(sizeof rtcData); Serial.println(&quot; octets.&quot;);</span>
&nbsp;
	esp_reset_reason_t resetReason = esp_reset_reason<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
	<span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>resetReason != ESP_RST_DEEPSLEEP<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
		<span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Premier boot&quot;</span><span style="color: black;">&#41;</span>;
	<span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
		<span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Reboot sur timer&quot;</span><span style="color: black;">&#41;</span>;
	<span style="color: black;">&#125;</span>
&nbsp;
	<span style="color: #808080;">// on v&eacute;rifie si ce qu'on avait dans la m&eacute;moire &eacute;tait correct (ce ne sera pas le cas au boot)</span>
	<span style="color: #0000ff;">uint32_t</span> crcAttendu = calculateCRC32MPGE2<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #0000ff;">uint8_t</span>*<span style="color: black;">&#41;</span>&amp;rtcData, <span style="color: #0000ff;">sizeof</span> rtcData - <span style="color: #0000ff;">sizeof</span><span style="color: black;">&#40;</span><span style="color: #0000ff;">uint32_t</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
	<span style="color: #0000ff;">bool</span> isRtcValid = <span style="color: black;">&#40;</span>rtcData.crc32 == crcAttendu<span style="color: black;">&#41;</span>;
&nbsp;
	<span style="color: #808080;">//Serial.print(&quot;crcAttendu = 0x&quot;); Serial.println(crcAttendu, HEX);</span>
	<span style="color: #808080;">//Serial.print(&quot;crc en m&eacute;moire RTC = 0x&quot;); Serial.println(rtcData.crc32, HEX);</span>
&nbsp;
&nbsp;
    <span style="color: #808080;">//**** INIT Ecran E-paper**********</span>
    display.init<span style="color: black;">&#40;</span><span style="color: #cc66cc;">115200</span>,<span style="color: #0080ff;">true</span>,<span style="color: #cc66cc;">50</span>,<span style="color: #0080ff;">false</span><span style="color: black;">&#41;</span>;
    display.setRotation<span style="color: black;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
    display.setFullWindow<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
    display.fillScreen<span style="color: black;">&#40;</span>GxEPD_BLACK<span style="color: black;">&#41;</span>;
    display.drawBitmap<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, gImage_gui, <span style="color: #cc66cc;">296</span>, <span style="color: #cc66cc;">128</span>, GxEPD_WHITE<span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>display.nextPage<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>; 
    <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: black;">&#41;</span> ;     
&nbsp;
    <span style="color: #808080;">//********** VBAT ********************</span>
	  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #0080ff;">INPUT</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Pin Entree VBAT</span>
    <span style="color: #808080;">// *** DS18B20 Temperature sensor ****</span>
    sensors.begin<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; 
    <span style="color: #808080;">// **** AHT20 *************</span>
     Wire.begin<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>aht.begin<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> == <span style="color: #0080ff;">false</span><span style="color: black;">&#41;</span>
    <span style="color: black;">&#123;</span>
      <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;AHT20 not detected. Please check wiring. Freezing.&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: #0000ff;">while</span><span style="color: black;">&#40;</span><span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #808080;">// Wait minimum sampling period</span>
    startMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">//---------------------------------------------</span>
    <span style="color: #808080;">// Step 0:</span>
    <span style="color: #808080;">// Lecture DS18B20</span>
    <span style="color: #808080;">//---------------------------------------------</span>
&nbsp;
       sensors.requestTemperatures<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; 
       <span style="color: #0000ff;">float</span> raw_temp = sensors.getTempCByIndex<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;
       piscine = sensors.getTempCByIndex<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;
       <span style="color: #0080ff;">Serial</span>.printf<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Temperature = %8.4f&deg;C<span style="color: #800000;">\r</span><span style="color: #800000;">\n</span>&quot;</span>, <span style="color: black;">&#40;</span><span style="color: #0000ff;">float</span><span style="color: black;">&#41;</span>raw_temp<span style="color: black;">&#41;</span>;
       snprintf<span style="color: black;">&#40;</span>temp, <span style="color: #0000ff;">sizeof</span> temp, <span style="color: #FF0000;">&quot;%.1f&quot;</span>,<span style="color: black;">&#40;</span><span style="color: #0000ff;">float</span><span style="color: black;">&#41;</span>raw_temp<span style="color: black;">&#41;</span>;
       updatePiscine<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">//---------------------------------------------</span>
    <span style="color: #808080;">// Step 1: Lecture de la temp&eacute;rature et de l'humidit&eacute; &agrave; partir de AHT20</span>
    <span style="color: #808080;">//---------------------------------------------</span>
&nbsp;
        temperature = aht.getTemperature<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
        humidity = aht.getHumidity<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
        D_timestamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
        D_println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;AHT20 Reading ready&quot;</span><span style="color: black;">&#41;</span>;
        D_timestamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
        D_printf<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Temperature: %.1f, Humidity: %.1f &quot;</span>, temperature, humidity<span style="color: black;">&#41;</span>;
        D_println<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">//---------------------------------------------</span>
    <span style="color: #808080;">// Step 2: Lecture Batterie ADC GPIO0</span>
    <span style="color: #808080;">//---------------------------------------------</span>
&nbsp;
        adcValue =  analogReadMilliVolts<span style="color: black;">&#40;</span>vbatPin<span style="color: black;">&#41;</span>; <span style="color: #808080;">//&lt;============</span>
        <span style="color: #0000ff;">uint_fast16_t</span> Vbatt = <span style="color: #cc66cc;">0</span>;
        <span style="color: #0000ff;">for</span><span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> i = <span style="color: #cc66cc;">0</span>; i &lt; <span style="color: #cc66cc;">16</span>; i++<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
         Vbatt = Vbatt + adcValue ;<span style="color: #808080;">// ADC with correction   </span>
        <span style="color: black;">&#125;</span>
        batteryVoltage = <span style="color: #cc66cc;">2</span> * Vbatt / <span style="color: #cc66cc;">16</span> / <span style="color: #cc66cc;">1000.00</span>;     <span style="color: #808080;">// attenuation ratio 1/2, mV --&gt; V</span>
        batteryPercentage = <span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>batteryVoltage-<span style="color: #cc66cc;">3.20</span><span style="color: black;">&#41;</span>*<span style="color: #cc66cc;">100.0</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// </span>
&nbsp;
&nbsp;
        <span style="color: #0000ff;">int</span> tensionBrute = adcValue ; 
        <span style="color: #0000ff;">constexpr</span> <span style="color: #0000ff;">int</span> seuilTensionBruteBasse = <span style="color: #cc66cc;">1600</span>; <span style="color: #808080;">// 3.2V ==&gt; calcul&eacute; par (3.2V / 2) </span>
        <span style="color: #0000ff;">if</span>  <span style="color: black;">&#40;</span>tensionBrute &lt;= seuilTensionBruteBasse<span style="color: black;">&#41;</span>
        <span style="color: black;">&#123;</span>
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>batteryPercentage &lt; <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span><span style="color: black;">&#123;</span>
              <span style="color: black;">&#40;</span>batteryPercentage = <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span> ;
            <span style="color: black;">&#125;</span> 
            D_timestamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
            D_println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Batterie faible. Sommeil profond.&quot;</span><span style="color: black;">&#41;</span>;
            D_printf<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Battery Percentage: %i&quot;</span>, batteryPercentage<span style="color: black;">&#41;</span>;
            batteriefaible<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
            <span style="color: #808080;">//esp_sleep_enable_timer_wakeup(120000000ULL); // on programme un r&eacute;veil pour dans 120s (en &micro;s)</span>
        <span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
          D_timestamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
          D_printf<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Vbat: %.2f&quot;</span>,batteryVoltage<span style="color: black;">&#41;</span>;
          D_println<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
          sprintf<span style="color: black;">&#40;</span>bat, <span style="color: #FF0000;">&quot;%3d%s&quot;</span>, batteryPercentage, <span style="color: #FF0000;">&quot;%&quot;</span><span style="color: black;">&#41;</span>;
          updateBattery<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> ;
&nbsp;
&nbsp;
    <span style="color: #808080;">//---------------------------------------------</span>
    <span style="color: #808080;">// Step 3: Demarrage Connection WIFI</span>
    <span style="color: #808080;">//---------------------------------------------</span>
&nbsp;
      D_timestamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
      D_println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;D&eacute;marrage du WiFi&quot;</span><span style="color: black;">&#41;</span>;
      WiFi.mode<span style="color: black;">&#40;</span>WIFI_STA<span style="color: black;">&#41;</span>;
&nbsp;
&nbsp;
      <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>isRtcValid<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Connexion RAPIDE au Wi-Fi en cours...&quot;</span><span style="color: black;">&#41;</span>;
        WiFi.begin<span style="color: black;">&#40;</span>WLAN_SSID, WLAN_PASSWD, rtcData.channel, rtcData.ap_mac, <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Connexion LENTE au Wi-Fi en cours...&quot;</span><span style="color: black;">&#41;</span>;
        WiFi.begin<span style="color: black;">&#40;</span>WLAN_SSID, WLAN_PASSWD<span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span>
&nbsp;
      isWifiStarted = <span style="color: #0080ff;">true</span>;
&nbsp;
&nbsp;
    <span style="color: #808080;">//---------------------------------------------</span>
    <span style="color: #808080;">// Step 4: Si le WiFi est pr&ecirc;t : Initialiser le client MQTT</span>
    <span style="color: #808080;">//---------------------------------------------</span>
&nbsp;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>isWifiStarted<span style="color: black;">&#41;</span>
    <span style="color: black;">&#123;</span>
&nbsp;
  		<span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>WiFi.status<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> != WL_CONNECTED<span style="color: black;">&#41;</span> 
  		<span style="color: black;">&#123;</span>
  		<span style="color: #0080ff;">Serial</span>.write<span style="color: black;">&#40;</span><span style="color: #FF0000;">'.'</span><span style="color: black;">&#41;</span>;
  		<span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span>
&nbsp;
  	  <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot; =&gt; Connect&eacute;&quot;</span><span style="color: black;">&#41;</span>;
  	  <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;adresse IP:&quot;</span><span style="color: black;">&#41;</span>;   <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>WiFi.localIP<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
      isWifiReady = <span style="color: #0080ff;">true</span>;
&nbsp;
      <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>isWifiReady<span style="color: black;">&#41;</span> 
      <span style="color: black;">&#123;</span>	
        <span style="color: #808080;">/*  </span>
<span style="color: #808080;">&nbsp;       pubSubclient.setServer(server, 1883);</span>
<span style="color: #808080;">&nbsp;       D_timestamp();</span>
<span style="color: #808080;">&nbsp;       pubSubclient.connect(MQTT_CLIENT, MQTT_USER, MQTT_PASSWORD);</span>
<span style="color: #808080;">&nbsp;       delay(10);</span>
<span style="color: #808080;">&nbsp;       D_timestamp();</span>
<span style="color: #808080;">&nbsp;       D_println(&quot;MQTT connected&quot;);</span>
<span style="color: #808080;">&nbsp;       pubSubclient.loop();</span>
<span style="color: #808080;">&nbsp;       D_print(&quot;MQTT Publish: &quot;);</span>
<span style="color: #808080;">&nbsp;       D_println(MQTT_TOPIC);</span>
<span style="color: #808080;">&nbsp;       String topicString =&quot;channels/&quot; + String(MQTT_TOPIC) + &quot;/publish&quot;;</span>
<span style="color: #808080;">&nbsp;       String dataString = String(&quot;field1=&quot; + String(temperature) + &quot;&amp;field2=&quot; + String(humidity) + &quot;&amp;field3=&quot; + String(batteryPercentage) + &quot;&amp;field4=&quot; + String(piscine)+&quot;&amp;timezone=Europe/Paris&quot;);</span>
<span style="color: #808080;">&nbsp;       pubSubclient.publish(topicString.c_str(),dataString.c_str());</span>
<span style="color: #808080;">&nbsp;       delay(100);</span>
<span style="color: #808080;">&nbsp; </span>
<span style="color: #808080;">&nbsp;         // si la m&eacute;moire RTC n'&eacute;tait pas valide, on la met &agrave; jour pour le prochain r&eacute;veil</span>
<span style="color: #808080;">&nbsp;       if (!isRtcValid) {</span>
<span style="color: #808080;">&nbsp;           rtcData.channel = WiFi.channel();</span>
<span style="color: #808080;">&nbsp;           memcpy(rtcData.ap_mac, WiFi.BSSID(), 6); // les 6 octets de l'adresse mac</span>
<span style="color: #808080;">&nbsp;           // puis on met &agrave; jour le CRC dans la structure</span>
<span style="color: #808080;">&nbsp;           rtcData.crc32 = calculateCRC32MPGE2((uint8_t*)&amp;rtcData, sizeof rtcData - sizeof(uint32_t));</span>
<span style="color: #808080;">&nbsp;           Serial.println(&quot; Sauv config pour la prochaine fois en m&eacute;moire RTC. &quot;);</span>
<span style="color: #808080;">&nbsp;           printStructure(rtcData);</span>
<span style="color: #808080;">&nbsp;       }</span>
<span style="color: #808080;">&nbsp;       */</span>
&nbsp;
	      <span style="color: #0000ff;">if</span>  <span style="color: black;">&#40;</span>tensionBrute &gt; seuilTensionBruteBasse<span style="color: black;">&#41;</span>
        <span style="color: black;">&#123;</span>	
          D_timestamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
          D_println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Batterie OK. Dormir....&quot;</span><span style="color: black;">&#41;</span>;
          D_printf<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Battery Percentage: %i&quot;</span>, batteryPercentage<span style="color: black;">&#41;</span>;	
		      <span style="color: #0080ff;">Serial</span>.flush<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
 		      esp_sleep_enable_timer_wakeup<span style="color: black;">&#40;</span><span style="color: #cc66cc;">60000000</span>ull<span style="color: black;">&#41;</span>; <span style="color: #808080;">// on programme un r&eacute;veil pour dans 1mn (en &micro;s) pour test</span>
          <span style="color: #808080;">//esp_sleep_enable_timer_wakeup(18000000000ull); // on programme un r&eacute;veil pour dans 30mn (en &micro;s)</span>
		    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span><span style="color: black;">&#123;</span>
			    D_timestamp<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
          D_println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Batterie faible. Sommeil profond.&quot;</span><span style="color: black;">&#41;</span>;
          D_printf<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Battery Percentage: %i&quot;</span>, batteryPercentage<span style="color: black;">&#41;</span>;
          <span style="color: #0080ff;">Serial</span>.flush<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
          <span style="color: #808080;">//esp_sleep_enable_timer_wakeup(60000000ull); // on programme un r&eacute;veil pour dans 1mn (en &micro;s) pour test</span>
 		      <span style="color: #808080;">//esp_sleep_enable_timer_wakeup(3600000000ull); // on programme un r&eacute;veil pour dans 1h (en &micro;s)</span>
		    <span style="color: black;">&#125;</span>	
      <span style="color: black;">&#125;</span>  
	  <span style="color: black;">&#125;</span>
&nbsp;
   esp_deep_sleep_start<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;  
&nbsp;
<span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080;">//**************************************</span>
<span style="color: #808080;">//  LOOP</span>
<span style="color: #808080;">//**************************************</span>
<span style="color: #0000ff;">void</span> loop<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080;">//*******************************************************</span>
<span style="color: #0000ff;">void</span> updateBattery<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> 
<span style="color: black;">&#123;</span>
  <span style="color: #0000ff;">int16_t</span> tbx, tPar;
  <span style="color: #0000ff;">uint16_t</span> tbw, tbh;
  display.setRotation<span style="color: black;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
  display.setFont<span style="color: black;">&#40;</span>&amp;FreeMonoBold9pt7b<span style="color: black;">&#41;</span>;
  display.setTextColor<span style="color: black;">&#40;</span>GxEPD_BLACK<span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">uint16_t</span> x = <span style="color: #cc66cc;">225</span>;
  <span style="color: #0000ff;">uint16_t</span> y = <span style="color: #cc66cc;">120</span>;
  display.getTextBounds<span style="color: black;">&#40;</span>bat, x, y, &amp;tbx, &amp;tPar, &amp;tbw, &amp;tbh<span style="color: black;">&#41;</span>;
  display.setPartialWindow<span style="color: black;">&#40;</span>tbx, tPar, tbw, tbh<span style="color: black;">&#41;</span>;
  display.firstPage<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">do</span> <span style="color: black;">&#123;</span>
    <span style="color: #808080;">//display.fillScreen(GxEPD_WHITE);</span>
    display.setCursor<span style="color: black;">&#40;</span>x, y<span style="color: black;">&#41;</span>;
    display.print<span style="color: black;">&#40;</span>bat<span style="color: black;">&#41;</span>;
  <span style="color: black;">&#125;</span> <span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>display.nextPage<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: black;">&#41;</span>;
&nbsp;
<span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080;">//*******************************************************</span>
<span style="color: #0000ff;">void</span> updatePiscine<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> 
<span style="color: black;">&#123;</span>
  <span style="color: #0000ff;">int16_t</span> tbx, tPar;
  <span style="color: #0000ff;">uint16_t</span> tbw, tbh;
  display.setRotation<span style="color: black;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
  display.setFont<span style="color: black;">&#40;</span>&amp;FreeSerifBold30pt7b<span style="color: black;">&#41;</span>;
  display.setTextColor<span style="color: black;">&#40;</span>GxEPD_BLACK<span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">uint16_t</span> x = <span style="color: #cc66cc;">120</span>;
  <span style="color: #0000ff;">uint16_t</span> y = <span style="color: #cc66cc;">80</span>;
  display.getTextBounds<span style="color: black;">&#40;</span>temp, x, y, &amp;tbx, &amp;tPar, &amp;tbw, &amp;tbh<span style="color: black;">&#41;</span>;
  display.setPartialWindow<span style="color: black;">&#40;</span>tbx, tPar, tbw, tbh<span style="color: black;">&#41;</span>;
  display.firstPage<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">do</span> <span style="color: black;">&#123;</span>
    display.fillScreen<span style="color: black;">&#40;</span>GxEPD_WHITE<span style="color: black;">&#41;</span>;
    display.setCursor<span style="color: black;">&#40;</span>x, y<span style="color: black;">&#41;</span>;
    display.print<span style="color: black;">&#40;</span>temp<span style="color: black;">&#41;</span>;
  <span style="color: black;">&#125;</span> <span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>display.nextPage<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
   <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #0000ff;">void</span> batteriefaible<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
 display.setRotation<span style="color: black;">&#40;</span><span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
    display.setFullWindow<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
    display.fillScreen<span style="color: black;">&#40;</span>GxEPD_BLACK<span style="color: black;">&#41;</span>;
    display.drawBitmap<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, myBitmapbatterie_faible, <span style="color: #cc66cc;">296</span>, <span style="color: #cc66cc;">128</span>, GxEPD_WHITE<span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>display.nextPage<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>; 
    <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">500</span><span style="color: black;">&#41;</span> ;     
&nbsp;
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div>J'ai du certainement oublier quelque chose mais je ne trouve pas <br />
si vous avez quelques conseils , j'en serais preneur<br />
merci mille fois<br />
<br />
pascal</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>cobra38</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183373/general-developpement/programmation-systeme/embarque/arduino/economie-d-energie-esp32c3-super-mini/</guid>
		</item>
		<item>
			<title>Bug dans utilisation capteur HX710</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183178&amp;goto=newpost</link>
			<pubDate>Mon, 13 Apr 2026 08:15:07 GMT</pubDate>
			<description>Nous essayons actuellement de...</description>
			<content:encoded><![CDATA[<div>Nous essayons actuellement de créer un dispositif permettant de générer une pression négative dans un bocal en aspirant de l’air à l’aide d’une pompe.<br />
<br />
Actuellement, nous rencontrons un problème dans l’utilisation de ce capteur. Lorsque nous exécutons le code, celui-ci affiche en boucle le message suivant : “sensor not ready”.<br />
<br />
Est-ce que quelqu’un a déjà rencontré ce problème et saurait comment le résoudre ? Je ne trouve malheureusement rien à ce sujet sur Internet et je suis actuellement complètement bloqué dans la réalisation du dispositif.<br />
<br />
Le code que nous avons utilisé est le suivant :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">#include</span><span style="color: #FF0000;"> &quot;HX710B.h&quot;</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> DOUT = <span style="color: #cc66cc;">2</span>;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> CLK_PIN = <span style="color: #cc66cc;">3</span>;
&nbsp;
HX710B sensor;
&nbsp;
<span style="color: #0000ff;">void</span> setup<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0080ff;">Serial</span>.begin<span style="color: black;">&#40;</span><span style="color: #cc66cc;">115200</span><span style="color: black;">&#41;</span>;
  sensor.begin<span style="color: black;">&#40;</span>DOUT, CLK_PIN<span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> loop<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>sensor.is_ready<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;mmHg: &quot;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span>sensor.mmHg<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot; | PSI: &quot;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>sensor.psi<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
  <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
    <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Sensor not ready&quot;</span><span style="color: black;">&#41;</span>;
  <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">1000</span><span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div>La bibliothèque utilisée est la suivante : « hx710B_pressure_sensor-main » et se trouve sur internet: <a rel="nofollow" href="https://github.com/rppelayo/hx710B_pressure_sensor" target="_blank">https://github.com/rppelayo/hx710B_pressure_sensor</a>.<br />
<img src="https://www.developpez.net/forums/attachments/p675558d1776068031/general-developpement/programmation-systeme/embarque/arduino/bug-utilisation-capteur-hx710/connexion-capteur-arduino.png/" border="0" alt="Nom : connexion capteur et arduino.png
Affichages : 192
Taille : 553,9 Ko"  style="float: CONFIG" /><img src="https://www.developpez.net/forums/attachments/p675558d1776068031/general-developpement/programmation-systeme/embarque/arduino/bug-utilisation-capteur-hx710/connexion-capteur-arduino.png/" border="0" alt="Nom : connexion capteur et arduino.png
Affichages : 192
Taille : 553,9 Ko"  style="float: CONFIG" /><br />
En annexe, vous trouverez également le schéma de câblage que nous avons utilisé. Si quelqu’un connaît ce problème ou peut nous aider avec une solution potentielle, ce serait vraiment apprécié.<br />
<br />
Nous vous remercions d’avance !</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p675558d1776068031/general-developpement/programmation-systeme/embarque/arduino/bug-utilisation-capteur-hx710/connexion-capteur-arduino.png/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>vicdm</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183178/general-developpement/programmation-systeme/embarque/arduino/bug-utilisation-capteur-hx710/</guid>
		</item>
		<item>
			<title>Piloter 4 relais sur A1 A2 A3 A4</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2183054&amp;goto=newpost</link>
			<pubDate>Sun, 05 Apr 2026 17:48:33 GMT</pubDate>
			<description>Bonsoir a toutes et tous,...</description>
			<content:encoded><![CDATA[<div>Bonsoir a toutes et tous,<br />
sans exeperience en arduino et n'ayant rien trouvé correspondant a mon probleme je vous soumet une question:<br />
<br />
je cherche a réalisé une commande de 4 relais connecté sur les port A1 A2 A3 A4 arduino uno <br />
je recoie tres bien ma temperature de ma sonde et je l'affiche avec &quot;&quot;&quot; TEMPS&quot;&quot;&quot;<br />
<br />
mais mon probleme est que je n'ai que le dernier relais qui fonctionne et se coupe mais pas les trois premier <br />
mais ce qui est bizarre si je ne met que le code du premier relais la premiere fonction travail corectement<br />
pareille avec chaque relais <br />
si je le commande seul A1 OU A2 OU A3 OU A4 sans les autre commande du code sa fonctionne pour chaque relais <br />
<br />
pouvez vous m'aidé car je tourne un peut en rond<br />
voici mon code <br />
en gros je cherche a dire <br />
si rl1 (a1 , high) les autre relais seront A2 A3 A4 LOW<br />
cordialement<br />
<br />
<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>TEMPS==<span style="color: #cc66cc;">10.00</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A1, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A2, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span> <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A2, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A3, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A3, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A4, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A4, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;   
&nbsp;
&nbsp;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>TEMPS==<span style="color: #cc66cc;">15.00</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A2, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A1,<span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A1, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A3,<span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A3, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
   <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A4,<span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A4, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;  
&nbsp;
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>TEMP==<span style="color: #cc66cc;">20.00</span><span style="color: black;">&#41;</span> <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A3, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A1, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A1, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A2, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A2, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A4, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A4, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
&nbsp;
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>TEMP==<span style="color: #cc66cc;">25.00</span><span style="color: black;">&#41;</span> <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A4, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A1, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A1, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A2, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A2, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>A3, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span><span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>A3, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;</pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>alll1</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2183054/general-developpement/programmation-systeme/embarque/arduino/piloter-4-relais-a1-a2-a3-a4/</guid>
		</item>
		<item>
			<title><![CDATA[<time.h> en français]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182947&amp;goto=newpost</link>
			<pubDate>Tue, 31 Mar 2026 08:13:06 GMT</pubDate>
			<description><![CDATA[Bonjour à tous , 
 
il s'agit...]]></description>
			<content:encoded><![CDATA[<div>Bonjour à tous ,<br />
<br />
il s'agit je pense ici d'un vrai serpent de mer<br />
mais je n'arrive pas à passer &lt;time.h&gt; en français<br />
<br />
j'ai essayé les termes trouvés sur le net comme <br />
setlocale(LC_TIME,&quot;&quot;);<br />
setlocale(LC_TIME,&quot;fr-FR&quot;);<br />
setlocale(LC_TIME,&quot;&quot;fr_FR.UTF-8&quot;&quot;);     <br />
etc ...<br />
sans succès <br />
<br />
je mets ici ma fonction :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span>* jours<span style="color: black;">&#91;</span><span style="color: black;">&#93;</span> = <span style="color: black;">&#123;</span>
  <span style="color: #FF0000;">&quot;Dim&quot;</span>,<span style="color: #FF0000;">&quot;Lun&quot;</span>,<span style="color: #FF0000;">&quot;Mar&quot;</span>,<span style="color: #FF0000;">&quot;Mer&quot;</span>,
  <span style="color: #FF0000;">&quot;Jeu&quot;</span>,<span style="color: #FF0000;">&quot;Ven&quot;</span>,<span style="color: #FF0000;">&quot;Sam&quot;</span>
<span style="color: black;">&#125;</span>;
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span>* mois<span style="color: black;">&#91;</span><span style="color: black;">&#93;</span> = <span style="color: black;">&#123;</span>
  <span style="color: #FF0000;">&quot;Janv&quot;</span>,<span style="color: #FF0000;">&quot;Fev&quot;</span>,<span style="color: #FF0000;">&quot;Mars&quot;</span>,<span style="color: #FF0000;">&quot;Avr&quot;</span>,<span style="color: #FF0000;">&quot;Mai&quot;</span>,<span style="color: #FF0000;">&quot;Jun&quot;</span>,
  <span style="color: #FF0000;">&quot;Jul&quot;</span>,<span style="color: #FF0000;">&quot;Aout&quot;</span>,<span style="color: #FF0000;">&quot;Sept&quot;</span>,<span style="color: #FF0000;">&quot;Oct&quot;</span>,<span style="color: #FF0000;">&quot;Nov&quot;</span>,<span style="color: #FF0000;">&quot;Dec&quot;</span>
<span style="color: black;">&#125;</span>;
&nbsp;
.../...
&nbsp;
<span style="color: #0000ff;">void</span> drawClock<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  setlocale<span style="color: black;">&#40;</span>LC_TIME,<span style="color: #FF0000;">&quot;&quot;</span><span style="color: black;">&#41;</span>; 
  <span style="color: #0000ff;">struct</span> <span style="color: #0000ff;">tm</span> t;
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>!getLocalTime<span style="color: black;">&#40;</span>&amp;t<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    display.setFont<span style="color: black;">&#40;</span>NULL<span style="color: black;">&#41;</span>;
    display.setCursor<span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">30</span><span style="color: black;">&#41;</span>;
    display.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Synchro en cours...&quot;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">return</span>;
  <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">int</span> h12 = t.tm_hour ;
  display.setTextColor<span style="color: black;">&#40;</span>SSD1306_WHITE<span style="color: black;">&#41;</span>;
  display.setFont<span style="color: black;">&#40;</span>NULL<span style="color: black;">&#41;</span>;
  display.setTextSize<span style="color: black;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span>;
  display.setCursor<span style="color: black;">&#40;</span><span style="color: #cc66cc;">114</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;
  <span style="color: #808080;">//display.print(ampm);</span>
  display.setFont<span style="color: black;">&#40;</span>&amp;FreeSansBold18pt7b<span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">char</span> timeStr<span style="color: black;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: black;">&#93;</span>;
  sprintf<span style="color: black;">&#40;</span>timeStr, <span style="color: #FF0000;">&quot;%02d:%02d&quot;</span>, h12, t.tm_min<span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">int16_t</span> x1, y1;
  <span style="color: #0000ff;">uint16_t</span> w, h;
  display.getTextBounds<span style="color: black;">&#40;</span>timeStr, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, &amp;x1, &amp;y1, &amp;w, &amp;h<span style="color: black;">&#41;</span>;
  display.setCursor<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>SCREEN_WIDTH - w<span style="color: black;">&#41;</span> / <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">42</span><span style="color: black;">&#41;</span>;
  display.print<span style="color: black;">&#40;</span>timeStr<span style="color: black;">&#41;</span>;
  display.setFont<span style="color: black;">&#40;</span>&amp;FreeSans9pt7b<span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span>* j =jours<span style="color: black;">&#91;</span>t.tm_wday<span style="color: black;">&#93;</span>;  
  <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span>* m =mois<span style="color: black;">&#91;</span>t.tm_mon<span style="color: black;">&#93;</span>;
  <span style="color: #0000ff;">char</span> dateStr<span style="color: black;">&#91;</span><span style="color: #cc66cc;">20</span><span style="color: black;">&#93;</span>;
  strftime<span style="color: black;">&#40;</span>dateStr, <span style="color: #cc66cc;">20</span>, <span style="color: #FF0000;">&quot;%j %d %m&quot;</span>, &amp;t<span style="color: black;">&#41;</span>;
  display.getTextBounds<span style="color: black;">&#40;</span>dateStr, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, &amp;x1, &amp;y1, &amp;w, &amp;h<span style="color: black;">&#41;</span>;
  display.setCursor<span style="color: black;">&#40;</span><span style="color: black;">&#40;</span>SCREEN_WIDTH - w<span style="color: black;">&#41;</span> / <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">62</span><span style="color: black;">&#41;</span>;
  display.print<span style="color: black;">&#40;</span>dateStr<span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div>j'obtiens par ex : <br />
<br />
20:35 <br />
<b>090 31 03</b> en lieu et place de<br />
<b>Mar 31 Mars</b><br />
<br />
<br />
Merci ....</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>cobra38</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182947/general-developpement/programmation-systeme/embarque/arduino/time-h-francais/</guid>
		</item>
		<item>
			<title><![CDATA[Mise à jour fichier Data avec <LittleFS.h>]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182926&amp;goto=newpost</link>
			<pubDate>Mon, 30 Mar 2026 09:50:44 GMT</pubDate>
			<description>Bonjour à tous,  
 
Tous les...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous, <br />
<br />
Tous les 6 mois , je suis obligé de remettre à l'heure mon application météo ( Wemos ) <br />
cette année comme les autres années au moment du changement d'heure et ceci depuis 2021 , je fais la mise à jour de mon fichier &quot;config.txt&quot; via &quot;ESP8266 sketch data upload&quot;<br />
mais cette fois plus rien ne fonctionne (?)<br />
la mise à jour se lance  :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
/<span style="color: #cc66cc;">01</span>d32.jpg
../..
/alarm.txt
/config.txt  &lt;=====================
/ik.txt
/i_stat.txt
/wind_2.jpg
/wind_4.jpg
/wind_6.jpg
/wind_8.jpg
<span style="color: black;">&#91;</span>SPIFFS<span style="color: black;">&#93;</span> upload  : C:\Users\UTILIS~<span style="color: #cc66cc;">1</span>\AppData\Local\Temp<span style="color: #800000;">\a</span>rduino_build_795945/meteoV12.spiffs.bin
<span style="color: black;">&#91;</span>SPIFFS<span style="color: black;">&#93;</span> address  : <span style="color: #cc66cc;">0x200000</span>
<span style="color: black;">&#91;</span>SPIFFS<span style="color: black;">&#93;</span> reset    : nodemcu
<span style="color: black;">&#91;</span>SPIFFS<span style="color: black;">&#93;</span> port     : COM4
<span style="color: black;">&#91;</span>SPIFFS<span style="color: black;">&#93;</span> speed    : <span style="color: #cc66cc;">921600</span>
&nbsp;
Uploading <span style="color: #cc66cc;">2076672</span> bytes from C:\Users\UTILIS~<span style="color: #cc66cc;">1</span>\AppData\Local\Temp<span style="color: #800000;">\a</span>rduino_build_795945/meteoV12.spiffs.bin to flash at <span style="color: #cc66cc;">0x00200000</span>
................................................................................ <span style="color: black;">&#91;</span>  <span style="color: #cc66cc;">3</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span>  <span style="color: #cc66cc;">7</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">11</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">15</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">19</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">23</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">27</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">31</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">35</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">39</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">43</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">47</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">51</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">55</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">59</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">63</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">67</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">71</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">74</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">78</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">82</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">86</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">90</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">94</span>% <span style="color: black;">&#93;</span>
................................................................................ <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">98</span>% <span style="color: black;">&#93;</span>
............................                                                     <span style="color: black;">&#91;</span> <span style="color: #cc66cc;">100</span>% <span style="color: black;">&#93;</span></pre></td></tr></table></code><hr />
</div> et je n'arrive même plus à compiler mon programme , il me donne cette erreur :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
meteoV12:<span style="color: #cc66cc;">184</span>:<span style="color: #cc66cc;">22</span>: fatal error: LittleFS.h: No such file <span style="color: #0000ff;">or</span> directory
 <span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;LittleFS.h&gt;</span>  &lt;===================================
                      ^
compilation terminated.
Plusieurs biblioth&egrave;que trouv&eacute;es pour <span style="color: #FF0000;">&quot;WiFiClient.h&quot;</span>
Utilis&eacute; : C:\Users\Utilisateur\Documents\ArduinoData\packages\esp8266\hardware\esp8266<span style="color: #800000;">\2</span><span style="color: #cc66cc;">.5</span>.<span style="color: #cc66cc;">0</span>\libraries\ESP8266WiFi
Non utilis&eacute; : C:\Users\Utilisateur\Documents\Arduino\libraries\WiFi101
Non utilis&eacute; : C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.<span style="color: #cc66cc;">8.57</span>.<span style="color: #cc66cc;">0</span>_x86__mdqgnx93n4wtt\libraries\WiFi
exit status <span style="color: #cc66cc;">1</span>
LittleFS.h: No such file <span style="color: #0000ff;">or</span> directory</pre></td></tr></table></code><hr />
</div>j'utilise pourtant la même bibliothèque du gestionnaire de cartes : ESP8266 =&gt; 2.5.0 que précédemment <br />
<br />
En conclusion :<br />
1)  la mise à jour de mon fichier config.txt ne semble pas avoir été faite<br />
2) je soupçonne fortement qu'il ait effacé en mémoire mes anciens fichiers car je n'arrive plus à lire l'ancien fichier config.txt <br />
3) pour finir je ne peux plus compiler mon programme suite à l'erreur ...<br />
<br />
donc si vous avez une petit idée, je suis preneur de vos conseils précieux conseils .... <br />
mille mercis <br />
pascal</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>cobra38</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182926/general-developpement/programmation-systeme/embarque/arduino/mise-jour-fichier-data-littlefs-h/</guid>
		</item>
		<item>
			<title>Bibliothèque des librairies</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182856&amp;goto=newpost</link>
			<pubDate>Wed, 25 Mar 2026 13:02:28 GMT</pubDate>
			<description>Bonjour à tous,  
 
je...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous, <br />
<br />
je voudrais savoir si à votre connaissance, il existe une librairie Arduino ou autre qui permettrait de lister l'ensemble des librairies et leurs versions <br />
utilisées lors de la compilation d'un croquis mais de façon automatique <br />
<br />
ma question vous semblera peut-être naïve mais serait certainement très utile</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>cobra38</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182856/general-developpement/programmation-systeme/embarque/arduino/bibliotheque-librairies/</guid>
		</item>
		<item>
			<title>Impossible de faire fonctionner LoRa Emetteur</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182810&amp;goto=newpost</link>
			<pubDate>Sun, 22 Mar 2026 09:58:55 GMT</pubDate>
			<description>Bonjour à Tous, 
 
Mon...</description>
			<content:encoded><![CDATA[<div>Bonjour à Tous,<br />
<br />
Mon problème du jour est de faire fonctionner dans mon module Emetteur , mon module LoRa + uPesy <br />
je précise que ce programme a déjà fonctionné ( il y a 2 ans env ) mais lors d'une légère modification des entrées , je n'arrive plus à le refaire fonctionner<br />
j'ai regardé l'ensemble des raccordements à mille reprises pour m'assurer de la bonne connectique <br />
changer de module RA-01  <br />
<br />
Librairie carte ESP32 : 3.3.7<br />
             LoRa : 0.8.0 <br />
<br />
je poste ici le programme , je serais preneur de quelques conseils car là je ne vois pas où se situe le problème  <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #808080; font-weight: bold;">/*************************************</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;EMETTEUR</span>
<span style="color: #808080; font-weight: bold;">**************************************/</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-weight: bold;">/***************************************</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ESP32 WROOM LOW POWER DEVKIT</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uPesy</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;------------------</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 32| GPIO23 &nbsp; MOSI</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|2 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 31|</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|3 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30|</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 29|</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 28|</span>
<span style="color: #808080; font-weight: bold;">&nbsp; DATA &nbsp; &nbsp;GPIO32 &nbsp; |6 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 27| GPIO19 &nbsp; MISO</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|7 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 26| GPIO18 &nbsp; SCK </span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 25| </span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|9 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 24| </span>
<span style="color: #808080; font-weight: bold;">&nbsp; DIO0 &nbsp; &nbsp; GPIO27 &nbsp;|10 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;23|</span>
<span style="color: #808080; font-weight: bold;">&nbsp; RST &nbsp; &nbsp; &nbsp;GPIO14 &nbsp;|11 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;22| &nbsp;</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|12 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;21| </span>
<span style="color: #808080; font-weight: bold;">&nbsp; NSS &nbsp; &nbsp; &nbsp;GPIO13 &nbsp;|13 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;20| &nbsp;</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|14 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;19|</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|15 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;18| 3V3 VCC</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|16 &nbsp; &nbsp; |----| 17| GND</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\-------| &nbsp; &nbsp;|---/</span>
<span style="color: #808080; font-weight: bold;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|----| </span>
<span style="color: #808080; font-weight: bold;">*************************************/</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;driver/rtc_io.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;LoRa.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;SPI.h&gt;</span>
&nbsp;
<span style="color: #808080;">// LoRa definition</span>
<span style="color: #339933;">#define SCK     18   // GPIO18 -- SX1278's SCK</span>
<span style="color: #339933;">#define MISO    19   // GPIO19 -- SX1278's MISO</span>
<span style="color: #339933;">#define MOSI    23   // GPIO23 -- SX1278's MOSI</span>
<span style="color: #339933;">#define SS      5    // GPIO5  -- SX1278's NSS</span>
<span style="color: #339933;">#define RST     14   // GPIO14 -- SX1278's RST</span>
<span style="color: #339933;">#define DI0     27   // GPIO27 -- SX1278's IRQ(Interrupt Request)</span>
&nbsp;
<span style="color: #339933;">#define LORA_SS_GPIO_NUM  GPIO_NUM_5</span>
<span style="color: #339933;">#define LORA_RST_GPIO_NUM GPIO_NUM_14</span>
&nbsp;
<span style="color: #339933;">#define BAND 433E6  //433E6 for Asia, 866E6 for Europe and 915E6 for North America</span>
&nbsp;
<span style="color: #0000ff;">const</span> gpio_num_t pinBAL    = GPIO_NUM_32; <span style="color: #808080;">// RTC GPIO for ESP32: 0, 2, 4, 12-15, 25-27, 32-39;</span>
<span style="color: #0000ff;">const</span> gpio_num_t vbatPin   = GPIO_NUM_35;
&nbsp;
<span style="color: #808080;">//#define BUTTON_PIN_BITMASK (1ull &lt;&lt; pinBAL) // </span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint64_t</span>  uS_TO_S_FACTOR = <span style="color: #cc66cc;">1000000</span>ull; <span style="color: #808080;">/* Facteur de conversion des microsecondes en secondes */</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint64_t</span>  TIME_TO_SLEEP = <span style="color: #cc66cc;">300</span>ull; <span style="color: #808080;">/* Temps de mise en veille de l'ESP32 (en secondes) ici 5Mn */</span>
&nbsp;
RTC_DATA_ATTR <span style="color: #0000ff;">int</span> bootCount = <span style="color: #cc66cc;">0</span>;
RTC_DATA_ATTR <span style="color: #0000ff;">int</span> Vbat = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">int</span> vBat;
<span style="color: #339933;">#define DELTA 32</span>
&nbsp;
<span style="color: #808080;">//***********************************************</span>
<span style="color: #0000ff;">void</span> loraMessage<span style="color: black;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> * message<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  LoRa.beginPacket<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
  LoRa.println<span style="color: black;">&#40;</span>message<span style="color: black;">&#41;</span>;
  LoRa.endPacket<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #0000ff;">void</span> envoiVbatBrut<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
   <span style="color: #0000ff;">char</span> str<span style="color: black;">&#91;</span><span style="color: #cc66cc;">8</span><span style="color: black;">&#93;</span>;                                  <span style="color: #808080;">// 6 caract&egrave;res devraient suffire : V4095 et /0</span>
   <span style="color: #0000ff;">int</span>  cmpt = <span style="color: #cc66cc;">8</span>;
   <span style="color: #0000ff;">int</span> vBatOld = <span style="color: #cc66cc;">0</span> ; 
   <span style="color: #0000ff;">do</span> <span style="color: black;">&#123;</span>
      cmpt--;
	  vBatOld = vBat;
	  vBat = <span style="color: #0080ff;">analogRead</span><span style="color: black;">&#40;</span>vbatPin<span style="color: black;">&#41;</span>; <span style="color: #808080;">// tension &eacute;chantillonn&eacute;e brute</span>
   <span style="color: black;">&#125;</span> <span style="color: #0000ff;">while</span><span style="color: black;">&#40;</span><span style="color: black;">&#40;</span><span style="color: #0080ff;">abs</span><span style="color: black;">&#40;</span>vBat-vBatOld<span style="color: black;">&#41;</span> &gt; DELTA<span style="color: black;">&#41;</span> &amp;&amp; <span style="color: black;">&#40;</span>cmpt &gt; <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
   <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Valeur Brute = &quot;</span><span style="color: black;">&#41;</span>; 
   <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>vBat<span style="color: black;">&#41;</span>;
   sprintf<span style="color: black;">&#40;</span>str, <span style="color: #FF0000;">&quot;V%d&quot;</span>, vBat<span style="color: black;">&#41;</span>;                    <span style="color: #808080;">// 'V' suivi de la tension brute </span>
   loraMessage<span style="color: black;">&#40;</span>str<span style="color: black;">&#41;</span>;                             <span style="color: #808080;">// Envoi du message</span>
<span style="color: black;">&#125;</span> 
&nbsp;
&nbsp;
<span style="color: #808080;">//***********************************************</span>
<span style="color: #0000ff;">void</span> action<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  esp_sleep_wakeup_cause_t source_reveil = esp_sleep_get_wakeup_cause<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">uint64_t</span> GPIO_reason = esp_sleep_get_ext1_wakeup_status<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #0000ff;">switch</span> <span style="color: black;">&#40;</span>source_reveil<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    <span style="color: #0000ff;">case</span> ESP_SLEEP_WAKEUP_TIMER :
      <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;R&eacute;veil par un timer&quot;</span><span style="color: black;">&#41;</span>;
      envoiVbatBrut<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
      <span style="color: #0000ff;">break</span>;
    <span style="color: #0000ff;">default</span> :
      <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Aucun R&eacute;veil caus&eacute; par le Deep Sleep :&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>source_reveil<span style="color: black;">&#41;</span>;
      <span style="color: #0000ff;">break</span>;
  <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>GPIO_reason != <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">uint64_t</span> gpioWakeUp = __builtin_ctzll<span style="color: black;">&#40;</span>GPIO_reason<span style="color: black;">&#41;</span>; <span style="color: #808080;">// __builtin_ctzll finds the position of the rightmost 1</span>
    <span style="color: #0000ff;">switch</span> <span style="color: black;">&#40;</span>gpioWakeUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
      <span style="color: #0000ff;">case</span> pinBAL: loraMessage<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;1&quot;</span><span style="color: black;">&#41;</span>; <span style="color: #0000ff;">break</span>;
      <span style="color: #0000ff;">default</span> : <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Aucun GPIO connu n'a d&eacute;clench&eacute; le r&eacute;veil&quot;</span><span style="color: black;">&#41;</span>; <span style="color: #0000ff;">break</span>;
    <span style="color: black;">&#125;</span>
  <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #808080;">//***********************************************</span>
<span style="color: #808080;">//   SETUP</span>
<span style="color: #808080;">//***********************************************   </span>
&nbsp;
<span style="color: #0000ff;">void</span> setup<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  rtc_gpio_hold_dis<span style="color: black;">&#40;</span>LORA_SS_GPIO_NUM<span style="color: black;">&#41;</span>;
  rtc_gpio_hold_dis<span style="color: black;">&#40;</span>LORA_RST_GPIO_NUM<span style="color: black;">&#41;</span>; 
&nbsp;
  <span style="color: #0080ff;">Serial</span>.begin<span style="color: black;">&#40;</span><span style="color: #cc66cc;">115200</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span>!<span style="color: #0080ff;">Serial</span><span style="color: black;">&#41;</span> yield<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
  SPI.begin<span style="color: black;">&#40;</span>SCK, MISO, MOSI, SS<span style="color: black;">&#41;</span>;
  LoRa.setPins<span style="color: black;">&#40;</span>SS, RST, DI0<span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;LoRa : Emetteur&quot;</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>!LoRa.begin<span style="color: black;">&#40;</span>BAND<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span> <span style="color: #808080;">// LoRa_frequency</span>
    <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Le lancement de LoRa a &eacute;chou&eacute; !&quot;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">while</span> <span style="color: black;">&#40;</span><span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> yield<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
  <span style="color: black;">&#125;</span>
  <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;init ok&quot;</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #808080;">//Incr&eacute;menter le num&eacute;ro de d&eacute;marrage et l'imprimer &agrave; chaque red&eacute;marrage</span>
  ++bootCount;
  <span style="color: #0080ff;">Serial</span>.print<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Boot number: &quot;</span><span style="color: black;">&#41;</span>;  <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>bootCount<span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #808080;">//action();</span>
&nbsp;
  <span style="color: #808080;">// go back to sleep</span>
  <span style="color: #808080;">//LoRa.end();</span>
  <span style="color: #808080;">//delay(600);</span>
  LoRa.sleep<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>SS, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Normalement la broche est d&eacute;j&agrave; &agrave; l'&eacute;tat haut</span>
  rtc_gpio_hold_en<span style="color: black;">&#40;</span>LORA_SS_GPIO_NUM<span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>RST, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Normalement la broche est d&eacute;j&agrave; &agrave; l'&eacute;tat haut</span>
  rtc_gpio_hold_en<span style="color: black;">&#40;</span>LORA_RST_GPIO_NUM<span style="color: black;">&#41;</span>;
&nbsp;
&nbsp;
&nbsp;
 <span style="color: #808080;">// esp_sleep_enable_ext1_wakeup(BUTTON_PIN_BITMASK, ESP_EXT1_WAKEUP_ANY_HIGH);</span>
  esp_sleep_enable_timer_wakeup<span style="color: black;">&#40;</span>TIME_TO_SLEEP * uS_TO_S_FACTOR<span style="color: black;">&#41;</span>;
&nbsp;
&nbsp;
  <span style="color: #808080;">//Serial.println(&quot;Going to sleep&quot;);</span>
  <span style="color: #0080ff;">Serial</span>.flush<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// esp_deep_sleep_start() va vider le contenu des FIFO UART</span>
  esp_deep_sleep_start<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #808080;">//***********************************************</span>
<span style="color: #808080;">//   LOOP</span>
<span style="color: #808080;">//***********************************************</span>
&nbsp;
<span style="color: #0000ff;">void</span> loop<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span><span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div>Et le résultat au lancement :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td valign="top"><pre style="margin: 0">
10:42:48.418 -&gt; ets Jul 29 2019 12:21:46
10:42:48.418 -&gt; 
10:42:48.418 -&gt; rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
10:42:48.418 -&gt; configsip: 0, SPIWP:0xee
10:42:48.418 -&gt; clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
10:42:48.418 -&gt; mode:DIO, clock div:2
10:42:48.418 -&gt; load:0x3fff0030,len:4876
10:42:48.418 -&gt; ho 0 tail 12 room 4
10:42:48.418 -&gt; load:0x40078000,len:16600
10:42:48.418 -&gt; ho 0 tail 12 room 4
10:42:48.418 -&gt; load:0x40080400,len:3500
10:42:48.418 -&gt; entry 0x400805b4
10:42:48.530 -&gt; E (6) R&#65533;CLoRa : Emetteur
10:42:48.530 -&gt;<b> Le lancement de LoRa a échoué !</b></pre></td></tr></table></code><hr />
</div><br />
EDIT :<br />
<b>Arduino IDE 1.8.19 :</b><br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
compilation terminated.
exit status <span style="color: #cc66cc;">1</span>
driver/rtc_io.h: No such file <span style="color: #0000ff;">or</span> directory</pre></td></tr></table></code><hr />
</div><br />
<b>Arduino IDE 2.3.8 :</b><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
e croquis utilise <span style="color: #cc66cc;">297700</span> octets <span style="color: black;">&#40;</span><span style="color: #cc66cc;">22</span>%<span style="color: black;">&#41;</span> de l<span style="color: #FF0000;">'</span>espace de stockage de programmes. Le maximum est de <span style="color: #cc66cc;">1310720</span> octets.
Les variables globales utilisent <span style="color: #cc66cc;">22308</span> octets <span style="color: black;">&#40;</span><span style="color: #cc66cc;">6</span>%<span style="color: black;">&#41;</span> de m&eacute;moire dynamique, ce qui laisse <span style="color: #cc66cc;">305372</span> octets pour les variables locales. Le maximum est de <span style="color: #cc66cc;">327680</span> octets.</pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>cobra38</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182810/general-developpement/programmation-systeme/embarque/arduino/impossible-faire-fonctionner-lora-emetteur/</guid>
		</item>
		<item>
			<title>Demande aide Branchement Module  IRF520</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182764&amp;goto=newpost</link>
			<pubDate>Thu, 19 Mar 2026 22:06:18 GMT</pubDate>
			<description>Bonjour, 
 
Je travaille...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je travaille actuellement sur un projet et j'en suis à la phase de test des composants avant soudure. Je rencontre un problème que je n'ai pas réussi à résoudre malgré mes recherches.<br />
<br />
J'ai acheté ce module <a rel="nofollow" href="https://www.amazon.fr/dp/B0DGFT4BTR?ref=ppx_yo2ov_dt_b_fed_asin_title" target="_blank">https://www.amazon.fr/dp/B0DGFT4BTR?...fed_asin_title</a> et je n'arrive pas à le brancher correctement selon la notice. Voici mon montage actuel :<br />
<br />
Côté commande : SIG sur la pin 23, VCC sur le 5V et GND sur le GND de ma carte.<br />
<br />
Côté puissance : +12V de l'alimentation sur VIN, masse de l'alimentation sur GND. La LED 12V est branchée sur les bornes V+ et V-.<br />
<br />
Avec ce câblage, la LED reste allumée en permanence, peu importe le signal envoyé sur SIG.<br />
<br />
Étrangement, si j'inverse en mettant la LED sur VIN/GND et l'alimentation sur V+/V-, la LED réagit bien au signal SIG, mais elle conserve une légère lueur résiduelle lorsqu'elle n'est pas pilotée.<br />
<br />
J'ai vérifié le circuit imprimé, les borniers ne semblent pas inversés. J'ai testé 5 cartes sur les 10 reçues et le comportement est identique.<br />
<br />
Sauriez-vous m'aider à identifier l'erreur ?<br />
<br />
Merci d'avance pour votre aide !<br />
Cordialement.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>Luxaris</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182764/general-developpement/programmation-systeme/embarque/arduino/demande-aide-branchement-module-irf520/</guid>
		</item>
		<item>
			<title>SSD1306 allocation failed</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182455&amp;goto=newpost</link>
			<pubDate>Wed, 04 Mar 2026 22:51:42 GMT</pubDate>
			<description>Bonjour à tous , 
 
Je...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous ,<br />
<br />
Je souhaite tester ce petit programme sur Nano mais je rencontre toujours ce type d'erreur : &quot;SSD1306 allocation failed&quot;<br />
Pourtant je précise que <br />
- j'ai fait tourner préalablement &quot;scannerI2C&quot; pour valider l'adresse du SSD1306 =&gt; <b>0x3C</b><br />
- j'ai testé des exemples de la librairies FluxGarage_RoboEyes comme par ex   <b>i2c_ssd1306_Basics.ino</b> sans problème<br />
- le programme se compile sans erreur <br />
  <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br />199<br />200<br />201<br />202<br />203<br />204<br />205<br />206<br />207<br />208<br />209<br />210<br />211<br />212<br />213<br />214<br />215<br />216<br />217<br />218<br />219<br />220<br />221<br />222<br />223<br />224<br />225<br />226<br />227<br />228<br />229<br />230<br />231<br />232<br />233<br />234<br />235<br />236<br />237<br />238<br />239<br />240<br />241<br />242<br />243<br />244<br />245<br />246<br />247<br />248<br />249<br />250<br />251<br />252<br />253<br />254<br />255<br />256<br />257<br />258<br />259<br />260<br />261<br />262<br />263<br />264<br />265<br />266<br />267<br />268<br />269<br />270<br />271<br />272<br />273<br />274<br />275<br />276<br />277<br />278<br />279<br />280<br />281<br />282<br />283<br />284<br />285<br />286<br />287<br />288<br />289<br />290<br />291<br />292<br />293<br />294<br />295<br />296<br />297<br />298<br />299<br />300<br />301<br />302<br />303<br />304<br />305<br />306<br />307<br />308<br />309<br />310<br />311<br />312<br />313<br />314<br />315<br />316<br />317<br />318<br />319<br />320<br />321<br />322<br />323<br />324<br />325<br />326<br />327<br />328<br />329<br />330<br />331<br />332<br />333<br />334<br />335<br />336<br />337<br />338<br />339<br />340<br />341<br />342<br />343<br />344<br />345<br />346<br />347<br />348<br />349<br />350<br />351<br />352<br />353<br />354<br />355<br />356<br />357<br />358<br />359<br />360<br />361<br />362<br />363<br />364<br />365<br />366<br />367<br />368<br />369<br />370<br />371<br />372<br />373<br />374<br />375<br />376<br />377<br />378<br />379<br />380<br />381<br />382<br />383<br />384<br />385<br />386<br />387<br />388<br />389<br />390<br />391<br />392<br />393<br />394<br />395<br />396<br />397<br />398<br />399<br />400<br />401<br />402<br />403<br />404<br />405<br />406<br />407<br />408<br />409<br />410<br />411<br />412<br />413<br />414<br />415<br />416<br />417<br />418<br />419<br />420<br />421<br />422<br />423<br />424<br />425<br />426<br />427<br />428<br />429<br />430<br />431<br />432<br />433<br />434<br />435<br />436<br />437<br />438<br />439<br />440<br />441<br />442<br />443<br />444<br />445<br />446<br />447<br />448<br />449<br />450<br />451<br />452<br />453<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;VarSpeedServo.h&gt;</span>
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;Adafruit_SSD1306.h&gt;</span>
&nbsp;
<span style="color: #339933;">#define SCREEN_WIDTH 128 // OLED display width, in pixels</span>
<span style="color: #339933;">#define SCREEN_HEIGHT 64 // OLED display height, in pixels</span>
<span style="color: #808080;">// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)</span>
<span style="color: #339933;">#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)</span>
<span style="color: #808080;">//Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, OLED_RESET);</span>
Adafruit_SSD1306 display<span style="color: black;">&#40;</span>SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire<span style="color: black;">&#41;</span>;
&nbsp;
<span style="color: #339933;">#include</span><span style="color: #FF0000;"> &lt;FluxGarage_RoboEyes.h&gt;</span>
roboEyes roboEyes; 
&nbsp;
VarSpeedServo leftArm;
VarSpeedServo rightArm;
&nbsp;
<span style="color: #808080;">//Servo Variables</span>
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> previousMillis = <span style="color: #cc66cc;">0</span>;  <span style="color: #808080;">// Stores last time action was performed</span>
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> interval = <span style="color: #cc66cc;">100</span>; <span style="color: #808080;">//Default interval</span>
<span style="color: #0000ff;">bool</span> armMovingUp = <span style="color: #0080ff;">true</span>;
&nbsp;
<span style="color: #808080;">//Animation Variables</span>
<span style="color: #0000ff;">bool</span> happyActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> happyCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> sadActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> sadCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> angryActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> angryCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> confusedActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> confusedCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> laughActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> laughCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> waveActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> waveCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> danceActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> danceCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> nodActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> nodCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #0000ff;">bool</span> pointActivate = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">int</span> pointCycle = <span style="color: #cc66cc;">0</span>;
&nbsp;
<span style="color: #808080;">// Idle delay</span>
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> startTime = <span style="color: #cc66cc;">0</span>; <span style="color: #808080;">// variable to store the start time</span>
<span style="color: #0000ff;">bool</span> idleModeActive = <span style="color: #0080ff;">false</span>;
<span style="color: #0000ff;">bool</span> idleCount = <span style="color: #0080ff;">false</span>;
&nbsp;
&nbsp;
<span style="color: #0000ff;">void</span> setup<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0080ff;">Serial</span>.begin<span style="color: black;">&#40;</span><span style="color: #cc66cc;">9600</span><span style="color: black;">&#41;</span>;
  <span style="color: #808080;">// OLED Display</span>
  <span style="color: #808080;">// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally</span>
  <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>!display.begin<span style="color: black;">&#40;</span>SSD1306_SWITCHCAPVCC, <span style="color: #cc66cc;">0x3C</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span> <span style="color: #808080;">// Address 0x3C or 0x3D</span>
    <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span>F<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;SSD1306 allocation failed&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">for</span><span style="color: black;">&#40;</span>;;<span style="color: black;">&#41;</span>; <span style="color: #808080;">// Don't proceed, loop forever</span>
  <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #808080;">// Startup robo eyes</span>
  roboEyes.begin<span style="color: black;">&#40;</span>SCREEN_WIDTH, SCREEN_HEIGHT, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// screen-width, screen-height, max framerate - 60-100fps are good for smooth animations</span>
  roboEyes.setWidth<span style="color: black;">&#40;</span><span style="color: #cc66cc;">40</span>, <span style="color: #cc66cc;">40</span><span style="color: black;">&#41;</span>;
  roboEyes.setHeight<span style="color: black;">&#40;</span><span style="color: #cc66cc;">40</span>, <span style="color: #cc66cc;">40</span><span style="color: black;">&#41;</span>;
  roboEyes.close<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// start with closed eyes       </span>
&nbsp;
  <span style="color: #808080;">// Initialize servos</span>
  leftArm.attach<span style="color: black;">&#40;</span>A3<span style="color: black;">&#41;</span>; <span style="color: #808080;">// Attach left arm servo to pin A3</span>
  rightArm.attach<span style="color: black;">&#40;</span>A2<span style="color: black;">&#41;</span>; <span style="color: #808080;">// Attach right arm servo to pin A2</span>
&nbsp;
  <span style="color: #808080;">// Set initial positions for the arms</span>
  leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Neutral position with arms facing down</span>
  rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Neutral position with arms facing down</span>
&nbsp;
  <span style="color: black;">&#125;</span> <span style="color: #808080;">// end of setup</span>
&nbsp;
&nbsp;
  <span style="color: #0000ff;">void</span> loop<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    <span style="color: #808080;">// Update the roboEyes display</span>
    roboEyes.update<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">// Check for serial input</span>
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span><span style="color: #0080ff;">Serial</span>.available<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> &gt; <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
      <span style="color: #0000ff;">String</span> input = <span style="color: #0080ff;">Serial</span>.readStringUntil<span style="color: black;">&#40;</span><span style="color: #FF0000;">'</span><span style="color: #800000;">\n</span><span style="color: #FF0000;">'</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Read the serial input until a newline character</span>
      input.trim<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Remove any leading/trailing whitespace</span>
&nbsp;
       <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;wakeword&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.open<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">//Open eyes </span>
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
       <span style="color: #808080;">// roboEyes.anim_thinking(); //Play thinking animation  </span>
      <span style="color: black;">&#125;</span>
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;stopthink&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.anim_laugh<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; 
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Mood set to HAPPY&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;sad&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>; 
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        <span style="color: #808080;">// Set the eyes to SAD emotion</span>
        roboEyes.setMood<span style="color: black;">&#40;</span>TIRED<span style="color: black;">&#41;</span>; <span style="color: #808080;">//TIRED = SAD</span>
        sadActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Mood set to SAD&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;angry&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        <span style="color: #808080;">// Set the eyes to ANGRY emotion</span>
        roboEyes.setMood<span style="color: black;">&#40;</span>ANGRY<span style="color: black;">&#41;</span>;
        angryActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Mood set to ANGRY&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;happy&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        <span style="color: #808080;">// Set the eyes to HAPPY emotion</span>
        roboEyes.setMood<span style="color: black;">&#40;</span>HAPPY<span style="color: black;">&#41;</span>;
        happyActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Mood set to HAPPY&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;idle&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.anim_laugh<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset thinking animation</span>
        idleModeActive = <span style="color: #0080ff;">true</span>;     <span style="color: #808080;">// Mark idle mode as active</span>
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Mood set to idle&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span>
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;confused&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>TIRED<span style="color: black;">&#41;</span>; <span style="color: #808080;">//Set the eyes to SAD emotion</span>
        <span style="color: #808080;">// Play confused animation</span>
        roboEyes.anim_confused<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
        confusedActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Playing confused animation&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;laugh&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>HAPPY<span style="color: black;">&#41;</span>; <span style="color: #808080;">//Set the eyes to HAPPY emotion</span>
        <span style="color: #808080;">// Play laugh animation</span>
        roboEyes.anim_laugh<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
        laughActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Playing laugh animation&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span>
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;wave&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>HAPPY<span style="color: black;">&#41;</span>; <span style="color: #808080;">//Set the eyes to HAPPY emotion</span>
        <span style="color: #808080;">// Perform wave animation</span>
        waveActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Performing wave animation&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;point&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>HAPPY<span style="color: black;">&#41;</span>; <span style="color: #808080;">//Set the eyes to HAPPY emotion</span>
        <span style="color: #808080;">// Perform point animation</span>
        pointActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Performing point animation&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;nod&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>HAPPY<span style="color: black;">&#41;</span>; <span style="color: #808080;">//Set the eyes to HAPPY emotion</span>
        <span style="color: #808080;">// Perform nod animation</span>
        nodActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Performing nod animation&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>input.equalsIgnoreCase<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;shrug&quot;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
        roboEyes.setAutoblinker<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">7</span>, <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span>;
        roboEyes.setIdleMode<span style="color: black;">&#40;</span>ON, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span>;
        roboEyes.setMood<span style="color: black;">&#40;</span>TIRED<span style="color: black;">&#41;</span>; <span style="color: #808080;">//Set the eyes to TIRED emotion</span>
        roboEyes.anim_confused<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">//Play confused animation</span>
        <span style="color: #808080;">// Perform shrug animation</span>
        nodActivate = <span style="color: #0080ff;">true</span>;
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Performing shrug animation&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span> 
      <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Unrecognized command&quot;</span><span style="color: black;">&#41;</span>;
      <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>happyActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">200</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>happyCycle &lt; <span style="color: #cc66cc;">6</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span> 
            previousMillis = currentMillis; 
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Raise arms</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">40</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>;  
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Lower arms slightly</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">140</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>;   
                happyCycle += <span style="color: #cc66cc;">1</span>;      
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        happyCycle = <span style="color: #cc66cc;">0</span>;
        happyActivate = <span style="color: #0080ff;">false</span>;
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">120</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">120</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset Arms</span>
      <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>sadActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">600</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>sadCycle &lt; <span style="color: #cc66cc;">3</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            previousMillis = currentMillis;
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms up</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">45</span>, <span style="color: #cc66cc;">35</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">135</span>, <span style="color: #cc66cc;">35</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>;
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms down</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">35</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">35</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>; 
                sadCycle += <span style="color: #cc66cc;">1</span>; 
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        sadCycle = <span style="color: #cc66cc;">0</span>;  
        sadActivate = <span style="color: #0080ff;">false</span>;    
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">35</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">35</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset Arms</span>
      <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>angryActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">200</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>angryCycle &lt; <span style="color: #cc66cc;">5</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            previousMillis = currentMillis;
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms up</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">110</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">150</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>;
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms down</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">70</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>; 
                angryCycle += <span style="color: #cc66cc;">1</span>; 
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        angryCycle = <span style="color: #cc66cc;">0</span>;         
        angryActivate = <span style="color: #0080ff;">false</span>; 
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset Arms</span>
    <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>confusedActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">215</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>confusedCycle &lt; <span style="color: #cc66cc;">4</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            previousMillis = currentMillis;
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
              <span style="color: #808080;">// Move arms up</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">40</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">115</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>; 
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
              <span style="color: #808080;">// Move arms down</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">65</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">140</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>;
                confusedCycle += <span style="color: #cc66cc;">1</span>;
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        confusedCycle = <span style="color: #cc66cc;">0</span>;       
        confusedActivate = <span style="color: #0080ff;">false</span>;
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset Arms</span>
      <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>laughActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">200</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>laughCycle &lt; <span style="color: #cc66cc;">5</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            previousMillis = currentMillis; 
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
              <span style="color: #808080;">// Move arms up</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">130</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">50</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>; 
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms down</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">150</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>;  
                laughCycle += <span style="color: #cc66cc;">1</span>;
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        laughCycle = <span style="color: #cc66cc;">0</span>;       
        laughActivate = <span style="color: #0080ff;">false</span>;
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset Arms</span>
    <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>waveActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">225</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>waveCycle &lt; <span style="color: #cc66cc;">4</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            previousMillis = currentMillis;
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms up</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">90</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>;
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms down</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">150</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>;   
                waveCycle += <span style="color: #cc66cc;">1</span>;   
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        waveCycle = <span style="color: #cc66cc;">0</span>;
        waveActivate = <span style="color: #0080ff;">false</span>;
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">150</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset Arms</span>
    <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>nodActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">150</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>nodCycle &lt; <span style="color: #cc66cc;">2</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            previousMillis = currentMillis;
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
              <span style="color: #808080;">//Move arms up</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">120</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">60</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>;
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
              <span style="color: #808080;">//Move arms down</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">85</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">95</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>;
                nodCycle += <span style="color: #cc66cc;">1</span>;
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        nodCycle = <span style="color: #cc66cc;">0</span>; 
        nodActivate = <span style="color: #0080ff;">false</span>;
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// Reset arms</span>
    <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>pointActivate == <span style="color: #0080ff;">true</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    interval = <span style="color: #cc66cc;">2000</span>;
    <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>pointCycle &lt; <span style="color: #cc66cc;">1</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
        <span style="color: #0000ff;">int</span> currentMillis = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>currentMillis - previousMillis &gt;= interval<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
            previousMillis = currentMillis;
&nbsp;
            <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>armMovingUp<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
              <span style="color: #808080;">// Move arms up</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">130</span><span style="color: black;">&#41;</span>;  
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">130</span><span style="color: black;">&#41;</span>;  
                armMovingUp = <span style="color: #0080ff;">false</span>;
            <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
                <span style="color: #808080;">// Move arms down</span>
                leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">130</span><span style="color: black;">&#41;</span>;   
                rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">30</span>, <span style="color: #cc66cc;">130</span><span style="color: black;">&#41;</span>;   
                armMovingUp = <span style="color: #0080ff;">true</span>;
                pointCycle += <span style="color: #cc66cc;">1</span>;
            <span style="color: black;">&#125;</span>
        <span style="color: black;">&#125;</span>
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
        pointCycle = <span style="color: #cc66cc;">0</span>; 
        pointActivate = <span style="color: #0080ff;">false</span>;
        leftArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">130</span><span style="color: black;">&#41;</span>;
        rightArm.write<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180</span>, <span style="color: #cc66cc;">130</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">//Reset arms</span>
    <span style="color: black;">&#125;</span>
   <span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>idleModeActive<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    startTime = <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// record the start time</span>
    idleModeActive = <span style="color: #0080ff;">false</span>; <span style="color: #808080;">// set the flag to false</span>
    idleCount = <span style="color: #0080ff;">true</span>;
   <span style="color: black;">&#125;</span>
&nbsp;
&nbsp;
  <span style="color: #0000ff;">if</span> <span style="color: black;">&#40;</span>idleCount &amp;&amp; <span style="color: #0080ff;">millis</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> - startTime &gt;= <span style="color: #cc66cc;">10</span>*<span style="color: #cc66cc;">60000</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
    roboEyes.close<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>;
    roboEyes.setPosition<span style="color: black;">&#40;</span>DEFAULT<span style="color: black;">&#41;</span>;
    roboEyes.setAutoblinker<span style="color: black;">&#40;</span>OFF<span style="color: black;">&#41;</span>;
    roboEyes.setIdleMode<span style="color: black;">&#40;</span>OFF<span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">Serial</span>.println<span style="color: black;">&#40;</span><span style="color: #FF0000;">&quot;Idle mode deactivated after 10 minutes.&quot;</span><span style="color: black;">&#41;</span>;
    idleModeActive = <span style="color: #0080ff;">false</span>; 
    idleCount = <span style="color: #0080ff;">false</span>;
   <span style="color: black;">&#125;</span>
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div>Si vous avez une solution à mon petit problème , je serai preneur<br />
merci encore<br />
pascal</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>cobra38</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182455/general-developpement/programmation-systeme/embarque/arduino/ssd1306-allocation-failed/</guid>
		</item>
		<item>
			<title>Transférer plusieurs données sur port com 2 questions</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182389&amp;goto=newpost</link>
			<pubDate>Sun, 01 Mar 2026 17:52:08 GMT</pubDate>
			<description>bonjour a toutes et tous, 
je...</description>
			<content:encoded><![CDATA[<div>bonjour a toutes et tous,<br />
je suis débutant tout nouveau en arduino <br />
<br />
je rencontre un problème d'envoie de donnée sur le port com vers mon pc<br />
je génère bien des donnée sur le portcom en utilisant serial.println<br />
et la lecture se fait sur le pc donc liaison de communication fonctionne<br />
si j'envoie cela <br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">     serial.println<span style="color: black;">&#40;</span>round<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180.00</span><span style="color: black;">&#41;</span>+ <span style="color: black;">&#40;</span>round<span style="color: black;">&#40;</span><span style="color: #cc66cc;">40.00</span><span style="color: black;">&#41;</span>;</code><hr />
</div>lecture du port usb sur pc <br />
il ne maffiche que €180<br />
<br />
<br />
si j'envoie depuis arduino cela<br />
 <div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">    serial.println <span style="color: black;">&#40;</span>round<span style="color: black;">&#40;</span><span style="color: #cc66cc;">180.00</span><span style="color: black;">&#41;</span>; serial.println<span style="color: black;">&#40;</span>round<span style="color: black;">&#40;</span><span style="color: #cc66cc;">40.00</span><span style="color: black;">&#41;</span>;</code><hr />
</div><br />
affichage 2 ligne ?<br />
€180<br />
40<br />
<br />
2 questions:<br />
1°) comment envoyer corectement mes deux valeur sur une seul ligne <br />
2°) comment enlever le € au depar de ma trame reçu ?<br />
<br />
cordialement</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>alll1</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182389/general-developpement/programmation-systeme/embarque/arduino/transferer-plusieurs-donnees-port-com-2-questions/</guid>
		</item>
		<item>
			<title>Travelling X Z pour Raspberry Pi Camera Module 3 via arduino mega 2560</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2182256&amp;goto=newpost</link>
			<pubDate>Sun, 22 Feb 2026 08:31:02 GMT</pubDate>
			<description>Bonjour à tous, 
 
Je...</description>
			<content:encoded><![CDATA[<div>Bonjour à tous,<br />
<br />
Je souhaite faire glisser une Raspberry Pi Camera Module 3, sur l'axe x, puis l'axe Z, afin d'être au centre du sujet cible, pour un timelapse.<br />
Pour ce faire, je dispose de deux Micro moteur CH-SM1545-M3xP0.5 (2 phases, 4 fils bipolaires – 12V – dont la course de l'arbre fileté = 80mm), et chacun d'eux sera piloter par son propre contrôleur de  moteur type A4988. La sélection ou la mise sous tension d'un des deux moteur, sera faite par un interrupteur à bascule type KCD3 ON-OFF-ON SPDT 3Positions. Selon la position de l'interrupteur (droite ou gauche), le moteur cible sera sous tension, alors que l'autre sera hors circuit.<br />
<br />
Voici le schéma électrique pour un seul moteur et son code arduino. Cela fonctionne bien avec les capteurs de limite IR.<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p674449d1771748874/general-developpement/programmation-systeme/embarque/arduino/travelling-x-z-raspberry-pi-camera-module-3-via-arduino-mega-2560/schema_ch-sm1545-m3xp0.5-_potentiometre-msx-endstop.jpg/" border="0" alt="Nom : Schema_CH-SM1545-M3xP0.5 _Potentiomètre - MSx - EndStop.jpg
Affichages : 335
Taille : 153,1 Ko"  style="float: CONFIG" /><br />
<img src="https://www.developpez.net/forums/attachments/p674450d1771748922/general-developpement/programmation-systeme/embarque/arduino/travelling-x-z-raspberry-pi-camera-module-3-via-arduino-mega-2560/schema_tableau-pins-connexion.jpg/" border="0" alt="Nom : Schema_Tableau PINs connexion.jpg
Affichages : 313
Taille : 92,5 Ko"  style="float: CONFIG" /><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;">/* </span>
<span style="color: #808080;">Arduino Mega + A4988</span>
<span style="color: #808080;">Capteurs (IR en U) + potentiom&egrave;tre contr&ocirc;le distance et direction apr&egrave;s recul</span>
&nbsp;
<span style="color: #808080;">--- Diagramme d&#146;&eacute;tat : Moteur + Potar + Capteurs ---</span>
&nbsp;
<span style="color: #808080;">[START / Moteur immobile]</span>
<span style="color: #808080;">&nbsp;        |</span>
<span style="color: #808080;">&nbsp;        | Potar boug&eacute; &rarr; au-del&agrave; zone morte</span>
<span style="color: #808080;">&nbsp;        v</span>
<span style="color: #808080;">[D&eacute;placement par potar]</span>
<span style="color: #808080;">&nbsp;        |</span>
<span style="color: #808080;">&nbsp;        | Capteur d&eacute;clench&eacute; (IR)</span>
<span style="color: #808080;">&nbsp;        v</span>
<span style="color: #808080;">[Recul 1 cm en micro-pas]</span>
<span style="color: #808080;">&nbsp;        |</span>
<span style="color: #808080;">&nbsp;        | Recul termin&eacute;</span>
<span style="color: #808080;">&nbsp;        v</span>
<span style="color: #808080;">[Moteur en PAUSE apr&egrave;s recul]</span>
<span style="color: #808080;">&nbsp;        |</span>
<span style="color: #808080;">&nbsp;        | Potar manipul&eacute; par l'utilisateur (delta &gt; zone morte)</span>
<span style="color: #808080;">&nbsp;        v</span>
<span style="color: #808080;">[Reprise contr&ocirc;le par potar]</span>
<span style="color: #808080;">&nbsp;        |</span>
<span style="color: #808080;">&nbsp;        +--&gt; [D&eacute;placement par potar]</span>
&nbsp;
<span style="color: #808080;">*/</span>
&nbsp;
<span style="color: #808080;">// Moteur PIN</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MOTOR_DIR_PIN = <span style="color: #cc66cc;">2</span>;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MOTOR_STEP_PIN = <span style="color: #cc66cc;">3</span>;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MOTOR_ENABLE_PIN = <span style="color: #cc66cc;">6</span>;
&nbsp;
<span style="color: #808080;">// EndStop PIN signal</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> ENDSTOP_IR0 = <span style="color: #cc66cc;">7</span>;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> ENDSTOP_IR1 = <span style="color: #cc66cc;">11</span>;
&nbsp;
<span style="color: #808080;">// EndStop MSx PIN</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MS1_PIN = <span style="color: #cc66cc;">8</span>;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MS2_PIN = <span style="color: #cc66cc;">9</span>;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> MS3_PIN = <span style="color: #cc66cc;">10</span>;
&nbsp;
<span style="color: #808080;">// Potentiom&egrave;tre PIN Signal</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> POT_PIN = A0;
&nbsp;
<span style="color: #808080;">// Param&egrave;tres moteur</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> Nb_Recul = <span style="color: #cc66cc;">200</span>;        <span style="color: #808080;">// 1cm en full-step=400pas --- 0.5cm en full-step=200pas</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> microStepFactor = <span style="color: #cc66cc;">16</span>;   <span style="color: #808080;">// micro-pas pour recul</span>
&nbsp;
<span style="color: #808080;">/* </span>
<span style="color: #808080;">Le moteur avance d&#146;un pas &agrave; chaque impulsion STEP.</span>
<span style="color: #808080;">La vitesse du moteur d&eacute;pend uniquement du temps entre deux impulsions.</span>
<span style="color: #808080;">motorDelayMax est grand, plus le mouvement minimal est lent et pr&eacute;cis.</span>
<span style="color: #808080;">Plus motorDelayMin est petit, plus le moteur va vite.</span>
<span style="color: #808080;">*/</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> motorDelayMax = <span style="color: #cc66cc;">1500</span>;   <span style="color: #808080;">// microsecondes max STEP &micro;s (lent)  1500 &asymp; 1 mm/s</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> motorDelayMin = <span style="color: #cc66cc;">400</span>;    <span style="color: #808080;">// microsecondes min STEP &micro;s (rapide) 400 &asymp; 3,9 mm/s</span>
&nbsp;
<span style="color: #808080;">/* </span>
<span style="color: #808080;">La zone morte (deadZone) est un intervalle central autour de la valeur neutre du potar o&ugrave; aucun mouvement du moteur n&#146;est d&eacute;clench&eacute;.</span>
<span style="color: #808080;">Exemple : const int deadZone = 50;</span>
<span style="color: #808080;">Si le potentiom&egrave;tre est entre -50 et +50 autour du centre, le moteur reste immobile.</span>
<span style="color: #808080;">*/</span>
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> deadZone = <span style="color: #cc66cc;">200</span>;          <span style="color: #808080;">// zone morte du potar</span>
&nbsp;
<span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> accelStep = <span style="color: #cc66cc;">1</span>;          <span style="color: #808080;">// incr&eacute;ment de lissage pour acceleration 2  4</span>
&nbsp;
<span style="color: #0000ff;">bool</span> reculEffectue = <span style="color: #0080ff;">false</span>;       <span style="color: #808080;">// vrai apr&egrave;s recul</span>
<span style="color: #0000ff;">bool</span> pauseAfterRecul = <span style="color: #0080ff;">false</span>;     <span style="color: #808080;">// moteur en pause apr&egrave;s recul</span>
<span style="color: #0000ff;">int</span> potRef = <span style="color: #cc66cc;">0</span>;                   <span style="color: #808080;">// valeur de r&eacute;f&eacute;rence du potar apr&egrave;s recul</span>
<span style="color: #0000ff;">int</span> ir0LastState = <span style="color: #cc66cc;">0</span>;
<span style="color: #0000ff;">int</span> ir1LastState = <span style="color: #cc66cc;">0</span>;
&nbsp;
&nbsp;
<span style="color: #0000ff;">int</span> currentDelay = motorDelayMax;
<span style="color: #0000ff;">bool</span> potInverted = <span style="color: #0080ff;">false</span>;         <span style="color: #808080;">// true = inverser la direction du potar</span>
&nbsp;
<span style="color: #808080;">// Fonction STEP simple</span>
<span style="color: #0000ff;">void</span> stepMotor<span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> delayMicro<span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MOTOR_STEP_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">delayMicroseconds</span><span style="color: black;">&#40;</span>delayMicro<span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MOTOR_STEP_PIN, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">delayMicroseconds</span><span style="color: black;">&#40;</span>delayMicro<span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> setup<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>MOTOR_DIR_PIN, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>MOTOR_STEP_PIN, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>MOTOR_ENABLE_PIN, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #808080;">// pinMode(ENDSTOP_MECA, INPUT_PULLUP);</span>
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>ENDSTOP_IR0, <span style="color: #0080ff;">INPUT</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>ENDSTOP_IR1, <span style="color: #0080ff;">INPUT</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>MS1_PIN, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>MS2_PIN, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">pinMode</span><span style="color: black;">&#40;</span>MS3_PIN, <span style="color: #0080ff;">OUTPUT</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #808080;">// Micro-pas 1/16 pour recul</span>
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS1_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS2_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS3_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
  <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MOTOR_ENABLE_PIN, <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: black;">&#41;</span>; <span style="color: #808080;">// stabilisation capteurs</span>
  ir0LastState = <span style="color: #0080ff;">digitalRead</span><span style="color: black;">&#40;</span>ENDSTOP_IR0<span style="color: black;">&#41;</span>;
  ir1LastState = <span style="color: #0080ff;">digitalRead</span><span style="color: black;">&#40;</span>ENDSTOP_IR1<span style="color: black;">&#41;</span>;
<span style="color: black;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> loop<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> <span style="color: black;">&#123;</span>
  <span style="color: #808080;">// ===== Lecture potar =====</span>
  <span style="color: #0000ff;">int</span> potValue = <span style="color: #0080ff;">analogRead</span><span style="color: black;">&#40;</span>POT_PIN<span style="color: black;">&#41;</span> - <span style="color: #cc66cc;">512</span>;
  <span style="color: #0000ff;">int</span> potAbs = <span style="color: #0080ff;">abs</span><span style="color: black;">&#40;</span>potValue<span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #808080;">// D&eacute;termination direction potar avec inversion si activ&eacute;</span>
  <span style="color: #0000ff;">bool</span> direction = potInverted ? <span style="color: black;">&#40;</span>potValue &lt; <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span> : <span style="color: black;">&#40;</span>potValue &gt; <span style="color: #cc66cc;">0</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #808080;">// ===== Lecture capteurs =====</span>
  <span style="color: #0000ff;">int</span> ir0State = <span style="color: #0080ff;">digitalRead</span><span style="color: black;">&#40;</span>ENDSTOP_IR0<span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">int</span> ir1State = <span style="color: #0080ff;">digitalRead</span><span style="color: black;">&#40;</span>ENDSTOP_IR1<span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #0000ff;">bool</span> ir0Triggered  = <span style="color: black;">&#40;</span>ir0State == <span style="color: #0080ff;">HIGH</span> &amp;&amp; ir0LastState == <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
  <span style="color: #0000ff;">bool</span> ir1Triggered  = <span style="color: black;">&#40;</span>ir1State == <span style="color: #0080ff;">HIGH</span> &amp;&amp; ir1LastState == <span style="color: #0080ff;">LOW</span><span style="color: black;">&#41;</span>;
&nbsp;
  <span style="color: #808080;">// ===== Recul 1 cm si capteur d&eacute;clench&eacute; =====</span>
  <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>!reculEffectue &amp;&amp; <span style="color: black;">&#40;</span>ir0Triggered || ir1Triggered<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span><span style="color: black;">&#123;</span>
    <span style="color: #0080ff;">delay</span><span style="color: black;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">// Micro-pas pour recul</span>
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS1_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS2_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS3_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MOTOR_DIR_PIN, !direction<span style="color: black;">&#41;</span>; <span style="color: #808080;">// reculer dans sens oppos&eacute; au potar</span>
    <span style="color: #0000ff;">for</span><span style="color: black;">&#40;</span><span style="color: #0000ff;">int</span> i=<span style="color: #cc66cc;">0</span>; i&lt;Nb_Recul*microStepFactor; i++<span style="color: black;">&#41;</span><span style="color: black;">&#123;</span>
      stepMotor<span style="color: black;">&#40;</span>motorDelayMin<span style="color: black;">&#41;</span>;
    <span style="color: black;">&#125;</span>
&nbsp;
    <span style="color: #808080;">// Recul termin&eacute; &rarr; moteur en pause</span>
    reculEffectue = <span style="color: #0080ff;">true</span>;
    pauseAfterRecul = <span style="color: #0080ff;">true</span>;
    potRef = potValue; <span style="color: #808080;">// m&eacute;moriser la valeur du potar apr&egrave;s recul</span>
&nbsp;
    <span style="color: #808080;">// Mise &agrave; jour &eacute;tats capteurs</span>
    ir0LastState = <span style="color: #0080ff;">digitalRead</span><span style="color: black;">&#40;</span>ENDSTOP_IR0<span style="color: black;">&#41;</span>;
    ir1LastState = <span style="color: #0080ff;">digitalRead</span><span style="color: black;">&#40;</span>ENDSTOP_IR1<span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">return</span>; <span style="color: #808080;">// ne rien faire d'autre</span>
  <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #808080;">// ===== V&eacute;rification pause apr&egrave;s recul =====</span>
  <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>pauseAfterRecul<span style="color: black;">&#41;</span><span style="color: black;">&#123;</span>
    <span style="color: #0000ff;">int</span> deltaPot = <span style="color: #0080ff;">abs</span><span style="color: black;">&#40;</span>potValue - potRef<span style="color: black;">&#41;</span>;
    <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>deltaPot &gt; deadZone<span style="color: black;">&#41;</span><span style="color: black;">&#123;</span>
      <span style="color: #808080;">// l'utilisateur a boug&eacute; le potar &rarr; reprise</span>
      pauseAfterRecul = <span style="color: #0080ff;">false</span>;
    <span style="color: black;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: black;">&#123;</span>
      <span style="color: #0000ff;">return</span>; <span style="color: #808080;">// moteur reste en pause</span>
    <span style="color: black;">&#125;</span>
  <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #808080;">// ===== STEP proportionnel au potar avec acceleration =====</span>
  <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>potAbs &gt;= deadZone<span style="color: black;">&#41;</span><span style="color: black;">&#123;</span>
    <span style="color: #808080;">// Micro-pas 1/16 pour recul</span>
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS1_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS2_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MS3_PIN, <span style="color: #0080ff;">HIGH</span><span style="color: black;">&#41;</span>;
    <span style="color: #808080;">/* </span>
<span style="color: #808080;">&nbsp;   // Passer en full-step pour potar</span>
<span style="color: #808080;">&nbsp;   digitalWrite(MS1_PIN, LOW);</span>
<span style="color: #808080;">&nbsp;   digitalWrite(MS2_PIN, LOW);</span>
<span style="color: #808080;">&nbsp;   digitalWrite(MS3_PIN, LOW); </span>
<span style="color: #808080;">&nbsp;   */</span>
    <span style="color: #0080ff;">digitalWrite</span><span style="color: black;">&#40;</span>MOTOR_DIR_PIN, direction<span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">// Calcul vitesse cible selon potar</span>
    <span style="color: #0000ff;">int</span> targetDelay = <span style="color: #0080ff;">map</span><span style="color: black;">&#40;</span>potAbs, deadZone, <span style="color: #cc66cc;">512</span>, motorDelayMax, motorDelayMin<span style="color: black;">&#41;</span>;
    targetDelay = <span style="color: #0080ff;">constrain</span><span style="color: black;">&#40;</span>targetDelay, motorDelayMin, motorDelayMax<span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">// Lissage acceleration/d&eacute;celeration</span>
    <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>currentDelay &lt; targetDelay<span style="color: black;">&#41;</span>
      currentDelay += accelStep;
    <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>currentDelay &gt; targetDelay<span style="color: black;">&#41;</span>
      currentDelay -= accelStep;
&nbsp;
    currentDelay = <span style="color: #0080ff;">constrain</span><span style="color: black;">&#40;</span>currentDelay, motorDelayMin, motorDelayMax<span style="color: black;">&#41;</span>;
&nbsp;
    stepMotor<span style="color: black;">&#40;</span>currentDelay<span style="color: black;">&#41;</span>;
&nbsp;
    <span style="color: #808080;">// Autoriser un nouveau recul si le potar est utilis&eacute; apr&egrave;s recul</span>
    <span style="color: #0000ff;">if</span><span style="color: black;">&#40;</span>reculEffectue<span style="color: black;">&#41;</span><span style="color: black;">&#123;</span>
      reculEffectue = <span style="color: #0080ff;">false</span>;
    <span style="color: black;">&#125;</span>
  <span style="color: black;">&#125;</span>
&nbsp;
  <span style="color: #808080;">// Mise &agrave; jour derniers &eacute;tats des capteurs</span>
  ir0LastState = ir0State;
  ir1LastState = ir1State;
<span style="color: black;">&#125;</span></pre></td></tr></table></code><hr />
</div><br />
<br />
J'ai plusieurs questions pour le schéma électrique.<br />
Je ne veux pas répliquer mon schéma pour chaque moteur. Je vais me retrouver avec deux alimentations 12V et deux potentiomètres pour le positionnement du moteur X sur l'axe X et la même chose pour l'axe Z.<br />
Peut-on alimenter en 12V, les deux A4988 via un troisième A4988?<br />
Ou dois-je placer l'interrupteur à bascule? À la entre le 3ème A4988 et les deux autres, ou est-ce faisable, directement sur l'arduino mega 2560.<br />
<br />
Merci pour votre temps, et vos idées. J'ai peux d'expérience et curieux.</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p674449d1771748874/general-developpement/programmation-systeme/embarque/arduino/travelling-x-z-raspberry-pi-camera-module-3-via-arduino-mega-2560/schema_ch-sm1545-m3xp0.5-_potentiometre-msx-endstop.jpg/" alt="" />&nbsp;<img class="attach" src="https://www.developpez.net/forums/attachments/p674450d1771748922/general-developpement/programmation-systeme/embarque/arduino/travelling-x-z-raspberry-pi-camera-module-3-via-arduino-mega-2560/schema_tableau-pins-connexion.jpg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f2094/general-developpement/programmation-systeme/embarque/arduino/">Arduino</category>
			<dc:creator>LS_Soleil</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2182256/general-developpement/programmation-systeme/embarque/arduino/travelling-x-z-raspberry-pi-camera-module-3-via-arduino-mega-2560-a/</guid>
		</item>
	</channel>
</rss>
