{"id":6592,"date":"2023-09-18T15:48:53","date_gmt":"2023-09-18T13:48:53","guid":{"rendered":"https:\/\/www.ardpylab.fr\/?page_id=6592"},"modified":"2023-09-20T15:15:11","modified_gmt":"2023-09-20T13:15:11","slug":"des-sketchs-a-ajouter-a-ardpylog-suite-13","status":"publish","type":"page","link":"https:\/\/www.ardpylab.fr\/?page_id=6592","title":{"rendered":"Des sketchs \u00e0 ajouter \u00e0 ArdPyLog (suite)"},"content":{"rendered":"\n<h4><strong style=\"color: inherit; font-size: 1.25em;\"><br>13. <a href=\"https:\/\/www.ardpylab.fr\/downloads\/ardpylog\/Cordon_DEL_RVB.zip\"><span style=\"text-decoration: underline;\"><span style=\"color: #3366ff; text-decoration: underline;\">Cordon DEL RVB<\/span><\/span><\/a><\/strong> <span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">&nbsp;(<i>Gestion de l\u2019\u00e9clairage d\u2019un cordon de 30 DELs RVB &nbsp;<\/i>&#8211; Cat\u00e9gorie: <span style=\"color: #3366ff;\">Divers <\/span><\/span><span style=\"color: inherit; font-size: 1.25em; font-weight: 600;\">)<br><br><\/span><\/h4>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"565\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB.jpg\" alt=\"\" class=\"wp-image-6597\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB.jpg 935w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB-300x181.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB-768x464.jpg 768w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/figure><\/div>\n\n\n\n<p>\u00a0<\/p>\n<p>L\u2019objectif du montage est de contr\u00f4ler un cordon lumineux de 30 DELs RVB Grove pour l\u2019\u00e9clairage d\u2019un aquarium :<\/p>\n<p style=\"padding-left: 40px;\">&#8211; Par d\u00e9faut, apr\u00e8s un appui sur le premier bouton poussoir, les DELs RVB \u00e9clairent en blanc ou en rouge ou en vert ou en bleu (la premi\u00e8re DEL rouge du montage est alors allum\u00e9e),<\/p>\n<p style=\"padding-left: 40px;\">&#8211; un maintien du premier bouton poussoir permet de r\u00e9gler l\u2019intensit\u00e9 lumineuse des DELs (par d\u00e9faut, celle-ci est au maximum),<\/p>\n<p style=\"padding-left: 40px;\">&#8211; le deuxi\u00e8me bouton poussoir permet d\u2019\u00e9clairer certaines DELs en bleu (la DEL bleue du montage est alors allum\u00e9e),<\/p>\n<p style=\"padding-left: 40px;\">&#8211; le troisi\u00e8me bouton poussoir permet d\u2019\u00e9clairer certaines DELs en rouge (la deuxi\u00e8me DEL rouge du montage est alors allum\u00e9e),<\/p>\n<p style=\"padding-left: 40px;\">&#8211; le quatri\u00e8me bouton poussoir permet d\u2019\u00e9clairer certaines DELs en vert (la DEL verte du montage est alors allum\u00e9e),<\/p>\n<p style=\"padding-left: 40px;\">&#8211; le cinqui\u00e8me bouton poussoir lance un minuteur. Les DELs sont alors \u00e9teintes \u00e0 la fin d\u2019une dur\u00e9e d\u00e9fini par le programme, puis rallum\u00e9es au bout d\u2019une autre dur\u00e9e \u00e9galement d\u00e9finie,<\/p>\n<p style=\"padding-left: 40px;\">&#8211; un second appui sur le premier bouton poussoir \u00e9teint le cordon lumineux.<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">Caract\u00e9ristiques du cordon 30 DELs RVB Grove<\/span> :<\/p>\n<p style=\"padding-left: 40px;\">\u2022 Alimentation: 5 Vcc via carte Arduino + alimentation externe 5 Vcc recommand\u00e9e<br \/>\u2022 Consommation: 1,8 A maxi en fonction des couleurs (0,06 A par led)<br \/>\u2022 Interface: digitale compatible Grove<br \/>\u2022 Type de Leds: WS2813<br \/>\u2022 Indice de protection: IP65<\/p>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">Le programme<\/span><\/p>\n<p>Voici le code de l\u2019activit\u00e9 :<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; padding-left: 40px;\">\n<p>#include &lt;FastLED.h&gt;<br \/>#define NUM_LEDS 30<br \/>#define LED_TYPE WS2812B<br \/>#define COLOR_ORDER BRG\/\/RGB<\/p>\n<p>CRGB leds[NUM_LEDS];<\/p>\n<p>const int stripPin = 3;<br \/>unsigned long previousMillis = 0; <br \/>const long interval = 28800000;<br \/>const long interval2 = 57600000;<br \/>int ledState = LOW;<br \/>int BRIGHTNESS = 250;<br \/>unsigned long startTime = 0;<\/p>\n<p>const int OnOffSwitchPin = 12;<br \/>const int OnOffSwitchTimePin = 2;<br \/>const int PinLEDOnOff = 13;<br \/>const int PinLEDTimeOnOff = 4;<\/p>\n<p>const int PinLEDBlueOnOff = 10;<br \/>const int OnOffSwitchPinBlue = 11;<\/p>\n<p>const int PinLEDRedOnOff = 8;<br \/>const int OnOffSwitchPinRed = 9;<\/p>\n<p>const int PinLEDGreenOnOff = 6;<br \/>const int OnOffSwitchPinGreen = 7;<\/p>\n<p>int OnOffSwitchState = 0; <br \/>int previousOnOffSwitchState = 0; <br \/>int OnOffSwitchTimeState = 0; <br \/>int previousOnOffSwitchTimeState = 0; <br \/>int state=0;<br \/>int previousstate=0;<br \/>int stateTime=0;<br \/>int previousstateTime=0;<\/p>\n<p>int OnOffBlueState = 0; <br \/>int previousOnOffBlueState = 0; <br \/>int Bluestate=1;<br \/>int previousBluestate=1;<\/p>\n<p>int OnOffRedState = 0; <br \/>int previousOnOffRedState = 0; <br \/>int Redstate=1;<br \/>int previousRedstate=1;<\/p>\n<p>int OnOffGreenState = 0; <br \/>int previousOnOffGreenState = 0; <br \/>int Greenstate=1;<br \/>int previousGreenstate=1;<\/p>\n<p>void AllumLeds() {<br \/>int LedBlue = 3;<br \/>int LedGreen = 5;<br \/>int LedRed = 1;<br \/>for (int i = 0; i &lt; NUM_LEDS; i++) {<br \/>if (i!=LedBlue and i!=LedGreen and i!=LedRed){<br \/>leds[i].setRGB(255, 255, 255);<br \/>}<br \/>else{<br \/>if (i==LedBlue){<br \/>if (Bluestate==1){<br \/>leds[i].setRGB(0, 255, 0);<br \/>}<br \/>else{<br \/>leds[i].setRGB(255, 255, 255);<br \/>}<br \/>LedBlue = LedBlue + 4;<br \/>}<br \/>else {<br \/>if (i==LedGreen){<br \/>if (Greenstate==1){<br \/>leds[i].setRGB(0, 0, 255);<br \/>}<br \/>else {<br \/>leds[i].setRGB(255, 255, 255);<br \/>}<br \/>LedGreen = LedGreen + 8;<br \/>}<br \/>else {<br \/>if (Redstate==1){<br \/>leds[i].setRGB(255, 0, 0);<br \/>}<br \/>else {<br \/>leds[i].setRGB(255, 255, 255);<br \/>}<br \/>LedRed = LedRed + 8;<br \/>}<br \/>}<br \/>}<br \/>}<br \/>FastLED.show(); <br \/>ledState = HIGH; <br \/>}<\/p>\n<p>void EteintLeds() {<br \/>ledState = LOW;<br \/>for (int j = 0; j &lt; NUM_LEDS; j++) {<br \/>leds[j].setRGB(0,0,0);<br \/>}<br \/>FastLED.show();<br \/>}<\/p>\n<p>void LedScenario() {<br \/>unsigned long currentMillis = millis();<br \/>if (ledState == LOW) {<br \/>if (currentMillis &#8211; previousMillis &gt;= interval2) {<br \/>previousMillis = currentMillis; <br \/>AllumLeds();<br \/>}<br \/>}<br \/>else {<br \/>if (currentMillis &#8211; previousMillis &gt;= interval) {<br \/>previousMillis = currentMillis;<br \/>EteintLeds();<br \/>}<br \/>}<br \/>}<\/p>\n<p>void setup() {<br \/>FastLED.addLeds&lt;LED_TYPE, stripPin, COLOR_ORDER&gt;(leds, NUM_LEDS);<br \/>FastLED.setBrightness(BRIGHTNESS);<br \/>pinMode (PinLEDOnOff, OUTPUT);<br \/>pinMode (PinLEDTimeOnOff, OUTPUT);<br \/>pinMode (PinLEDBlueOnOff, OUTPUT);<br \/>pinMode (PinLEDRedOnOff, OUTPUT);<br \/>pinMode (PinLEDGreenOnOff, OUTPUT);<br \/>pinMode (OnOffSwitchPin, INPUT);<br \/>pinMode (OnOffSwitchTimePin, INPUT);<br \/>pinMode (OnOffSwitchPinBlue, INPUT);<br \/>pinMode (OnOffSwitchPinRed, INPUT);<br \/>pinMode (OnOffSwitchPinGreen, INPUT);<br \/>}<\/p>\n<p>void loop() {<br \/>OnOffSwitchState = digitalRead(OnOffSwitchPin);<br \/>delay(10);<br \/>if ((OnOffSwitchState == HIGH)&amp;&amp;(previousOnOffSwitchState == LOW)) <br \/>{<br \/>state=1-state;<br \/>startTime= millis();<br \/>delay(10);<br \/>}<br \/>else <br \/>{<br \/>if ((OnOffSwitchState == LOW)&amp;&amp;(previousOnOffSwitchState == HIGH)) <br \/>{<br \/>delay(10);<br \/>}<br \/>else {<br \/>if ((OnOffSwitchState == HIGH) &amp;&amp; (previousOnOffSwitchState == HIGH)) {<br \/>if (state == 1 &amp;&amp; (millis() &#8211; startTime) &gt; 500) {<br \/>BRIGHTNESS = BRIGHTNESS + 25;<br \/>if (BRIGHTNESS &gt; 250) {<br \/>BRIGHTNESS = 25;<br \/>}<br \/>FastLED.setBrightness(BRIGHTNESS);<br \/>FastLED.show();<br \/>delay(500);<br \/>} <br \/>}<br \/>}<br \/>}<br \/>previousOnOffSwitchState = OnOffSwitchState;<\/p>\n<p>OnOffSwitchTimeState = digitalRead(OnOffSwitchTimePin);<br \/>delay(10);<br \/><br \/>if ((OnOffSwitchTimeState == HIGH)&amp;&amp;(previousOnOffSwitchTimeState == LOW)) <br \/>{<br \/>stateTime=1-stateTime;<br \/>delay(10);<br \/>}<br \/>else <br \/>{<br \/>if ((OnOffSwitchTimeState == LOW)&amp;&amp;(previousOnOffSwitchTimeState == HIGH)) <br \/>{<br \/>delay(10);<br \/>}<br \/>}<br \/>previousOnOffSwitchTimeState = OnOffSwitchTimeState;<\/p>\n<p>OnOffBlueState = digitalRead(OnOffSwitchPinBlue);<br \/>delay(10);<br \/>if ((OnOffBlueState == HIGH)&amp;&amp;(previousOnOffBlueState == LOW)) <br \/>{<br \/>Bluestate=1-Bluestate;<br \/>delay(10); <br \/>}<br \/>else <br \/>{<br \/>if ((OnOffBlueState == LOW)&amp;&amp;(previousOnOffBlueState == HIGH)) <br \/>{<br \/>delay(10);<br \/>}<br \/>}<br \/>previousOnOffBlueState = OnOffBlueState;<\/p>\n<p>OnOffRedState = digitalRead(OnOffSwitchPinRed);<br \/>delay(10);<br \/>if ((OnOffRedState == HIGH)&amp;&amp;(previousOnOffRedState == LOW)) <br \/>{<br \/>Redstate=1-Redstate;<br \/>delay(10); <br \/>}<br \/>else <br \/>{<br \/>if ((OnOffRedState == LOW)&amp;&amp;(previousOnOffRedState == HIGH)) <br \/>{<br \/>delay(10);<br \/>}<br \/>}<br \/>previousOnOffRedState = OnOffRedState;<\/p>\n<p>OnOffGreenState = digitalRead(OnOffSwitchPinGreen);<br \/>delay(10);<br \/>if ((OnOffGreenState == HIGH)&amp;&amp;(previousOnOffGreenState == LOW)) <br \/>{<br \/>Greenstate=1-Greenstate;<br \/>delay(10); <br \/>}<br \/>else <br \/>{<br \/>if ((OnOffGreenState == LOW)&amp;&amp;(previousOnOffGreenState == HIGH)) <br \/>{<br \/>delay(10);<br \/>}<br \/>}<br \/>previousOnOffGreenState = OnOffGreenState;<\/p>\n<p><br \/>if (state==1) {<br \/>if (previousstate==0) {<br \/>AllumLeds();<br \/>digitalWrite(PinLEDOnOff, HIGH);<br \/>digitalWrite(PinLEDBlueOnOff, Bluestate);<br \/>digitalWrite(PinLEDRedOnOff, Redstate);<br \/>digitalWrite(PinLEDGreenOnOff, Greenstate);<br \/>previousstate=1;<br \/>}<br \/>else{<br \/>if (stateTime==1) {<br \/>if (previousstateTime==0) {<br \/>previousMillis = millis();<br \/>previousstateTime=1; <br \/>digitalWrite(PinLEDTimeOnOff, HIGH);<br \/>}<br \/>else {<br \/>LedScenario();<br \/>}<br \/>}<br \/>else {<br \/>if (previousstateTime==1) {<br \/>AllumLeds();<br \/>previousstateTime=0; <br \/>digitalWrite(PinLEDTimeOnOff, LOW);<br \/>}<br \/>}<br \/>}<br \/>if ((Bluestate==1 and previousBluestate==0) or (Bluestate==0 and previousBluestate==1)) {<br \/>digitalWrite(PinLEDBlueOnOff, Bluestate);<br \/>previousBluestate = Bluestate;<br \/>AllumLeds();<br \/>}<\/p>\n<p>if ((Redstate==1 and previousRedstate==0) or (Redstate==0 and previousRedstate==1)) {<br \/>digitalWrite(PinLEDRedOnOff, Redstate);<br \/>previousRedstate = Redstate;<br \/>AllumLeds();<br \/>}<\/p>\n<p>if ((Greenstate==1 and previousGreenstate==0) or (Greenstate==0 and previousGreenstate==1)) {<br \/>digitalWrite(PinLEDGreenOnOff, Greenstate);<br \/>previousGreenstate = Greenstate;<br \/>AllumLeds();<br \/>} <br \/>}<br \/>else <br \/>{<br \/>EteintLeds();<br \/>digitalWrite(PinLEDOnOff, LOW);<br \/>digitalWrite(PinLEDTimeOnOff, LOW);<br \/>digitalWrite(PinLEDBlueOnOff, LOW);<br \/>digitalWrite(PinLEDRedOnOff, LOW);<br \/>digitalWrite(PinLEDGreenOnOff, LOW);<br \/>state=0;<br \/>previousstate=0;<br \/>stateTime=0;<br \/>previousstateTime=0;<br \/>Redstate=1;<br \/>previousRedstate=1;<br \/>Bluestate=1;<br \/>previousBluestate=1;<br \/>Greenstate=1;<br \/>previousGreenstate=1;<br \/>}<br \/>}<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u00a0<\/p>\n<p>Le code de l&rsquo;activit\u00e9 n\u00e9cessite l&rsquo;installation au pr\u00e9alable de la librairie \u00a0\u00bb FastLED \u00ab\u00a0.<br \/>Afin d\u2019ajouter une librairie \u00e0 l\u2019IDE Arduino, il faut aller dans le menu \u00ab Outils -&gt;G\u00e9rer les biblioth\u00e8ques \u00bb :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6598\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB_1-300x180.jpg\" alt=\"\" width=\"622\" height=\"373\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB_1-300x180.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB_1.jpg 733w\" sizes=\"auto, (max-width: 622px) 100vw, 622px\" \/><\/p>\n<p>Il suffit ensuite de rechercher et d\u2019ajouter la librairie \u00ab FastLED\u00bb :<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-6599\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB_2-300x170.jpg\" alt=\"\" width=\"558\" height=\"316\" srcset=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB_2-300x170.jpg 300w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB_2-768x435.jpg 768w, https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2023\/09\/Cordon_DEL_RVB_2.jpg 784w\" sizes=\"auto, (max-width: 558px) 100vw, 558px\" \/><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">D\u00e9roulement du programme<\/span> :<\/p>\n<p>\u2013 1. Insertion des biblioth\u00e8ques :<\/p>\n<p style=\"padding-left: 40px;\"><strong>#include &lt;FastLED.h&gt; (insertion de la biblioth\u00e8que FastLED)<\/strong><br \/><strong>#define NUM_LEDS 30 (initialisation du nombre de DEL)<\/strong><br \/><strong>#define LED_TYPE WS2812B (initialisation du type de DEL)<\/strong><br \/><strong>#define COLOR_ORDER BRG\/\/RGB (initialisation de l\u2019ordre des couleurs)<\/strong><br \/><strong>CRGB leds[NUM_LEDS] (Initialisation du nombre de DELs du cordon lumineux)<\/strong><\/p>\n<p>\u00a0<\/p>\n<p>\u2013 2. D\u00e9claration des constantes et variables :<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int stripPin = 3<\/strong> (constante nombre entier correspondant \u00e0 la broche de contr\u00f4le du cordon lumineux)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>unsigned long previousMillis = 0<\/strong> (variable nombre entier long pour le calcul de la dur\u00e9e d\u2019appui sur le premier bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const long interval = 28800000<\/strong> (constante nombre entier long correspondant \u00e0 la dur\u00e9e d\u2019\u00e9clairement en ms du cordon lumineux)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const long interval2 = 57600000<\/strong> (constante nombre entier long correspondant \u00e0 la dur\u00e9e d\u2019extinction en ms du cordon lumineux)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int ledState = LOW<\/strong> (constante nombre entier correspondant \u00e0 l\u2019\u00e9tat d\u2019\u00e9clairement des DELs)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int BRIGHTNESS = 250<\/strong> (constante nombre entier correspondant \u00e0 l\u2019intensit\u00e9 lumineuse des DELs, max = 250, min = 25)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>unsigned long startTime = 0<\/strong> (variable nombre entier long pour stocker l\u2019heure \u00e0 laquelle le premier bouton poussoir a \u00e9t\u00e9 appuy\u00e9).<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int OnOffSwitchPin = 12<\/strong> (constante nombre entier correspondant \u00e0 la broche du premier bouton poussoir permettant d\u2019allumer les DELs)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int OnOffSwitchTimePin = 2<\/strong> (constante nombre entier correspondant \u00e0 la broche du dernier bouton poussoir permettant de lancer la minuterie)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int PinLEDOnOff = 13<\/strong> (constante nombre entier correspondant \u00e0 la broche de la premi\u00e8re DEL rouge indiquant que le cordon lumineux est allum\u00e9)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int PinLEDTimeOnOff = 4<\/strong> (constante nombre entier correspondant \u00e0 la broche de la derni\u00e8re DEL rouge indiquant que la minuterie est en fonction)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int PinLEDBlueOnOff = 10<\/strong> (constante nombre entier correspondant \u00e0 la broche de la DEL bleue indiquant si certaines DELs du cordon sont allum\u00e9es en bleu)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int OnOffSwitchPinBlue = 11<\/strong> (constante nombre entier correspondant \u00e0 la broche du bouton poussoir permettant d\u2019allumer certaines DELs en bleu)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int PinLEDRedOnOff = 8<\/strong> (constante nombre entier correspondant \u00e0 la broche de la DEL rouge indiquant si les certaines DELs du cordon sont allum\u00e9es en rouge)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int OnOffSwitchPinRed = 9<\/strong> (constante nombre entier correspondant \u00e0 la broche du bouton poussoir permettant d\u2019allumer certaines DELs en rouge)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int PinLEDGreenOnOff = 6<\/strong> (constante nombre entier correspondant \u00e0 la broche de la DEL verte indiquant si les certaines DELs du cordon sont allum\u00e9es en vert)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>const int OnOffSwitchPinGreen = 7<\/strong> (constante nombre entier correspondant \u00e0 la broche du bouton poussoir permettant d\u2019allumer certaines DELs en vert)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int OnOffSwitchState = 0<\/strong> (variable nombre entier pour stocker la valeur du potentiel de la broche du premier bouton poussoir permettant d\u2019allumer les DELs)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousOnOffSwitchState = 0<\/strong> (variable nombre entier pour stocker la pr\u00e9c\u00e9dente valeur du potentiel de la broche du premier bouton poussoir permettant d\u2019allumer les DELs)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int OnOffSwitchTimeState = 0<\/strong> (variable nombre entier pour stocker la valeur du potentiel de la broche du dernier bouton poussoir permettant de lancer la minuterie)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousOnOffSwitchTimeState = 0<\/strong> (variable nombre entier pour stocker la pr\u00e9c\u00e9dente valeur du potentiel de la broche du dernier bouton poussoir permettant de lancer la minuterie)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int state=0<\/strong> (variable nombre entier correspondant \u00e0 l\u2019action \u00e0 effectuer en relation avec le premier bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousstate=0<\/strong> (variable nombre entier correspondant \u00e0 l\u2019action effectu\u00e9e pr\u00e9c\u00e9demment en relation avec le premier bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int stateTime=0<\/strong> (variable nombre entier correspondant \u00e0 l\u2019action \u00e0 effectuer en relation avec le dernier bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousstateTime=0<\/strong> (variable nombre entier correspondant \u00e0 l\u2019action effectu\u00e9e pr\u00e9c\u00e9demment en relation avec le dernier bouton poussoir)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int OnOffBlueState = 0<\/strong> (variable nombre entier pour stocker la valeur du potentiel de la broche du deuxi\u00e8me bouton poussoir permettant d\u2019allumer certaines DELs en bleu)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousOnOffBlueState = 0<\/strong> (variable nombre entier pour stocker la pr\u00e9c\u00e9dente valeur du potentiel de la broche du deuxi\u00e8me bouton poussoir permettant d\u2019allumer certaines DELs en bleu)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int Bluestate=1<\/strong> (variable nombre entier indiquant si certaines DELs sont allum\u00e9es en bleu)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousBluestate=1<\/strong> (variable nombre entier indiquant si pr\u00e9c\u00e9demment certaines DELs \u00e9taient allum\u00e9es en bleu)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int OnOffRedState = 0<\/strong> (variable nombre entier pour stocker la valeur du potentiel de la broche du troisi\u00e8me bouton poussoir permettant d\u2019allumer certaines DELs en rouge)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousOnOffRedState = 0<\/strong> (variable nombre entier pour stocker la pr\u00e9c\u00e9dente valeur du potentiel de la broche du troisi\u00e8me bouton poussoir permettant d\u2019allumer certaines DELs en rouge)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int Redstate=1<\/strong> (variable nombre entier indiquant si certaines DELs sont allum\u00e9es en rouge)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousRedstate=1<\/strong> (variable nombre entier indiquant si pr\u00e9c\u00e9demment certaines DELs \u00e9taient allum\u00e9es en rouge)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int OnOffGreenState = 0<\/strong> (variable nombre entier pour stocker la valeur du potentiel de la broche du quatri\u00e8me bouton poussoir permettant d\u2019allumer certaines DELs en vert)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousOnOffGreenState = 0<\/strong> (variable nombre entier pour stocker la pr\u00e9c\u00e9dente valeur du potentiel de la broche du quatri\u00e8me bouton poussoir permettant d\u2019allumer certaines DELs en vert)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int Greenstate=1<\/strong> (variable nombre entier indiquant si certaines DELs sont allum\u00e9es en vert)<\/p>\n<p style=\"padding-left: 40px;\">. <strong>int previousGreenstate=1<\/strong> (variable nombre entier indiquant si pr\u00e9c\u00e9demment certaines DELs \u00e9taient allum\u00e9es en vert)<\/p>\n<p>\u00a0<\/p>\n<p>\u2013 3. Initialisation des entr\u00e9es et sorties :<\/p>\n<p style=\"padding-left: 40px;\"><strong>. Initialisation du cordon lumineux,<\/strong><br \/><strong>. Initialisation de l\u2019intensit\u00e9 lumineuse des DELs,<\/strong><br \/><strong>. Initialisation des entr\u00e9es et des sorties (DELs, bouton poussoirs).<\/strong><\/p>\n<p>\u00a0<\/p>\n<p>\u2013 4. Fonction principale en boucle :<\/p>\n<p style=\"padding-left: 40px;\"><strong>\u2013&gt; Lecture de la valeur de la broche du premier bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Mise \u00e0 jour de la variable \u00ab state \u00bb si changement de la valeur du bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Eclairage ou extinction du cordon en fonction de la variable \u00ab state \u00bb,<\/strong><br \/><strong>&#8211;&gt; R\u00e9glage de la luminosit\u00e9 si le premier bouton poussoir est maintenu appuy\u00e9,<\/strong><br \/><strong>\u2013&gt; Lecture de la valeur de la broche du dernier bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Mise \u00e0 jour de la variable \u00ab stateTime \u00bb si changement de la valeur du bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Mise en route ou arr\u00eat de la minuterie en fonction de la variable \u00ab stateTime \u00bb,<\/strong><br \/><strong>\u2013&gt; Lecture de la valeur de la broche du deuxi\u00e8me bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Mise \u00e0 jour de la variable \u00ab Bluestate\u00bb si changement de la valeur du bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Eclaire en bleu de certaines DELs en fonction de la variable \u00ab Bluestate \u00bb,<\/strong><br \/><strong>\u2013&gt; Lecture de la valeur de la broche du troisi\u00e8me bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Mise \u00e0 jour de la variable \u00ab Redstate\u00bb si changement de la valeur du bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Eclaire en rouge de certaines DELs en fonction de la variable \u00ab Redstate \u00bb,<\/strong><br \/><strong>\u2013&gt; Lecture de la valeur de la broche du quatri\u00e8me bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Mise \u00e0 jour de la variable \u00ab Greenstate\u00bb si changement de la valeur du bouton poussoir,<\/strong><br \/><strong>\u2013&gt; Eclaire en vert de certaines DELs en fonction de la variable \u00ab Greenstate \u00bb.<\/strong><\/p>\n<p>\u00a0<\/p>\n\n\n<div  class=\"grids-section grids-is-advanced\" style=\"--_gs-gap-desktop:0px 0px;--_gs-m-desktop:0 0 0 0;--_gs-p-desktop:0 0 0 0;--_gs-bg-desktop:transparent none;--_gs-bg-xp-desktop:0px;--_gs-zi-desktop:auto;--_gs-d-desktop:block;--_gs-mw-desktop:calc(100% - 0 - 0);--_gs-gap-tablet:0px 0px;--_gs-m-tablet:0 0 0 0;--_gs-p-tablet:0 0 0 0;--_gs-bg-tablet:transparent none;--_gs-bg-xp-tablet:0px;--_gs-zi-tablet:auto;--_gs-d-tablet:block;--_gs-mw-tablet:calc(100% - 0 - 0);--_gs-gap-mobile:0px 0px;--_gs-m-mobile:0 0 0 0;--_gs-p-mobile:0 0 0 0;--_gs-bg-mobile:transparent none;--_gs-bg-xp-mobile:0px;--_gs-zi-mobile:auto;--_gs-d-mobile:block;--_gs-mw-mobile:calc(100% - 0 - 0);--_gs-columns:12;--_gs-rows:6\"><div class=\"grids-s-w_i\">\n<div class=\"grids-area\" style=\"--_ga-column:1\/2;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=6581\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/moins.jpg\" alt=\"\" class=\"wp-image-107\" width=\"44\" height=\"24\"\/><\/a><\/figure>\n\n<\/div>\n\n<div class=\"grids-area\" style=\"--_ga-column:12\/13;--_ga-row:1\/2;--_ga-m-desktop:0 0 0 0;--_ga-p-desktop:0 0 0 0;--_ga-bg-desktop:transparent none;--_ga-zi-desktop:auto;--_ga-d-desktop:flex;--_ga-mw-desktop:calc(100% - 0 - 0);--_ga-m-tablet:0 0 0 0;--_ga-p-tablet:0 0 0 0;--_ga-bg-tablet:transparent none;--_ga-zi-tablet:auto;--_ga-d-tablet:flex;--_ga-mw-tablet:calc(100% - 0 - 0);--_ga-m-mobile:0 0 0 0;--_ga-p-mobile:0 0 0 0;--_ga-bg-mobile:transparent none;--_ga-zi-mobile:auto;--_ga-d-mobile:flex;--_ga-mw-mobile:calc(100% - 0 - 0)\">\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.ardpylab.fr\/?page_id=6608\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"28\" src=\"https:\/\/www.ardpylab.fr\/wp-content\/uploads\/2020\/03\/plus.jpg\" alt=\"\" class=\"wp-image-106\"\/><\/a><\/figure>\n\n<\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>13. Cordon DEL RVB &nbsp;(Gestion de l\u2019\u00e9clairage d\u2019un cordon de 30 DELs RVB &nbsp;&#8211; Cat\u00e9gorie: Divers ) \u00a0 L\u2019objectif du montage est de contr\u00f4ler un cordon lumineux de 30 DELs RVB Grove pour l\u2019\u00e9clairage d\u2019un aquarium : &#8211; Par d\u00e9faut, apr\u00e8s un appui sur le premier bouton poussoir, les DELs RVB \u00e9clairent en blanc ou [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6592","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6592","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6592"}],"version-history":[{"count":6,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6592\/revisions"}],"predecessor-version":[{"id":6714,"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=\/wp\/v2\/pages\/6592\/revisions\/6714"}],"wp:attachment":[{"href":"https:\/\/www.ardpylab.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6592"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}