Помогите с библиотекой RC switch
- Войдите на сайт для отправки комментариев
Вс, 04/11/2018 - 14:57
Всем доброго времени суток, подскажите, есть здесь те кто имел дело с библиотекой RC switch? В общем, нужно мне чтобы ардуино с приемником 433 Мгц выполняло действие по команде с пульта-брелка 433Мгц (здесь это пуск светодиода на 13 пине, в окончательном скетче будет другая). Если написать скетч, чтобы по команде одной кнопки это действие запускалось, а по команде другой кнопки прекращалось, то все получается легко и просто. Мне же нужно чтобы действие запускалось и останавливалось по команде только одной кнопки, для этого я использовал флажки, но нормально скетч не работает. Пытался разобраться в описании библиотеки, но че-то ничего не нашел. 5200552 - это код кнопки.
#include <RCSwitch.h> boolean butt_flagA = 0; boolean buttA; unsigned long last_press; RCSwitch mySwitch = RCSwitch(); void setup() { mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2 pinMode(13, OUTPUT); } void loop() { if (mySwitch.available()){ int value = mySwitch.getReceivedValue(); if ( mySwitch.getReceivedValue() == 5200552) { buttA = 1; } if (buttA == 1 && butt_flagA == 0 && millis() - last_press > 200) { butt_flagA = 1; digitalWrite(13, HIGH); last_press = millis(); } if (buttA == 1 && butt_flagA == 1 && millis() - last_press > 200) { butt_flagA = 0; digitalWrite(13, false); last_press = millis(); } } }
Вставка программного кода в тему/комментарий
Всем доброго времени суток, подскажите, есть здесь те кто имел дело с библиотекой RC switch? В общем, нужно мне чтобы ардуино с приемником 433 Мгц выполняло действие по команде с пульта-брелка 433Мгц (здесь это пуск светодиода на 13 пине, в окончательном скетче будет другая). Если написать скетч, чтобы по команде одной кнопки это действие запускалось, а по команде другой кнопки прекращалось, то все получается легко и просто. Мне же нужно чтобы действие запускалось и останавливалось по команде только одной кнопки, для этого я использовал флажки, но нормально скетч не работает. Пытался разобраться в описании библиотеки, но че-то ничего не нашел. 5200552 - это код кнопки.
Для начала посмотрите в лупе, вообще, что-нибудь принимается?
В мониторе порта начинает появляться число 23208 с периодичностью где-то раз в 1 секунду.
Вообще, проблема данного скетча и заключалась в непонятной мне цикличности, нажимаешь кнопку и вместо того чтобы просто загореться светодтоду на 13 пине он начинает моргать
А теперь:
Кнопки понажимать, соответствия составить и записать, цифирьки и будут ваши команды
У меня вопрос - почему светодиод должен загораться, если по коду следует, что ему полагается моргать?
Вот тут значит глюк, по замыслу, по нажатию на кнопку светодтод должен просто загореться, по следующему нажатию погаснуть, ну и т.д.
Ардуина не может работать по замыслу, она работает по алгоритму. Сейчас он таков, что butt_flagA перекидывается в true/false пока не станет buttA неравным единице. А он никогда таковым не становится - из кода все совершенно очевидно. Никакого глюка нет - как написано, так и работает.
Спасибо за наводку, нифига не ясно так сразу (опыт всего 1 месяц), постараюсь допереть что нужно переписать, чтоб работало как мне нужно
Спасибо за наводку, нифига не ясно так сразу (опыт всего 1 месяц), постараюсь допереть что нужно переписать, чтоб работало как мне нужно
А вот так?:
Спасибо за наводку, нифига не ясно так сразу (опыт всего 1 месяц), постараюсь допереть что нужно переписать, чтоб работало как мне нужно
А теперь на коньячок, loop, он по кругу ходит.