Управление люстрой RCSwitch (описание библиотеки)

Tehnik
Offline
Зарегистрирован: 20.09.2013

Добрый день!

Интересует как работать с данной библиотекой, может какое описание команд есть , на русском желательно.... По инету порылся, есть примеры но своего случая так и не нашел...

Мысль такая, внести в свою китайскую люстру разнообразия...  С люстрой пульт идет 6 кнопочный на три канала, вот думал увеличить функциональность с помощью ардуино, ШИМ например для регулировки яркости, возможность управления количеством включенных лам, анимация общего включения.... Но, все застопорилось из за отсутствия знаний а набраться их не где...  Есть инфа по IR пульту но это не то....

Все что удалось это вот, в качестве теста:

#include <RCSwitch.h>

  int led1 = 9;
  int led2 = 12;
  int led3 = 11;

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  digitalWrite(led1,HIGH);
  mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available())
  {
   int value = mySwitch.getReceivedValue();
    
    switch (value)
   {
    case 4051136:
    digitalWrite(led1, HIGH);   // turn the LED on
    Serial.println("led1 ON ");
    break;
    
    case 4050992:
    digitalWrite(led2, HIGH);   // turn the LED on
    Serial.println("led2 ON ");
    break;
    
    case 4050956:
    digitalWrite(led3, HIGH);   // turn the LED on
    Serial.println("led3 ON ");
    break;
 
    case 4050959:
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    Serial.println("led ON ALL");
    break;
    
    case 4050947:
    digitalWrite(led2, LOW);   // turn the LED on
    Serial.println("led2 OFF ");
    break;
    
    case 4051139:
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    Serial.println("led OFF ALL ");
    break;         
   }
    mySwitch.resetAvailable();
  }
}

Столкнуля еще с одной проблемой, как на одну кнопку назначить несколько функций, хотя бы вкл/выкл

Если кто просвятит или покажет куда идти, буду благодарен....

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

а можно ей еще колеса прикрутить и что бы она ездила по потолку...

Tehnik
Offline
Зарегистрирован: 20.09.2013

Puhlyaviy пишет:

а можно ей еще колеса прикрутить и что бы она ездила по потолку...

 

А по теме есть что сказать?

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Tehnik пишет:

Столкнуля еще с одной проблемой, как на одну кнопку назначить несколько функций, хотя бы вкл/выкл

Если кто просвятит или покажет куда идти, буду благодарен....

Идти нужно в сторону изучения основ программирования

Запоминаете в переменную предыдущее состояние и меняете его каждый раз, когда прилетает код.

Можно еще мерить, сколько раз код прилетит за период (например 2 секунды),   уменьшать/увеличивать ШИМ (будет работать при нажатой более 2 сек коавиши)

Можно двойной клик как на мышке обрабатывать и даже сигналы азбуки морзе :)

Tehnik
Offline
Зарегистрирован: 20.09.2013

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

Что можно мерить, периоды  и прочее это я читал.... но практических примеров так и не нашел...

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Tehnik пишет:

Но пока вижу какие то усмешки непонятные... 

Сами виноваты: Вы бы еще профессором назвались, а потом стали спрашивать советов по элементарным вещам... :)

Про то, что "здесь подсказывают" - не надо питать иллюзий: никто Вам здесь ничего не должен, хотите получить совет - значит спрашивайте так, чтобы люди хотели Вам отвечать.

com
Offline
Зарегистрирован: 06.09.2013

Tehnik, вы спрашиваете, как работать с библиотекой, и сами же приводите пример работы с ней. у вас проблемы не с библиотекой, а с основами программирования.

Tehnik
Offline
Зарегистрирован: 20.09.2013

Возможно повторюсь, но если бы я все знал(включая основы програмирования) я бы ни чего не спрашивал....об этом сказано в первом моем сообщении...

То что здесь "ни кто ни чего не подскажет" это уже понятно.... Интересно, а что я не так спросил?? И при чем тут кто что должен....ни кого не принуждаю.... Но писать не по теме это лучше вообще не писать.... Я вообще не понимаю такого, есть что подсказать подскажи, а если сам ни чего не понимаешь, то промолчи...

Пример я привожу не мой, это с какого то сайта...

 

Tehnik
Offline
Зарегистрирован: 20.09.2013

Здесь же вроде как люди со знаниями собрались....

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Tehnik пишет:

Здесь же вроде как люди со знаниями собрались....

Вопросы типа "научите меня программировать" или "напишите мне программу" нигде не прокатят.

Начните программировать и правильные вопросы задавать ;) 

Небольшое отсупление:

- Посмотри мою программу. Где у меня ошибка?
- Посмотрел.
- Ну, и где?
- В ДНК.

 

com
Offline
Зарегистрирован: 06.09.2013

Tehnik, на обиженных воду возят. вы взялись за серьезное дело, не зная основ.

представьте себе диалог:

- мужики, я тут грузовик прикупил, подскажите, как перегной на дачу себе привезти

- а права-то у тебя есть? водить умеешь?

- нет конечно, я новичок, были бы права - не спрашивал бы

примеры хоть почитайте, хотя бы минимум освойте, а то вдруг кто-нибудь напишет вам скетч от начала до конца, а вы даже разобраться в нем не сможете

 

