Remote Switch, помогите разобраться с моим кодом

Тема в разделе "Arduino & Shields", создана пользователем Evgen-82, 20 май 2016.

  1. Evgen-82

    Evgen-82 Нерд

    Требуется помощь, подскажите пожалуйста, как управлять с одного пульта от люстры несколькими нагрузками, коды пульта я прочел, вышло следующее:
    А то я уже весь гугл перерыл, ничего не понял, у Дмитрия Осипова есть похожий урок, но он управляет с планшета через интернет такими нагрузками а мне нужно с пульта

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

    И соответственно я написал скетч:

    #include <RCSwitch.h>
    RCSwitch mySwitch = RCSwitch();
    const int kod1 = 342252; //коди клавиш
    const int kod2 = 342234;
    const int kod3 = 342228;
    const int kod4 = 342226;

    const int red = 13; //выход на лампы
    const int green = 11;
    const int blue = 10;
    int kod;
    int i;

    void setup() {
    pinMode(2, OUTPUT);
    pinMode(5, OUTPUT);
    digitalWrite(2, 1);
    digitalWrite(5, 0);
    Serial.begin(9600);
    mySwitch.enableReceive(1); // приемник на пин2
    pinMode(red, OUTPUT);
    pinMode(green, OUTPUT);
    pinMode(blue, OUTPUT);
    }


    void loop() {
    if (mySwitch.getReceivedValue() == 342252,257) {
    kod = kod1;
    }
    else if (mySwitch.getReceivedValue() == 342234,257) {
    kod = kod2;
    }
    else if (mySwitch.getReceivedValue() == 342228,257) {
    kod = kod3;
    }
    if (kod == kod1) {
    analogWrite(red, HIGHT)==!analogWrite(red, LOW);
    }
    else if (kod == kod2) {
    analogWrite(red, HIGHT)==!analogWrite(red, LOW);

    }
    else if (kod == kod3) {
    analogWrite(red, HIGHT)==!analogWrite(red, LOW);
    }
    }
     

    Вложения:

  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    const int kod2 = 342234; - неправильно, тип int имеет размерность не более 32767.

    mySwitch.getReceivedValue() == 342228,257 - что означает 257?

    analogWrite(red, HIGHT) - что такое HIGHT? К тому же пины 10, 11 ,13 - цифровые, а ты пытаешься читать/впихнуть туда аналог.

    Пишу только изменения:
    Код (C++):

    const unsigned int kod1 = 342252; //коди клавиш
    const unsigned int kod2 = 342234;
    const unsigned int kod3 = 342228;
    const unsigned int kod4 = 342226;

    const byte red = 13; //выход на лампы
    const byte green = 11;
    const byte blue = 10;

    void loop()
    {
       switch (mySwitch.getReceivedValue())
       {
         case kod1:
         digitalWrite(red, !digitalRead(red));
         break;

         case kod2:
         digitalWrite(green, !digitalRead(green));
         break;

         case kod3:
         digitalWrite(blue, !digitalRead(blue));
         break;

         case kod4:
         digitalWrite(red, LOW);
         digitalWrite(green, LOW);
         digitalWrite(blue, LOW);
         break;
       }
    }
     
    Последнее редактирование: 20 май 2016
  3. Evgen-82

    Evgen-82 Нерд

    Период пежду импульсами, дело в том что они тоже отображаются в мониторе порта при считывание кодов кнопок
     
  4. Evgen-82

    Evgen-82 Нерд

    Я не особо в этом пока селен, но смысл таков имеется вот такой пульт на частоту 433МГц, имеется пару таких приемников, см. ФОТО, идея такая, сделать несколько блоков управления, приемников на 4 нагрузки, и что бы они управлялись с одного пульта, работать должны так: нажал на кнопку, нагрузка включилась, нажал еще раз эту же кнопку, нагрузка выключилась, с IR управлением я подобное уже делал, все работает, но хотелось бы другой сделать по радиоканалу