RCSwitch и светодиод
- Войдите на сайт для отправки комментариев
Чт, 24/11/2016 - 22:55
Пытаюсь освоить библиотеку RCSwitch. Подключил передатчик. На приёмнике стоит светодиод, который должен загораться на секунду и гаснуть, когда приходит 1. Вроде всё работает, да только светодиод светит далеко не в полную силу. Я не могу понять в чём дело. Искал похожее в интернете, но там одна и тоже, и код одинаковый. В чём может быть проблема? ЗЫ есть у кого ссылки на описание команд из этой библиотеки??? Передатчик
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); int a = 1; void setup(){ mySwitch.enableTransmit(10); Serial.begin(9600); } void loop(){ sendRC(a); Serial.print(a); delay(3000); } void sendRC(unsigned long code){ mySwitch.send(code,20); }
Приемник
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); int a = 0; int led = 5; void setup(){ Serial.begin(9600); mySwitch.enableReceive(0); } void loop(){ if (mySwitch.available()){ int a = mySwitch.getReceivedValue(); Serial.print(a); if (a == 1){ digitalWrite(led,1); delay(1000); digitalWrite(led,0); } } mySwitch.resetAvailable(); }
Нужно сконфигурировать порт как выход - pinMode(led, OUTPUT);
Спасибо. Разобрался с этой нелепой ошибкой.
А как мне передать сразу несколько переменных?? Я думаю, что нужно прописать несколько функций на передачу каждой переменной с маленькой задержкой, например, delay(5);?
Что за библиотеку Вы используете, не знаю, но если она написана правильно, небольшое количество переменных должно быть можно послать без пауз.
Посмотрите, обычно в подобных библиотеках используют буфер. Соответственно, можно единовременно отправить столько переменных, сколько помещается в буфере.
Библиотека RCSwitch. В интернете одни и теже примеры и описание не могу найти
Меня тоже интересует как передать сразу несколько переменных, используя библиотеку RCSwitch?
Мне нужно передать параметры двух датчиков. Одновременно.
Есть вариант значения преобразовать в строки; эти строки объединить через разделитель, например, пробел; передать, а при получении строку по разделителю разделить и получившиеся строки преобразовать в число...
Хотелось бы что-то попроще.
Оговорюсь сразу: библиотеку менять нельзя...
Какие значения принимают числа, которые вы хотите передать?
от -255 до +255
Вот вам вариант: берете четырехбайтовое число, в первые два байта пихаете значение первой метрики, в другие - второй. Передаете число... на принимающей стороне разбираете. Сделать можно через union.
Не велика разница: или строку передавать, или по битово запихнуть значения в число...
Хотелось бы как-то поизящнее...
Ну вы даете. Напишите код с юнионом и сравните с формированием-разбором строки. Потом расскажете - велика разница или нет.
Да, согласен с union лучше получается.
А что изящного у Джона Сильвера? Если мне не изменяет память, у него была деревянная нога...