Приемник 433 МГц и реле.

Xaket
Offline
Зарегистрирован: 17.11.2017

Вналичии:

Приемник RX470C-V01

Реле

Arduino nano

Нужно что-бы при нажатии кнопки реле замкнулось а при отпускании кнопки разомкнулось.Помогите написать код, не как не получается.

#include <RCSwitch.h>
int Relay1 = 4;
RCSwitch mySwitch = RCSwitch();
 
void setup() {
  Serial.begin(115200);
  pinMode(Relay1, OUTPUT); 
  digitalWrite(Relay1, HIGH);  // При включении отправляем высокий уровень
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
 
}
 
void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
    }
if (mySwitch.getReceivedValue() == 11111111) { / код кнопки
      digitalWrite(Relay1,HIGH); // 
    } else {
      digitalWrite(Relay1,LOW); // 
    }
 
 
    mySwitch.resetAvailable();
  }
}
andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

а в Serial хоть что то выводиться? сам прием информации происходит?

и вообще логику не пойму - зачем два раза getReceivedValue() 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...

Это в смысле, помогите прочитать и прокомментировать Ваш код, а то 

Xaket пишет:

не как не получается.

Xaket
Offline
Зарегистрирован: 17.11.2017

 На порту код кнопки высвечивается.Прием идет.Зачем 2 раза ? Где именно?. 

Хорошо следующий раз воспользуюсь этой функцией "http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii" я новичок на данном форуме и не знаю некоторые  его возможности. Не получается, в смысле при нажатии кнопки реле только замыкается. Возможно нужен цикл, но как его реализовать?

b707
Offline
Зарегистрирован: 26.05.2017

Xaket пишет:

 Хорошо следующий раз воспользуюсь этой функцией "http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii"

Хорошо, тогда мы вам в следующий раз поможем. Удачи.

Xaket
Offline
Зарегистрирован: 17.11.2017

И тебе удачи. 

Xaket
Offline
Зарегистрирован: 17.11.2017

Возможно нужен цикл, но как его реализовать?

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

Xaket пишет:

Возможно нужен цикл, но как его реализовать?


Поскольку отпускание кнопки не вызывает никакого кода, то вам придется продумывать алгоритм по другому.
Что-то типа
 

void loop() {
  if (mySwitch.available()) {
    
    int value = mySwitch.getReceivedValue();
    
    if (value == 0) {
      Serial.print("Unknown encoding");
    } else {
      Serial.print("Received ");
      Serial.print( mySwitch.getReceivedValue() );
      Serial.print(" / ");
      Serial.print( mySwitch.getReceivedBitlength() );
      Serial.print("bit ");
      Serial.print("Protocol: ");
      Serial.println( mySwitch.getReceivedProtocol() );
    }
if (mySwitch.getReceivedValue() == 11111111) { / код кнопки
      digitalWrite(Relay1,HIGH); // 
    } 
//else {
 //digitalWrite(Relay1,LOW); // 
 //  }
 
 
    mySwitch.resetAvailable();
  }
if (digitalRead(Relay1)) digitalWrite(Relay1,LOW);
}

Наверняка еще потребуется вставить какой-то код для борьбы с пропусками приемов. Т.е. отпускать реле не сразу по пропаданию кода, а если код не пришел более 100мс подряд или что-то в этом роде

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Xaket пишет:

Хорошо следующий раз воспользуюсь этой функцией 

Простите, Вы здоровы?

Вам сказали как нужно выкладывать код, так и выкладывайте сейчас, а не в следующий раз.

Вы думаете мы это только из эстетики? Таки нет! Вот как Вы прикажете мне подсказать Вам в какой у Вас строке ошибка? Пальчиком считать или писать "исправьте строку №ХЗ"?

Вставляйте код - не ленитесь!

Xaket
Offline
Зарегистрирован: 17.11.2017

 

У меня только цетирование и нет меню изменить написанное как это реализовать или писать сообщение по 2 -3 раза что-бы вас устроило? О моем здоровье не беспокойтесь, лучше о своем подумайте.

Xaket
Offline
Зарегистрирован: 17.11.2017

Sr.FatCat, нечего не могу придумать. Скорей нужно придумывать все с нуля. Видать придется покопаться покопаться в чужом коде , может поможет. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Начинаем хамить?

значит, так молодой человек, запонимте. пожалуйста:

Xaket пишет:

что-бы вас устроило?

Меня устроит абсолютно любой вариант, например, что Вы вообще ничего не будете выкладывать. Проблема не у меня, а у Вас. Так что делате так, чтобы Вас устроило.

Xaket пишет:

 нет меню изменить написанное

А меню "создать новое сообщение" у Вас есть? Вот этот текст, на который я сейчас отвечаю, Вы сумели выложить, а код почему-то нет. Какова Ваша цель? Получить помощь по коду или огрызнуться против меня? Определитесь и тогда действуйте в соответствие с целью.

--------------

И ещё раз - меня устроит любой вариант. можете ничего не выкладывать вовсе. А вот если Вам (не мне, заметьте) нужна помощь сообщества, сделайте так. чтобы люди могли Вам помочь без подсчитывания номреов строк пальцем.

 

Xaket
Offline
Зарегистрирован: 17.11.2017

Хамите и огрызаетесь как раз вы,я же обращаюсь за помощью. Зачем по нескольку раз писать одно и тоже?.Еще раз пишу,я новичок и не знаю некоторых функций , в следующий раз воспользуюсь"вставкой и редактированием кода", буду знать спасибо. Я его уже выложил код и люди уже помогают. Вопрос стоит таков, зачем вы здесь? Цель одна, прошу помощи. 

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

Xaket пишет:

Sr.FatCat, нечего не могу придумать. Скорей нужно придумывать все с нуля. Видать придется покопаться покопаться в чужом коде , может поможет. 


Я вам уже код дал? Что в нем не устраивает?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, что ж дело Ваше. Я попытался Вам объяснить для чего нужно выкладывать код правильно. Не хотите - флаг в руки. Вам уже сказал коллега, что когда Вы в следующий раз выложите код правильно, тогда мы его и посмотрим и может чего посоветуем. Удачи!