start:arduino:nrf24l01
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:arduino:nrf24l01 [2022/05/22 21:28] – [Maquette de test] gerardadmin | start:arduino:nrf24l01 [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 25: | Ligne 25: | ||
[[https:// | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[start: | ||
+ | |||
+ | [[https:// | ||
Ligne 129: | Ligne 137: | ||
</ | </ | ||
===== Maquette | ===== Maquette | ||
+ | <code c ESP32_BP_NRF24L01_Emission002_GL.ino> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include " | ||
+ | #include " | ||
+ | // | ||
+ | #define tunnel1 " | ||
+ | #define tunnel2 " | ||
+ | #define tunnel3 " | ||
+ | #define tunnel4 " | ||
+ | #define tunnel5 " | ||
+ | #define tunnel6 " | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | DFRobot_MCP23017 mcp(Wire, /*addr =*/ | ||
+ | #define Led0 mcp.eGPB0 | ||
+ | #define Led1 mcp.eGPB1 | ||
+ | #define Bp0 mcp.eGPA0 | ||
+ | #define Bp1 mcp.eGPA1 | ||
+ | |||
+ | int MemLed0 =0; | ||
+ | int MemBp0 =0; | ||
+ | int tempo0 =50; | ||
+ | |||
+ | int MemLed1 =0; | ||
+ | int MemBp1 =0; | ||
+ | int tempo1 =50; | ||
+ | |||
+ | int compteur = 0; | ||
+ | |||
+ | RF24 radio(4, 5); | ||
+ | const byte adresses[][6] = {tunnel1, tunnel2, tunnel3, tunnel4, tunnel5, tunnel6}; | ||
+ | const int taille = 32; | ||
+ | char message[taille + 1]; | ||
+ | char messageACK[taille +1]; | ||
+ | |||
+ | |||
+ | |||
+ | void DebugVar(int nb, int valBP0) { | ||
+ | Serial.print(" | ||
+ | Serial.print(" | ||
+ | Serial.print(" | ||
+ | Serial.print(" | ||
+ | Serial.print(" | ||
+ | delay(250); | ||
+ | } | ||
+ | int LectBp0() { | ||
+ | // Bouton O -- Led0 | ||
+ | |||
+ | int valeurBp0 = mcp.digitalRead(mcp.eGPA0); | ||
+ | |||
+ | | ||
+ | //Temps 0 | ||
+ | if(valeurBp0== 0 && MemBp0 == 0 && MemLed0 == 0){ | ||
+ | | ||
+ | // | ||
+ | } | ||
+ | // | ||
+ | if (valeurBp0 == 1 && MemBp0 ==0 && MemLed0 == 0) { | ||
+ | mcp.digitalWrite(mcp.eGPB0, | ||
+ | // | ||
+ | } | ||
+ | //Temps 2 | ||
+ | if (valeurBp0 == 0 && MemBp0 ==1 && MemLed0 == 1) { | ||
+ | mcp.digitalWrite(mcp.eGPB0, | ||
+ | // | ||
+ | } | ||
+ | //Temps 3 | ||
+ | if (valeurBp0 == 1 && MemBp0 ==0 && MemLed0 == 1) { | ||
+ | mcp.digitalWrite(mcp.eGPB0, | ||
+ | // | ||
+ | } | ||
+ | //Temps 4 | ||
+ | if (valeurBp0 == 0 && MemBp0 ==1 && MemLed0 == 0) { | ||
+ | mcp.digitalWrite(mcp.eGPB0, | ||
+ | // | ||
+ | } | ||
+ | delay(20); | ||
+ | return(!valeurBp0); | ||
+ | | ||
+ | } | ||
+ | |||
+ | int LectBp1(){ | ||
+ | // Bouton 1 -- Led1 | ||
+ | |||
+ | uint8_t valeurBp1 = mcp.digitalRead(mcp.eGPA1); | ||
+ | | ||
+ | | ||
+ | //Temps 0 | ||
+ | if(valeurBp1== 0 && MemBp1 == 0 && MemLed1 == 0){ | ||
+ | | ||
+ | // | ||
+ | } | ||
+ | // | ||
+ | if (valeurBp1 == 1 && MemBp1 ==0 && MemLed1 == 0) { | ||
+ | mcp.digitalWrite(mcp.eGPB1, | ||
+ | // | ||
+ | } | ||
+ | //Temps 2 | ||
+ | if (valeurBp1 == 0 && MemBp1 ==1 && MemLed1 == 1) { | ||
+ | mcp.digitalWrite(mcp.eGPB1, | ||
+ | // | ||
+ | } | ||
+ | //Temps 3 | ||
+ | if (valeurBp1 == 1 && MemBp1 ==0 && MemLed1 == 1) { | ||
+ | mcp.digitalWrite(mcp.eGPB1, | ||
+ | // | ||
+ | } | ||
+ | //Temps 4 | ||
+ | if (valeurBp1 == 0 && MemBp1 ==1 && MemLed1 == 0) { | ||
+ | mcp.digitalWrite(mcp.eGPB1, | ||
+ | // | ||
+ | } | ||
+ | return(valeurBp1); | ||
+ | } | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(115200); | ||
+ | |||
+ | | ||
+ | Serial.println(" | ||
+ | radio.begin(); | ||
+ | radio.setChannel(125); | ||
+ | radio.setPALevel(RF24_PA_MIN); | ||
+ | radio.setDataRate(RF24_250KBPS); | ||
+ | radio.openWritingPipe(adresses[0]); | ||
+ | // | ||
+ | radio.openReadingPipe(1, | ||
+ | radio.openReadingPipe(2, | ||
+ | radio.openReadingPipe(3, | ||
+ | radio.openReadingPipe(4, | ||
+ | radio.openReadingPipe(5, | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | while(mcp.begin() != 0){ | ||
+ | Serial.println(" | ||
+ | delay(1000); | ||
+ | } | ||
+ | | ||
+ | mcp.pinMode(Bp0, | ||
+ | mcp.pinMode(Bp1, | ||
+ | mcp.pinMode(mcp.eGPB0, | ||
+ | mcp.pinMode(Led0, | ||
+ | mcp.digitalWrite(mcp.eGPB0, | ||
+ | mcp.digitalWrite(Led1, | ||
+ | | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | |||
+ | |||
+ | //Lecture Boutons poussoir | ||
+ | LectBp0(); | ||
+ | // | ||
+ | // | ||
+ | |||
+ | |||
+ | compteur | ||
+ | // | ||
+ | // | ||
+ | // envoie message | ||
+ | if (compteur == 1 ){ | ||
+ | radio.stopListening(); | ||
+ | itoa(compteur, | ||
+ | Serial.print(" | ||
+ | Serial.println(message);// | ||
+ | radio.write( message, taille ); // émission du message via nRF24L01 | ||
+ | delay(200); | ||
+ | compteur = 0; | ||
+ | } | ||
+ | |||
+ | radio.startListening(); | ||
+ | if(radio.available()){ | ||
+ | | ||
+ | while ( radio.available() ) | ||
+ | { | ||
+ | radio.read( messageACK, taille ); | ||
+ | Serial.print(" | ||
+ | Serial.println(messageACK); | ||
+ | } | ||
+ | delay(20); | ||
+ | } | ||
+ | | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
<code c ESP32_BP_NRF24L01_Reception002_GL.ino> | <code c ESP32_BP_NRF24L01_Reception002_GL.ino> |
/home/chanteri/www/fablab37110/data/attic/start/arduino/nrf24l01.1653247696.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)