Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2018-11-13T17:50:43+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Capteur de qualité de l'air Arduino ne fonctionne pas, message #1930142018-11-13T17:50:43+01:00jerkoco/@jerkocohttps://zestedesavoir.com/forums/sujet/11584/capteur-de-qualite-de-lair-arduino-ne-fonctionne-pas/?page=1#p193014<p>up :/</p>Capteur de qualité de l'air Arduino ne fonctionne pas, message #1928842018-11-11T18:51:17+01:00jerkoco/@jerkocohttps://zestedesavoir.com/forums/sujet/11584/capteur-de-qualite-de-lair-arduino-ne-fonctionne-pas/?page=1#p192884<p>Bonjour, je souhaite utiliser un capteur de <a href="http://wiki.seeedstudio.com/Grove-Air_Quality_Sensor_v1.3/">qualité de l’air Grove </a></p>
<p>Comme indiqué dans la <a href="http://wiki.seeedstudio.com/Grove-Air_Quality_Sensor_v1.3/">documentation</a>, je l’ai branché à mon Arduino de la façon suivante:
<strong>GND(cable noir du capteur) > GND arduino</strong></p>
<p><strong>VCC (cable rouge du capteur) > 5V arduino</strong></p>
<p><strong>SIG (cable jaune du capteur) > A0 arduino$</strong></p>
<p>J’ai téléversé le programme de test indiqué dans la doc, et mon moniteur série est censé renvoyer ça:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-text">sys_starting...
The init voltage is ...
82
Sensor ready.
Test begin...
sensor_value: 37 Fresh air
</code></pre></div>
<p>Seulement, il renvoie ça (c’est à dire le message coupé):</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span></div><pre><code class="hljs language-text">sys_starting...
Th
</code></pre></div>
<p>Quand j’augmente le nombre de bauds, dans le programme et le moniteur, j’arrive à avoir un message plus long (d’après la doc, je ne devrais pas avoir à faire ça)
A 2 Millions de bauds, j’obtiens ça:</p>
<div class="hljs-code-div"><div class="hljs-line-numbers"><span></span><span></span><span></span><span></span></div><pre><code class="hljs language-text">sys_starting...
The init voltage is ...
82
Sensor ready.
</code></pre></div>
<p>Mais toujours pas de réponse du capteur…</p>
<p>Sachant que j’ai réussi à obtenir la réponse coupé ci dessus dans le moniteur série, <strong>alors même que le module est déconnecté</strong> <img src="/static/smileys/blink.gif" alt="o_O" class="smiley">
Pourtant, quand le module est connecté, il semble être alimenté, la led brille et ne clignote pas..</p>
<p>Voilà ma configuration en photo:</p>
<figure><img src="https://scontent-cdg2-1.xx.fbcdn.net/v/t1.15752-9/s2048x2048/45743068_191983298389343_698695427058302976_n.jpg?_nc_cat=101&_nc_ht=scontent-cdg2-1.xx&oh=366fbba3b95c8ccdb539716265f0e8a4&oe=5C79B242" alt="Image utilisateur"><figcaption>Image utilisateur</figcaption></figure>
<p>Une idée d’où pourrait venir le problème ? Merci <img src="/static/smileys/smile.png" alt=":)" class="smiley"></p>affichage de données sur un lcd, message #1598872017-08-16T21:26:02+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159887<p>J’ai résolu le problème, c’était bien :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPerso</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPerso</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPerso</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
</pre></div>
</td></tr></table></div>
<p>et non :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
</pre></div>
</td></tr></table></div>
<p>Je suis désolé de vous avoir "mobilisez" pour pas grand chose, je vous remercie beaucoup de votre temps.
Je remercie tout particulièrement Eskimon, pour son blog http://eskimon.fr, qui ma grandement aider avec l’arduino <img alt="^^" src="/static/smileys/hihi.png"></p>affichage de données sur un lcd, message #1598842017-08-16T19:43:12+02:00Lika Kavkasidze/@Lika%20Kavkasidzehttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159884<p>Voilà ce que te dit Eskimon :</p>
<p>Regarde tes conditions :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
</pre></div>
</td></tr></table></div>
<p>Te prends en compte les valeurs respectives de valPerso ET de valPersoFin (je présume que ce n’est pas ce que tu veux, parce qu’on ne voit pas ce genre de structures souvent, mais je n’ai pas lu le code entier).</p>
<p>Bien, voyons maintenant ce que vaut ta valeur valeurPersoFin lors du tout premier lancement de la boucle : comme elle n’est pas réassignée après, alors la déclaration de ta variable fait foi, <code>int valPersoFin = 0;</code>, donc cette variable vaut 0, de ce fait, elle n’est NI inférieure à 720, NI inférieure à 380, NI inférieure à 4, donc les conditions de tes ifs sont toutes fausses.</p>affichage de données sur un lcd, message #1598832017-08-16T19:38:51+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159883<p>quel est le problème alors ?</p>affichage de données sur un lcd, message #1598782017-08-16T18:56:35+02:00Eskimon/@Eskimonhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159878<p>Oui pour l’initialisation mais tu ne rentreras toujours dans aucun des if</p>affichage de données sur un lcd, message #1598742017-08-16T17:46:55+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159874<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="cp">#include</span> <span class="cpf"><LiquidCrystal.h></span><span class="cp"></span>
<span class="nf">LiquidCrystal</span> <span class="nf">lcd</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="kr">int</span> <span class="n">sensor</span> <span class="o">=</span> <span class="n">A0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">potar</span> <span class="o">=</span> <span class="n">A5</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">valPerso</span> <span class="o">=</span> <span class="mi">1023</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">compteur</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">NB_VALEURS</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">moyenne</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">pourcent</span><span class="p">;</span>
<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span>
<span class="p">{</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Initialisation"</span><span class="p">);</span>
<span class="nf">pinMode</span><span class="p">(</span><span class="n">potar</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span>
<span class="nf">pinMode</span><span class="p">(</span><span class="n">sensor</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">valPerso</span> <span class="o">=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">potar</span><span class="p">);</span>
<span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">110</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">300</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">466</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">600</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">699</span><span class="p">;</span>
<span class="p">}</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"valPersoFin"</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">valPersoFin</span><span class="p">);</span>
<span class="n">somme</span> <span class="o">+=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">sensor</span><span class="p">);</span>
<span class="n">compteur</span> <span class="o">=</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="n">NB_VALEURS</span><span class="p">;</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"somme"</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">somme</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">moyenne</span> <span class="o">=</span> <span class="n">somme</span><span class="o">/</span><span class="n">NB_VALEURS</span><span class="p">;</span>
<span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"moyenne"</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span>
<span class="c1">//pourcent = (moyenne*100)/700;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o">>=</span> <span class="n">tropHumide</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Je me nois !"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o"><=</span> <span class="n">valPersoFin</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"ARROSE MOI !"</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span> <span class="c1">// pourcent);</span>
<span class="c1">//lcd.print(" %");</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o">>=</span> <span class="n">valPersoFin</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"OK"</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span> <span class="c1">// pourcent);</span>
<span class="c1">//lcd.print(" %");</span>
<span class="p">}</span>
<span class="k">else</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">home</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"ERREUR"</span><span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="nf">delay</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<p>C’est mieux ?</p>affichage de données sur un lcd, message #1598732017-08-16T17:31:39+02:00Eskimon/@Eskimonhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159873<p>Tu dois surtout initialisé tes variables quand tu les déclares pour savoir comment ton programme va se comporter au départ, et tu peux mettre en <code>else</code> final dans tes if..elseif pour faire quelque chose au cas ou tu ne rentres dans aucun des cas.</p>affichage de données sur un lcd, message #1598722017-08-16T17:17:29+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159872<p>je doit donc mettre</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">valPersoFin</span><span class="p">);</span>
</pre></div>
</td></tr></table></div>
<p>dans la boucle commençant par</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
<p>?</p>affichage de données sur un lcd, message #1598712017-08-16T17:09:46+02:00Eskimon/@Eskimonhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159871<p>Non, car on ne rentre dans aucun des blocs en partant du principe que valPersoFin sera par défaut à 0 (car la variable a forcément une valeur de départ, très probablement 0).</p>affichage de données sur un lcd, message #1598702017-08-16T17:00:23+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159870<p>Pourtant je n’ais pas affecté de valeur pas défaut a valPersoFin, et a la suite de ce bloc :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="n">valPerso</span> <span class="o">=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">potar</span><span class="p">);</span>
<span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">110</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">300</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">466</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">600</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">699</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<p>valPersoFin est censé avoir une valeur, soit 100,300,600, etc ? non?</p>affichage de données sur un lcd, message #1598692017-08-16T16:53:08+02:00Eskimon/@Eskimonhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159869<p>Parce que tu ne rentre dans aucun des if si valpersofin vaut 0 par défaut…</p>affichage de données sur un lcd, message #1598682017-08-16T16:50:13+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159868<p>quand je fais ce code :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="cp">#include</span> <span class="cpf"><LiquidCrystal.h></span><span class="cp"></span>
<span class="nf">LiquidCrystal</span> <span class="nf">lcd</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="kr">int</span> <span class="n">sensor</span> <span class="o">=</span> <span class="n">A0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">potar</span> <span class="o">=</span> <span class="n">A5</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">value</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">valPerso</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">valPersoFin</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">tropHumide</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">compteur</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">NB_VALEURS</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">moyenne</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">pourcent</span><span class="p">;</span>
<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span>
<span class="p">{</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">9600</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Initialisation"</span><span class="p">);</span>
<span class="nf">pinMode</span><span class="p">(</span><span class="n">potar</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span>
<span class="nf">pinMode</span><span class="p">(</span><span class="n">sensor</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">valPerso</span> <span class="o">=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">potar</span><span class="p">);</span>
<span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">110</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">300</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">466</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">600</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">699</span><span class="p">;</span>
<span class="p">}</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"valPersoFin"</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">valPersoFin</span><span class="p">);</span>
<span class="n">somme</span> <span class="o">+=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">sensor</span><span class="p">);</span>
<span class="n">compteur</span> <span class="o">=</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="n">NB_VALEURS</span><span class="p">;</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"somme"</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">somme</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">moyenne</span> <span class="o">=</span> <span class="n">somme</span><span class="o">/</span><span class="n">NB_VALEURS</span><span class="p">;</span>
<span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">""</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="s">"moyenne"</span><span class="p">);</span>
<span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span>
<span class="c1">//pourcent = (moyenne*100)/700;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o">>=</span> <span class="n">tropHumide</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Je me nois !"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o"><=</span> <span class="n">valPersoFin</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"ARROSE MOI !"</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span> <span class="c1">// pourcent);</span>
<span class="c1">//lcd.print(" %");</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o">>=</span> <span class="n">valPersoFin</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"OK"</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span> <span class="c1">// pourcent);</span>
<span class="c1">//lcd.print(" %");</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="nf">delay</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<p>Le moniteur série met 0 pour valPersoFin, la valeur de somme augmente a priori normalement, et moyenne est aussi normale :</p>
<p>valPersoFin
0</p>
<p>somme
0</p>
<p>valPersoFin
0</p>
<p>somme
0</p>
<p>valPersoFin
0</p>
<p>somme
0</p>
<p>valPersoFin
0</p>
<p>somme
0</p>
<p>valPersoFin
0</p>
<p>somme
0</p>
<p>moyenne
0</p>
<p>valPersoFin
0</p>
<p>somme
0</p>
<p>valPersoFin
0</p>
<p>somme
3</p>
<p>valPersoFin
0</p>
<p>somme
52</p>
<p>valPersoFin
0</p>
<p>somme
153</p>
<p>valPersoFin
0</p>
<p>somme
254</p>
<p>moyenne
50</p>
<p>valPersoFin
0</p>
<p>somme
94</p>
<p>valPersoFin
0</p>
<p>somme
190</p>
<p>valPersoFin
0</p>
<p>somme
290</p>
<p>valPersoFin
0</p>
<p>somme
389</p>
<p>valPersoFin
0</p>
<p>somme
489</p>
<p>moyenne
97</p>
<p>valPersoFin
0</p>
<p>somme
Donc la valeur qui semble déconner est valPersoFin, puisque meme en bougeant le potar, la valeur reste à 0</p>affichage de données sur un lcd, message #1598302017-08-16T11:33:35+02:00Eskimon/@Eskimonhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159830<p>afficher les données comme <code>somme</code>, <code>moyenne</code>, <code>valPersoFin</code> etc pour voir si elles sont cohérentes au cours du programme et comprendre à quel moment ca déconne.</p>affichage de données sur un lcd, message #1598262017-08-16T11:09:34+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159826<p>qu’entends tu par "valeurs intéressantes" Eskimon ? desolé je ne comprends pas bien ta question… </p>affichage de données sur un lcd, message #1598232017-08-16T10:38:18+02:00Eskimon/@Eskimonhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159823<figure>
<blockquote>
<p>Ta variable "compteur" ne retourne jamais à 0, l’affichage semble ne pas pouvoir être mis à jour.</p>
</blockquote>
<figcaption><a href="https://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159821">Spit</a></figcaption>
</figure>
<p>Elle le fait implicitement via le modulo l.47 . Par contre la moyenne meriterait plutot d’être faite sur un "tableau qui tourne".</p>
<p>Si tu print les valeurs intéressantes à différents endroits du code ca donne quoi ?</p>affichage de données sur un lcd, message #1598212017-08-16T10:27:28+02:00Spit/@Spithttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159821<p>Salut,</p>
<p><del>Ta variable "compteur" ne retourne jamais à 0, l’affichage semble ne pas pouvoir être mis à jour.</del></p>
<p>EDIT: Bien vu Eskimon, je l’ai pris pour une division.</p>affichage de données sur un lcd, message #1597652017-08-15T13:10:26+02:00QuantCloud/@QuantCloudhttps://zestedesavoir.com/forums/sujet/9141/affichage-de-donnees-sur-un-lcd/?page=1#p159765<p>Bonjour,
Dans le cadre d’un projet perso, j’ai réalisé un système qui dit, via un afficheur lcd, si il faut arroser une plante ou non, j’utilises un capteur d’humidité grove qui mesure l’humidité de la plante et la compare à des valeurs prédéfinies pour savoir si la plantes est sèche ou assez humide.
J’ai ajouter a ça un sélecteur (un potentiomètre), qui comporte 3 "zones", correspondants chacune a un intervalle entre 2 positions du potentiomètre, les zones sont affectées a un type de plantes, Arides, Tempérés ou Tropicales.
Les valeurs d’humidité sont donc personnalisées pour chaque type de plantes, en fonction de la position du potentiomètre sur une zone.
Mon problème arrive quand je veux sélectionner une zone. Par exemple, quand je choisi la zone 1 (Aride), l’afficheur est censé écrire "OK", quand la valeur d’humidité lue par le capteur est supérieur ou égale à 100, et écrire "Arrose moi", quand la valeur est inférieur à 100, de plus, l’afficheur doit afficher "Trop humide" quand la valeur dépasse 110 (j’ai pris des valeurs de test). Or, quand je l’allume et le positionne en zone 1 et que je mets ma main sur le capteur, celui-ci affiche "OK", même quand la valeur est égale à 30, et il n’affiche pas "Trop Humide", quand la valeur dépasse 110.
J’ai vérifié, le chaque élément marche correctement séparément, et ce code de test du potentiomètre fonctionne parfaitement :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="cp">#include</span> <span class="cpf"><LiquidCrystal.h></span><span class="cp"></span>
<span class="nf">LiquidCrystal</span> <span class="nf">lcd</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="kr">int</span> <span class="n">potar</span> <span class="o">=</span> <span class="n">A5</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">val</span><span class="p">;</span>
<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="nf">pinMode</span><span class="p">(</span><span class="n">potar</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">val</span> <span class="o">=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">potar</span><span class="p">);</span>
<span class="k">if</span> <span class="p">((</span><span class="n">val</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">val</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Arride"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">((</span><span class="n">val</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">val</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Tempere"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">((</span><span class="n">val</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">val</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Tropicale"</span><span class="p">);</span>
<span class="p">}</span>
<span class="nf">delay</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span>
<span class="p">}</span>
<span class="err">`</span>
</pre></div>
</td></tr></table></div>
<p>voici le code complet du systeme :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="cp">#include</span> <span class="cpf"><LiquidCrystal.h></span><span class="cp"></span>
<span class="nf">LiquidCrystal</span> <span class="nf">lcd</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="kr">int</span> <span class="n">sensor</span> <span class="o">=</span> <span class="n">A0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">potar</span> <span class="o">=</span> <span class="n">A5</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">value</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">valPerso</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">valPersoFin</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">tropHumide</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">compteur</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">NB_VALEURS</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">moyenne</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">pourcent</span><span class="p">;</span>
<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Initialisation"</span><span class="p">);</span>
<span class="nf">pinMode</span><span class="p">(</span><span class="n">potar</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span>
<span class="nf">pinMode</span><span class="p">(</span><span class="n">sensor</span><span class="p">,</span> <span class="kr">INPUT</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span>
<span class="p">{</span>
<span class="n">valPerso</span> <span class="o">=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">potar</span><span class="p">);</span>
<span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">1023</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">720</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">100</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">110</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">720</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">380</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">300</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">466</span><span class="p">;</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">((</span><span class="n">valPerso</span> <span class="o"><=</span> <span class="mi">380</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">valPersoFin</span> <span class="o">>=</span> <span class="mi">4</span><span class="p">))</span>
<span class="p">{</span>
<span class="n">valPersoFin</span> <span class="o">=</span> <span class="mi">600</span><span class="p">;</span>
<span class="n">tropHumide</span> <span class="o">=</span> <span class="mi">699</span><span class="p">;</span>
<span class="p">}</span>
<span class="nf">delay</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span>
<span class="n">somme</span> <span class="o">+=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">sensor</span><span class="p">);</span>
<span class="n">compteur</span> <span class="o">=</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="n">NB_VALEURS</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">moyenne</span> <span class="o">=</span> <span class="n">somme</span><span class="o">/</span><span class="n">NB_VALEURS</span><span class="p">;</span>
<span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="c1">//pourcent = (moyenne*100)/700;</span>
<span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o">>=</span> <span class="n">tropHumide</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"Je me nois !"</span><span class="p">);</span>
<span class="p">}</span>
<span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o"><</span> <span class="n">valPersoFin</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"ARROSE MOI !"</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span> <span class="c1">// pourcent);</span>
<span class="c1">//lcd.print(" %");</span>
<span class="p">}</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o">>=</span> <span class="n">valPersoFin</span><span class="p">)</span>
<span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">clear</span><span class="p">();</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">0</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"OK"</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">setCursor</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">moyenne</span><span class="p">);</span> <span class="c1">// pourcent);</span>
<span class="c1">//lcd.print(" %");</span>
<span class="p">}</span>
<span class="p">}</span>
<span class="nf">delay</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>
<p>Merci de m’aider <img alt=":)" src="/static/smileys/smile.png"></p>Capteur d'humidité et écran lcd, message #1577482017-07-25T20:15:49+02:00quant/@quanthttps://zestedesavoir.com/forums/sujet/9015/capteur-dhumidite-et-ecran-lcd/?page=2#p157748<p>merci beaucoup pour vos conseils, je vais m’y mettre et on verra le résultat <img alt=";)" src="/static/smileys/clin.png"></p>Capteur d'humidité et écran lcd, message #1577442017-07-25T19:46:58+02:00Unknown/@Unknownhttps://zestedesavoir.com/forums/sujet/9015/capteur-dhumidite-et-ecran-lcd/?page=2#p157744<p>Plutôt que d’envoyer 20 messages, je te mets le code un peu commenté. Surtout lis les commentaires si tu veux apprendre et n’hésites pas à demander des précisions.</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="cp">#include</span> <span class="cpf"><LiquidCrystal.h></span><span class="cp"></span>
<span class="nf">LiquidCrystal</span> <span class="nf">lcd</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span><span class="mi">10</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="kr">int</span> <span class="n">sensor</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">compteur</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="kr">int</span> <span class="n">moyenne</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="c1">//le nombre de valeur pour ta moyenne</span>
<span class="kr">const</span> <span class="kr">int</span> <span class="n">NB_VALEURS</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
<span class="kr">String</span> <span class="n">message</span> <span class="o">=</span> <span class="s">""</span><span class="p">;</span>
<span class="kr">void</span> <span class="nb">setup</span><span class="p">()</span> <span class="p">{</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">begin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="s">"INITIALISATION"</span><span class="p">);</span>
<span class="p">}</span>
<span class="kr">void</span> <span class="nb">loop</span><span class="p">()</span> <span class="p">{</span>
<span class="n">somme</span> <span class="o">+=</span> <span class="nf">analogRead</span><span class="p">(</span><span class="n">sensor</span><span class="p">);</span> <span class="c1">//à chaque boucle tu ajoutes la valeur actuelle</span>
<span class="c1">// += est équivalent à somme = somme + analogRead(sensor)</span>
<span class="cm">/*priorité des opérations: les parenthèses sont prioritaires au MODULO (%)</span>
<span class="cm"> Le modulo donne le reste de la division euclidienne entre la valeur à gauche</span>
<span class="cm"> et la valeur à droite.</span>
<span class="cm"> Tu vas donc ajouter un au compteur (compteur + 1)</span>
<span class="cm"> Ensuite tu fais le modulo: Tu enlèves N fois 10 au compteur (en restant dans </span>
<span class="cm"> les nombres positifs), ainsi si </span>
<span class="cm"> (compteur + 1) = 10 alors (compteur + 1) % 10 te renvoie 0.</span>
<span class="cm"> */</span>
<span class="n">compteur</span> <span class="o">=</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="n">NB_VALEURS</span><span class="p">;</span>
<span class="c1">//si la variable compteur est égale à 0 (tu as additionné 10 valeurs)</span>
<span class="k">if</span> <span class="p">(</span><span class="n">compteur</span> <span class="o">==</span> <span class="mi">0</span><span class="p">){</span>
<span class="n">moyenne</span> <span class="o">=</span> <span class="n">somme</span><span class="o">/</span><span class="n">NB_VALEURS</span><span class="p">;</span> <span class="c1">//tu fais la moyenne</span>
<span class="n">somme</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
<span class="c1">//tu affiches ce que tu veux selon la moyenne</span>
<span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o"><</span> <span class="mi">300</span><span class="p">)</span>
<span class="n">message</span> <span class="o">=</span> <span class="p">(</span><span class="kr">int</span><span class="p">)(</span><span class="mi">100</span><span class="o">*</span><span class="p">((</span><span class="kr">float</span><span class="p">)</span><span class="n">moyenne</span><span class="o">/</span><span class="mi">1023</span><span class="p">))</span> <span class="o">+</span> <span class="p">(</span><span class="kr">String</span><span class="p">)</span><span class="s">"% HUMIDITE </span><span class="se">\n</span><span class="s"> SEC"</span><span class="p">;</span>
<span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">moyenne</span> <span class="o"><</span> <span class="mi">650</span><span class="p">)</span>
<span class="n">message</span> <span class="o">=</span> <span class="p">(</span><span class="kr">int</span><span class="p">)(</span><span class="mi">100</span><span class="o">*</span><span class="p">((</span><span class="kr">float</span><span class="p">)</span><span class="n">moyenne</span><span class="o">/</span><span class="mi">1023</span><span class="p">))</span> <span class="o">+</span> <span class="p">(</span><span class="kr">String</span><span class="p">)</span><span class="s">"% HUMIDITE </span><span class="se">\n</span><span class="s"> MOUILLE"</span><span class="p">;</span>
<span class="k">else</span> <span class="c1">//si moyenne est >= à 650</span>
<span class="n">message</span> <span class="o">=</span> <span class="p">(</span><span class="kr">int</span><span class="p">)(</span><span class="mi">100</span><span class="o">*</span><span class="p">((</span><span class="kr">float</span><span class="p">)</span><span class="n">moyenne</span><span class="o">/</span><span class="mi">1023</span><span class="p">))</span> <span class="o">+</span> <span class="p">(</span><span class="kr">String</span><span class="p">)</span><span class="s">"% HUMIDITE </span><span class="se">\n</span><span class="s"> EAU"</span><span class="p">;</span>
<span class="n">lcd</span><span class="p">.</span><span class="nf">print</span><span class="p">(</span><span class="n">message</span><span class="p">);</span>
<span class="p">}</span>
<span class="nf">delay</span><span class="p">(</span><span class="mi">1000</span><span class="p">);</span> <span class="c1">//intervalle d'attente entre deux valeurs (en millisecondes)</span>
<span class="p">}</span>
</pre></div>
</td></tr></table></div>Capteur d'humidité et écran lcd, message #1577372017-07-25T18:17:26+02:00quant/@quanthttps://zestedesavoir.com/forums/sujet/9015/capteur-dhumidite-et-ecran-lcd/?page=2#p157737<p>oui, en fait je ne vois pas "concrètement", en code, comment établir une moyenne de 10 valeurs prises a 1 seconde d’intervalle par le capteur</p>