*Truc temporaire (cours) Programme millis 23/10/19 long temps1; long temps2; // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(4, OUTPUT); pinMode(6, OUTPUT); temps1= millis(); temps2= millis(); } // the loop function runs over and over again forever void loop() { if((millis()- temps1)>100) { digitalWrite(4, HIGH); } if((millis()- temps1)>200) { digitalWrite(4, LOW); temps1= millis(); } if((millis()- temps2)>2000) { digitalWrite(6, HIGH); } if((millis()- temps2)>4000) { digitalWrite(6, LOW); temps2= millis(); } } // fin du loop long tempsA; long tempsB; // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); // digitalWrite(LED_BUILTIN, LOW); //modif pinMode(8, OUTPUT); pinMode(7, OUTPUT); // on initialise le temps tempsA = millis(); tempsB = millis(); } // the loop function runs over and over again forever void loop() { if ( (millis() - tempsA) > 1000 ) { // il serait élégant de faire une condition digitalWrite(8, HIGH); if ((millis() - tempsA) > 2000) { digitalWrite(8, LOW); tempsA = millis(); } } if ((millis() - tempsB) > 200) { // idem digitalWrite(7, HIGH); if ((millis() - tempsB) > 400) { digitalWrite(7, LOW); tempsB = millis(); } } } // fin loop //========================================================================================================================= //========================================================================================================================= /* Blink By Severino with millis() function ! 2019/09/11 http://ftp_stockage.azqs.com/filouGeeknik/robotvelo/Info_Arduino+esp266/arduino-premiers-pas-en-informatique-embarquee.pdf => pg 164 http://www.arduino.cc/en/Tutorial/Blink */ //============================================================= //============================================================= // DECLARER LES VARIABLES : // // LES PINS : int led1_pin = 2 ; int led2_pin = 4 ; // // LES LEDS : long led1_t_acquisition ; long led2_t_acquisition ; // // LES DUREES DE CLIGNOTEMENT : long led1_duree = 1000 ; long led2_duree = 2000 ; // // DIVERS : long t_actuel; int led1_init_int = 0; int led2_init_int = 0; int led1_res_modulo; int led2_res_modulo; //============================================================= //============================================================= // the setup function runs once when you press reset or power the board void setup() { // POUR LE DEBUG : Serial.begin(9600); // ENREGISTRER LA VALEUR DU TEMPS ACTUEL, DANS LES VARIABLES SUIVANTES : led1_t_acquisition = millis() ; led2_t_acquisition = millis() ; // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : pinMode( led1_pin , OUTPUT ); pinMode( led2_pin , OUTPUT ); } //------------------------------------------------------------------------------------ // the loop function runs over and over again forever void loop() { t_actuel = millis(); if ( (led1_init_int == 0) and (led2_init_int == 0) ) { Serial.println("INIT INIT INIT INIT INIT INIT INIT INIT"); Serial.println("INIT INIT INIT INIT INIT INIT INIT INIT"); // led1_t_acquisition = millis(); led2_t_acquisition = millis(); led1_init_int = led1_init_int + 1; led2_init_int = led2_init_int + 1; } // LED 1 : //======== if ( t_actuel > led1_t_acquisition + led1_duree ) { led1_res_modulo = led1_init_int % 2; if ( led1_res_modulo == 1 ) { Serial.println("1111____res_modulo = " + String (led1_res_modulo) ); //https://www.arduino.cc/en/Reference.StringConstructor digitalWrite( led1_pin , HIGH ) ; led1_init_int = led1_init_int + 1; } if ( led1_res_modulo == 0 ) { Serial.println("0000____res_modulo = " + String (led1_res_modulo) ); digitalWrite( led1_pin , LOW ) ; led1_init_int = led1_init_int + 1; } led1_t_acquisition = millis(); } // LED 2 : //======== if ( t_actuel > led2_t_acquisition + led2_duree ) { led2_res_modulo = led2_init_int % 2; if ( led2_res_modulo == 1 ) { Serial.println("aaaa____res_modulo = " + String (led2_res_modulo) ); //https://www.arduino.cc/en/Reference.StringConstructor digitalWrite( led2_pin , HIGH ) ; led2_init_int = led2_init_int + 1; } if ( led2_res_modulo == 0 ) { Serial.println("bbbb____res_modulo = " + String (led2_res_modulo) ); digitalWrite( led2_pin , LOW ) ; led2_init_int = led2_init_int + 1; } led2_t_acquisition = millis(); } } //------------------------------------------------------------------------------------ // X X X X X X X X X X X X X X X //========================================================================================================================= //========================================================================================================================= /* Blink By Severino with millis() function ! 2019/09/11 http://ftp_stockage.azqs.com/filouGeeknik/robotvelo/Info_Arduino+esp266/arduino-premiers-pas-en-informatique-embarquee.pdf => pg 164 http://www.arduino.cc/en/Tutorial/Blink */ //============================================================= //============================================================= // DECLARER LES VARIABLES : // // LES PINS : int bouton_led1_pin = 2 ; int bouton_led2_pin = 4 ; // // LES LEDS : long led1_t_acquisition ; long led2_t_acquisition ; // // LES DUREES DE CLIGNOTEMENT : long led1_duree = 1000 ; long led2_duree = 2000 ; // // DIVERS : long t_actuel; int led1_init_int = 0; int led2_init_int = 0; int led1_res_modulo; int led2_res_modulo; //============================================================= //============================================================= // the setup function runs once when you press reset or power the board void setup() { // POUR LE DEBUG : Serial.begin(9600); // ENREGISTRER LA VALEUR DU TEMPS ACTUEL, DANS LES VARIABLES SUIVANTES : led1_t_acquisition = millis() ; led2_t_acquisition = millis() ; // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : // SANS PULL-UP //pinMode( led1_pin , OUTPUT ); pinMode( bouton_led2_pin , OUTPUT ); // ------------------- // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : // AVEC PULL-UP // ON PRECISE QU_IL S_AGIT D_UNE ENTREE (CAR ON VA UTILISER UNE RESISTANCE PULL-UP !!! //pinMode( bouton_led1_pin , INPUT ); //pinMode( bouton_led2_pin , INPUT ); // ON ACTIVE LA RESISTANCE PULL-UP EN PLACANT LA BROCHE CITEE A L_ETAT HAUT !!! //digitalWrite( bouton_led1_pin , HIGH ); //digitalWrite( bouton_led2_pin , HIGH ); // ------------------- // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : // AVEC PULL-UP // ON PRECISE QU_IL S_AGIT D_UNE ENTREE (CAR ON VA UTILISER UNE RESISTANCE PULL-UP !!! pinMode( bouton_led1_pin , INPUT_PULLUP ); //pinMode( bouton_led2_pin , INPUT_PULLUP ); } //------------------------------------------------------------------------------------ // the loop function runs over and over again forever void loop() { t_actuel = millis(); // INITIALISATION : if ( (led1_init_int == 0) and (led2_init_int == 0) ) { Serial.println("INIT INIT INIT INIT INIT INIT INIT INIT"); Serial.println("INIT INIT INIT INIT INIT INIT INIT INIT"); // led1_t_acquisition = millis(); led2_t_acquisition = millis(); led1_init_int = led1_init_int + 1; led2_init_int = led2_init_int + 1; } // LED 1 : //======== if ( t_actuel > led1_t_acquisition + led1_duree ) { led1_res_modulo = led1_init_int % 2; if ( led1_res_modulo == 1 ) { Serial.println("1111____res_modulo = " + String (led1_res_modulo) ); //https://www.arduino.cc/en/Reference.StringConstructor digitalWrite( bouton_led1_pin , HIGH ) ; led1_init_int = led1_init_int + 1; } if ( led1_res_modulo == 0 ) { Serial.println("0000____res_modulo = " + String (led1_res_modulo) ); digitalWrite( bouton_led1_pin , LOW ) ; led1_init_int = led1_init_int + 1; } led1_t_acquisition = millis(); } // LED 2 : //======== if ( t_actuel > led2_t_acquisition + led2_duree ) { led2_res_modulo = led2_init_int % 2; if ( led2_res_modulo == 1 ) { Serial.println("aaaa____res_modulo = " + String (led2_res_modulo) ); //https://www.arduino.cc/en/Reference.StringConstructor digitalWrite( bouton_led2_pin , HIGH ) ; led2_init_int = led2_init_int + 1; } if ( led2_res_modulo == 0 ) { Serial.println("bbbb____res_modulo = " + String (led2_res_modulo) ); digitalWrite( bouton_led2_pin , LOW ) ; led2_init_int = led2_init_int + 1; } led2_t_acquisition = millis(); } } //---------------------------------------------------- // X X X X X X X X X X X X X X X //========================================================================================================================= //========================================================================================================================= /* Blink By Severino with millis() function ! 2019/09/11 http://ftp_stockage.azqs.com/filouGeeknik/robotvelo/Info_Arduino+esp266/arduino-premiers-pas-en-informatique-embarquee.pdf => pg 164 // // LIRE L_ETAT D_UNE ENTREE DIGITALE // => voir le code vers le 3/4 vers le bas de la page web ! // => byte bouton1_etat = digitalRead( pin_bouton1 ); // https://www.carnetdumaker.net/articles/utiliser-les-entrees-sorties-numeriques-dune-carte-arduino-genuino/ http://www.arduino.cc/en/Tutorial/Blink */ //============================================================= //============================================================= // DECLARER LES VARIABLES : // // LES BOUTONS NE SONT PAS BRANCHES EN SERIE AVEC LES LEDS ! // 1___LES BOUTONS SONT BRANCHES EN ENTREES => SI ON APPUIE DESSUS => ON ENVOIE UN SIGNAL A ARDUINO ! // 2___SUIVANT LE BOUTON ENFONCE, ARDUINO ENVOIE UN SIGNAL HIGH POUR ALLUMER LA LED CORRESPONDANT AU BON BOUTON !!! // // =================================================== // NE PAS UTILISER LES PINS : 0 et 1 !!! !!! !!! // =================================================== // // BOUTON 1 : int bouton1_pin = 2 ; // AVANCER int bouton1_led1_pin = 3 ; // //// BOUTON 2 : int bouton2_pin = 5 ; // RECULER int bouton2_led2_pin = 6 ; // // BOUTON 3 : int bouton3_pin = 8 ; // GAUCHE int bouton3_led3_pin = 9 ; // //// BOUTON 4 : int bouton4_pin = 11 ; // DROITE int bouton4_led4_pin = 12 ; // LES LEDS : long led1_t_acquisition ; long led2_t_acquisition ; // // LES DUREES DE CLIGNOTEMENT : long led1_duree = 1000 ; long led2_duree = 2000 ; // // DIVERS : long t_actuel; int led1_init_int = 0; int led2_init_int = 0; int led1_res_modulo; int led2_res_modulo; //============================================================= //============================================================= // the setup function runs once when you press reset or power the board void setup() { // POUR LE DEBUG : Serial.begin(9600); /* // ENREGISTRER LA VALEUR DU TEMPS ACTUEL, DANS LES VARIABLES SUIVANTES : //led1_t_acquisition = millis() ; //led2_t_acquisition = millis() ; // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : // SANS PULL-UP //pinMode( led1_pin , OUTPUT ); //pinMode( bouton_led2_pin , OUTPUT ); // ------------------- // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : // AVEC PULL-UP // ON PRECISE QU_IL S_AGIT D_UNE ENTREE (CAR ON VA UTILISER UNE RESISTANCE PULL-UP !!! //pinMode( bouton_led1_pin , INPUT ); //pinMode( bouton_led2_pin , INPUT ); // ON ACTIVE LA RESISTANCE PULL-UP EN PLACANT LA BROCHE CITEE A L_ETAT HAUT !!! //digitalWrite( bouton_led1_pin , HIGH ); //digitalWrite( bouton_led2_pin , HIGH ); // ------------------- */ // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : // AVEC PULL-UP // ON PRECISE QU_IL S_AGIT D_UNE ENTREE (CAR ON VA UTILISER UNE RESISTANCE PULL-UP !!! pinMode( bouton1_pin , INPUT_PULLUP ); // E => 2 (E=entree) pinMode( bouton2_pin , INPUT_PULLUP ); // E => 8 pinMode( bouton3_pin , INPUT_PULLUP ); // E => 2 (E=entree) pinMode( bouton4_pin , INPUT_PULLUP ); // E => 8 // DECLARER LES PINS A UTILISER QUI VONT ALIMENTER LES LEDS : // SANS PULL-UP pinMode( bouton1_led1_pin , OUTPUT ); // S => 3 (S=sortie) pinMode( bouton2_led2_pin , OUTPUT ); // S => 9 (S=sortie) pinMode( bouton3_led3_pin , OUTPUT ); // S => 3 (S=sortie) pinMode( bouton4_led4_pin , OUTPUT ); // S => 9 (S=sortie) } //------------------------------------------------------------------------------------ // the loop function runs over and over again forever void loop() { // CREATION DES VARIABLES BOOLEENNES QUI VONT CONSERVER LES ETATS DES INTERRUPTEURS : byte bouton1_etatAppuye_BOOL = digitalRead( bouton1_pin ); byte bouton2_etatAppuye_BOOL = digitalRead( bouton2_pin ); byte bouton3_etatAppuye_BOOL = digitalRead( bouton3_pin ); byte bouton4_etatAppuye_BOOL = digitalRead( bouton4_pin ); // //Serial.println( "===================bouton1_etat = " + String( bouton1_etatAppuye_BOOL ) ); //--------------------------------------------------------------------------------------------- // BOUTON 1 : // AVANCER / bouton1_pin = 2 / bouton1_led1_pin = 3 if ( bouton1_etatAppuye_BOOL == 1 ) { digitalWrite( bouton1_led1_pin , LOW ) ; } else { digitalWrite( bouton1_led1_pin , HIGH ) ; } //--------------------------------------------------------------------------------------------- // BOUTON 2 : // RECULER / bouton2_pin = 5 / bouton2_led2_pin = 6 if ( bouton2_etatAppuye_BOOL == 1 ) { digitalWrite( bouton2_led2_pin , LOW ) ; } else { digitalWrite( bouton2_led2_pin , HIGH ) ; } //--------------------------------------------------------------------------------------------- // BOUTON 3 : // GAUCHE / bouton3_pin = 8 / bouton3_led3_pin = 9 if ( bouton3_etatAppuye_BOOL == 1 ) { digitalWrite( bouton3_led3_pin , LOW ) ; } else { digitalWrite( bouton3_led3_pin , HIGH ) ; } //--------------------------------------------------------------------------------------------- // BOUTON 4 : // DROITE / bouton4_pin = 11 / bouton4_led4_pin = 12 if ( bouton4_etatAppuye_BOOL == 1 ) { digitalWrite( bouton4_led4_pin , LOW ) ; } else { digitalWrite( bouton4_led4_pin , HIGH ) ; } //--------------------------------------------------------------------------------------------- /* // INITIALISATION : if ( (led1_init_int == 0) and (led2_init_int == 0) ) { Serial.println("INIT INIT INIT INIT INIT INIT INIT INIT"); Serial.println("INIT INIT INIT INIT INIT INIT INIT INIT"); // led1_t_acquisition = millis(); led2_t_acquisition = millis(); led1_init_int = led1_init_int + 1; led2_init_int = led2_init_int + 1; } // LED 1 : //======== if ( t_actuel > led1_t_acquisition + led1_duree ) { led1_res_modulo = led1_init_int % 2; if ( led1_res_modulo == 1 ) { Serial.println("1111____res_modulo = " + String (led1_res_modulo) ); //https://www.arduino.cc/en/Reference.StringConstructor digitalWrite( bouton_led1_pin , HIGH ) ; led1_init_int = led1_init_int + 1; } if ( led1_res_modulo == 0 ) { Serial.println("0000____res_modulo = " + String (led1_res_modulo) ); digitalWrite( bouton_led1_pin , LOW ) ; led1_init_int = led1_init_int + 1; } led1_t_acquisition = millis(); } // LED 2 : //======== if ( t_actuel > led2_t_acquisition + led2_duree ) { led2_res_modulo = led2_init_int % 2; if ( led2_res_modulo == 1 ) { Serial.println("aaaa____res_modulo = " + String (led2_res_modulo) ); //https://www.arduino.cc/en/Reference.StringConstructor digitalWrite( bouton_led2_pin , HIGH ) ; led2_init_int = led2_init_int + 1; } if ( led2_res_modulo == 0 ) { Serial.println("bbbb____res_modulo = " + String (led2_res_modulo) ); digitalWrite( bouton_led2_pin , LOW ) ; led2_init_int = led2_init_int + 1; } led2_t_acquisition = millis(); } */ } //---------------------------------------------------- // DL : https://github.com/nRF24/RF24 https://howtomechatronics.com/tutorials/arduino/arduino-wireless-communication-nrf24l01-tutorial/ https://tmrh20.github.io/RF24/ https://tmrh20.github.io/RF24/classRF24.html#af564e19261afb56005d2411d0c7b05de http://arduinoinfo.mywikis.net/wiki/Nrf24L01-2.4GHz-HowTo#Power_Problems: Datasheet du NRF24L01: https://www.mouser.fr/datasheet/2/297/nRF24L01_Product_Specification_v2_0-9199.pdf https://forum.arduino.cc/index.php?topic=411686.0 https://wiki.labomedia.org/index.php/NRF24L01+.html https://www.nordicsemi.com/Products/Low-power-short-range-wireless/nRF24-series ARDUINO PAS ASSEZ PUISSANT POUR ALIMENTER LE NRF24 L01 => SOLUTION : https://www.youtube.com/watch?v=bVpYhTBsOOE https://www.tomsguide.fr/telechargement-comment-remplacer-utorrent/