Tehnik
Offline
Зарегистрирован: 20.09.2013

и снова пустые слова....

Tehnik
Offline
Зарегистрирован: 20.09.2013

ни кого не просил учить....

Tehnik
Offline
Зарегистрирован: 20.09.2013

и мне не нужен скетч от начала до конца, пример скетча я приложил, и задал вопрос..... Если у вас знаний как у меня....зачем воду лить...

Tehnik
Offline
Зарегистрирован: 20.09.2013

sav13 пишет:

Tehnik пишет:

Здесь же вроде как люди со знаниями собрались....

Вопросы типа "научите меня программировать" или "напишите мне программу" нигде не прокатят.

Начните программировать и правильные вопросы задавать ;) 

Небольшое отсупление:

- Посмотри мою программу. Где у меня ошибка?
- Посмотрел.
- Ну, и где?
- В ДНК.

 

 

Вообще, это первый форум на котором такая реакция.... Бред какой то.... 

 

com
Offline
Зарегистрирован: 06.09.2013

Tehnik пишет:

все застопорилось из за отсутствия знаний а набраться их не где... 

не в коня корм

Tehnik
Offline
Зарегистрирован: 20.09.2013

Хорошо, как закрть тему?

Мне уже помогли на форуме по C++ при чем на следующий же день....пока вы здесь пустословили....бред...

com
Offline
Зарегистрирован: 06.09.2013

зачем закрывать? пусть остается как пример того ,как не надо задавать вопросы

Tehnik
Offline
Зарегистрирован: 20.09.2013

com пишет:

зачем закрывать? пусть остается как пример того ,как не надо задавать вопросы

Если вы не в состоянии понять вопроса, чтож сочувствую, не значит что все такие. Я обращался к действительно шаряшим людям, а не к паре делетантов которые пытаются повысить свою самооценку отпуская бессмысленые выражения...

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Tehnik пишет:

Вообще, это первый форум на котором такая реакция.... Бред какой то.... 

Привыкайте: интернет - он не весь состоит из хомячков, кое-где еще есть некий порог вхождения в сообщество...

_EndWar_
_EndWar_ аватар
Offline
Зарегистрирован: 05.08.2013

Dmitry OSIPOV
// Для режима on/off
// Знак "!" означает противоположное значение.
// Записываем в led1 "digitalWrite(led1", противоположное значение led1 "!digitalRead(led1".
// То бишь, если led1 был в LOW он станет HIGH а если led1 был в HIGH, он станет LOW.
// Для защиты от случайных переключений, делаем паузу delay(200).

case 4051136:
digitalWrite(led1, !digitalRead(led1));
delay(200);
break;

! (логическое отрицание)
на клавиатуре восклицательный знак
там где цифра 1, только с удержанием shift

https://www.youtube.com/channel/UC7aH7HVqDvwB1xNHfSl-fDw

fly245
fly245 аватар
Offline
Зарегистрирован: 25.08.2013

Люди подскажите, а как команду пульта люстры сохранить в епром,а потом по нажатию кнопки из епром возпроизвести?

tema.koroliov
Offline
Зарегистрирован: 30.10.2016

Всем привет! Зарегистрировался специально чтобы спросить на эту тему.

Есть у меня блок с релюхами от китайской люстры без пульта, хочу примонстрячить его в огород и включать свет то там то тут :) (полушутка). Пришёл мне модуль для ардуины RF 433МГц. (две приблудки одна другой вещает). Собрал, проверил, буковку передаёт.

А теперь вопрос: Господа, подскажите как подобрать/узнать коды которые отправлял отсутствующий пульт?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну, подобрать в принципе возможно...

Собираете стенд, который сначала отправляет очередной код, а потом (например, фотодатчиком) смотрит, включился ли свет.

Если одно измерение будет занимать 1 секукнду и Вам повезет, и код будет 32-разрядным, то через 136 лет при отсутствии сбоев Вы сможете получить список используемых кодов.

tema.koroliov
Offline
Зарегистрирован: 30.10.2016

Ой молодец! Такой остроумный шалобол.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

tema.koroliov пишет:

А теперь вопрос: Господа, подскажите как подобрать/узнать коды которые отправлял отсутствующий пульт?

Без наличия пульта никак, andriano всё правильно сказал - только брутфорсом. Второй вариант - найти аналогичный пульт и считать с него коды.

tema.koroliov
Offline
Зарегистрирован: 30.10.2016

Привет. Спасибо, что хоть ты без стёба говоришь. В целом я понимаю что перебирать можно, но это капец как долго. Я думал может есть у кого опыт? Библиотеки может какие есть? Или какой то список команд. А может кто уже считывал и знает хотя бы примерно как эти команды выглядят.

Сейчас бьюсь не могу врубиться как передавать int через vw_send. Оно принмает только свой формат, это так не приятно.

vovka191ve
Offline
Зарегистрирован: 08.09.2015

tema.koroliov пишет:

Собрал, проверил, буковку передаёт.

Привет! Блин, а подскажи по каким картинкам собирал? 3-й день долблюсь с этой приблудой, никак не могу уловить чертовы сигналы с пульта от люстры)))

Я, конечно, не настаиваю, пытаюсь разобраться... ))) мне б хотя б проверить вообще приемник живой или нет