Reception radio

Bonjour à tous,
je souhaite faire mon alarme pour ma maison et pour cela j'ai acheté en SOLDES ( vive les soldes) un détecteur de mouvement radio, et une alarme radio, le seul soucis, c'est que j'ai un soucis pour compiler le programme.

#include <RCSwitch.h>
#define detecteurIR 12449942
#define telecommande1 13464824
#define telecommande2 13464424
#define telecommande3 13464624
#define telecommande4 13464224


RCSwitch mySwitch = RCSwitch();

// On limite à un évènement par seconde long
#define debounceDelay 1000

// On a deux détecteurs, donc on a 5 timers.
last_times[5] = {0,0,0,0,0};

void setup() {
    Serial.begin(9600);
    mySwitch.enableReceive(0);
}

bool debounce(int number) {
    if ((last_times[number] == 0) ||
        ((millis() - last_times[number]) > debounceDelay)) {
        last_times[number] = millis();
        return true;
    }
    return false;
}

void loop() {
  if (mySwitch.available()) {

    int value = mySwitch.getReceivedValue();

    // on remet à zero le timer
    while (!Serial) ;

    switch (value) {
      
        case detecteurIR:
            if (debounce(0))
                Serial.println("Quelqu'un dans la maison");
            break;
            
        case telecommande1:
            if (debounce(1))
                Serial.println("appuie sur une toude de la telecommande !");
            break;
            
              case telecommande2:
            if (debounce(0))
                Serial.println("Quelqu'un dans la maison");
            break;
            
        case telecommande3:
            if (debounce(1))
                Serial.println("appuie sur une toude de la telecommande !");
            break;
            
            case telecommande4:
            if (debounce(1))
                Serial.println("appuie sur une toude de la telecommande !");
            break;
            
        default:
            Serial.print("Dispositif inconnu: ");
            Serial.println(value);
            break;
    }

    mySwitch.resetAvailable();
  }
}

'last_times' does not name a type.

Merci d'avance :slight_smile:

Bonjour,

Le message est très explicite. Il faut déclarer last_times avec son type.

unsigned long last_times[5] = {0,0,0,0,0};

Merci beaucoup ça marche :wink:

ah si j'oubliais, il y a la partie "debounce" est ce que ça doit faire ceci avec les chiffres ?

switch (value) {
      
        case detecteurIR:
            if (debounce(0))
                Serial.println("Quelqu'un dans la maison");
            break;
            
        case telecommande1:
            if (debounce(1))
                Serial.println("appuie sur une toude de la telecommande !");
            break;
            
              case telecommande2:
            if (debounce(2))
                Serial.println("Quelqu'un dans la maison");
            break;
            
        case telecommande3:
            if (debounce(3))
                Serial.println("appuie sur une toude de la telecommande !");
            break;
            
            case telecommande4:
            if (debounce(4))
                Serial.println("appuie sur une toude de la telecommande !");
            break;

Bonjour,
je n'ai pas beaucoup de porté avec ma télécommande radio (5m) grand maxi. Comment je peux faire pour amplifier le signal coté récepteur ou et emmetteur?
Merci

bzhsurfing:
Bonjour,
je n'ai pas beaucoup de porté avec ma télécommande radio (5m) grand maxi. Comment je peux faire pour amplifier le signal coté récepteur ou et emmetteur?
Merci

Personne ne peut m'aider ?

Quelle est la frequence de l'émetteur ?

Tu as un lien pour la télécommande stp ?
ça doit certainement être du 433.920 MHz ou 868 MHz ?

Une bonne antenne en réception devrai améliorer la chose.

Bonjour, j'ai trouvé le problème (je pense) ça se passe du coté récepteur. J'ai essayé avec un autre, j'ai plus de portée. Donc j'ai commandé un récepteur qui devrait arriver dans la semaine. Par contre est ce que quelqu'un pourrait m'expliquer les "debounce" dans le programme ?
Merci à vous.
PS : c'est bien du 433MHz