Помагите разобраться с радиоуправлением на основе модуля приемника и пульта на 433МГц

Тема в разделе "Проводная и беспроводная связь", создана пользователем Evgen-82, 20 май 2016.

  1. Evgen-82

    Evgen-82 Нерд

    Имеется пару модулей приемников на 433МГц, а так же имеется пульт от люстры на 433МГц, коды с кнопок мне удалось прочесть с изпользованием библиотеки RCSwitch, но я хотел бы реализовать управление 4 реле с помощью этого пульта, приемника и ARDUINO, весь гугл перерыл, но рабочего скетча по этой теме я так и нашел

    Коды кнопок:

    Code: 342252, period duration: 257us.
    Code: 342234, period duration: 257us
    Code: 342228, period duration 257us
    Code 342226, period duration 257us
     

    Вложения:

    Последнее редактирование: 21 май 2016
  2. Evgen-82

    Evgen-82 Нерд

    Есть вот такой код, но в чем ошибка?


    #include <RemoteReceiver.h>
    //Пины реле
    #define RELE1 4
    #define RELE2 5
    #define RELE3 6
    #define RELE4 7
    // Коды кнопок
    #define CODE1 000001
    #define CODE2 000002
    #define CODE3 000003
    #define CODE4 000004

    // Connect the receiver to digital pin 2.-пин 2.это вход для Радиоприёмника

    void setup() {
    Serial.begin(9600);
    RemoteReceiver::init(0, 3, showCode);
    pinMode(RELE1, OUTPUT);
    pinMode(RELE2, OUTPUT);
    pinMode(RELE3, OUTPUT);
    pinMode(RELE4, OUTPUT);
    // инициализируем статус реле
    digitalWrite(RELE1, HIGH);
    digitalWrite(RELE2, HIGH);
    digitalWrite(RELE3, HIGH);
    digitalWrite(RELE4, HIGH);
    }
    void loop() {
    }

    void showCode(unsigned long receivedCode, unsigned int period) {
    Serial.print("Code: ");
    Serial.print(receivedCode);
    Serial.print(", period duration: ");
    Serial.print(period);
    Serial.println("us.");
    //Переключаем реле с нужным кодом
    switch(receivedCode){
    case CODE1:
    digitalWrite(RELE1,!digitalRead(RELE1));
    break;
    case CODE2:
    digitalWrite(RELE2,!digitalRead(RELE2));
    break;
    case CODE3:
    digitalWrite(RELE3,!digitalRead(RELE3));
    break;
    case CODE4:
    digitalWrite(RELE4,!digitalRead(RELE4));
    break;
    }
    delay(500); //антидребезг
    }
     
  3. rigl

    rigl Нуб

    Очень странно вы пишите коды кнопок в define
    #define CODE1 000001
    #define CODE2 000002
    #define CODE3 000003
    #define CODE4 000004
    У вас есть кнопки с такими кодами ?
    В первом посте у вас были
    Code: 342252
    ....
     
  4. Evgen-82

    Evgen-82 Нерд

    Да это не то, мне нужно было понять как этими кодами управлять, т.е., включить выключить нагрузку одной кнопкой, в прочем я уже разобрался, так что данная тема ЗАКРЫТА!!!
     
  5. rigl

    rigl Нуб

    Вот так, оно обычно и бывает.
    Ищешь похожую проблему, а натыкаешься на