Bonjour à tous,
J'ai trouvé sur internet le code pour allumer une LED à distance avec un bouton avec des modules émetteur-récepteur :
http://www.aliexpress.com/item/1Lot-.../968306683.htm
Ce code permet d'allumer une LED quand on appuie sur le bouton et quand on relache la LED s'éteint :
Code émetteur :
Code récepteur :Code:#include <VirtualWire.h> // librairie VirtualWire #define TxPin 12 // entrée de l'Arduino où est branché l'émetteur #define bouton1 2 int Nombre; char Message[VW_MAX_MESSAGE_LEN]; void setup() { vw_setup(2000); // Bits par seconde pinMode(bouton1, INPUT); digitalWrite(bouton1, HIGH); // pull up interne } void loop() { if (digitalRead(bouton1)){ Nombre = 1; } else { Nombre = 4; } // convertion de l'int en tableau de char itoa(Nombre,Message,10); // 10 car décimal vw_send((uint8_t *)Message, strlen(Message)); vw_wait_tx(); // Wait until the whole message is gone delay(200); }
J'aimerais modifier le code pour que quand on appuie sur le bouton la LED s'allume et quand on réappuie sur le même bouton la LED s'éteint.Code:#include <VirtualWire.h> #define LED1 2 int Nombre; char Message[VW_MAX_MESSAGE_LEN]; void setup() { vw_setup(2000); // Bits par seconde vw_rx_start(); pinMode(LED1, OUTPUT); } void loop(){ uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) { int i; for (i = 0; i < buflen; i++) { Message[i] = char(buf[i]); } Message[buflen] = '\0'; // Conversion du tableau de chars en int: Nombre = atoi(Message); if (Nombre == 1){ digitalWrite (LED1,HIGH); } if (Nombre == 4){ digitalWrite (LED1,LOW); } } }
Je n'ai pas trouvé sur internet
Si quelqu'un peut m'aider
Merci d'avance
-----