433мгц + 2хлопка + отправка радиосигнал на другую ардуино
- Войдите на сайт для отправки комментариев
Пт, 08/04/2016 - 20:39
имеется скетч 433мгц + управление лампой двумя хлопками который замечательно работает
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); int relay7 = 7; //Реле будет тут int analogData = 0; //тут будут храниться данные с АЦП пин 0 int ledstate = 0; //переменная состояния вкл-выкл void setup() { Serial.begin(9600); mySwitch.enableReceive(0); // приемник на pin 2 (DATA) pinMode(relay7, OUTPUT); digitalWrite(relay7, LOW); } void loop() { analogData = analogRead(0); //читаем значение if (analogData > 120) { delay(200); for (int t = 0; t <= 500; t++) { delay(1); //для цикла analogData = analogRead(0); //считываем данные if (analogData > 120) { //сверяем данные для второго хлопка, если он был то меняем состояние лампы с вкл на выкл и наоборот ledstate = !ledstate; //меняем состояние Serial.print("второй хлопок"); analogData = 0; //обнуляем данные break;//выходим из цикла после второго хлопка delay(200); //ЗАЧЕМ?????? } } analogData = 0; } if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == 0) { Serial.print("error code"); // Ошибка приемка кода } else { Serial.print("code good"); // Принял код Serial.print( mySwitch.getReceivedValue() ); } if (mySwitch.getReceivedValue() == 7688384) { // 6133332 - код Включения1 Serial.print("пульт включение"); ledstate = 1; } if (mySwitch.getReceivedValue() == 7688204) { // 6133392 - код выключения1 Serial.print("пульт выключение"); ledstate = 0; } mySwitch.resetAvailable(); } digitalWrite(relay7, ledstate); //включаем выключаем светодиод на 7м пине }
а сейчас хотелось бы чтобы при хлопках отправлялся радиосигнал через радиопередатчик на другую ардуино . Есть скетч который отправляет мои коды включения и выключения на другую ардуино
/* Пример передачи принятой посылки на выключение и включение люстры. */ #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { Serial.begin(9600); // Transmitter is connected to Arduino Pin #10 mySwitch.enableTransmit(10); // Optional set pulse length. // mySwitch.setPulseLength(320); // Optional set protocol (default is 1, will work for most outlets) // mySwitch.setProtocol(2); // Optional set number of transmission repetitions. // mySwitch.setRepeatTransmit(15); } void loop() { /* Same switch as above, but using decimal code */ mySwitch.send(5312960, 24);//код включения лампы delay(5000); mySwitch.send( 5312780, 24);//код выключения лампы delay(5000); }
но вот как его приписать в тот скетч который у меня есть . я так думаю что при хлопках так как их два и при включение и при выключение то и код включения будет посылаться постоянно один и тот же или можно как нибудь сделать чтобы при первых двух хлопках отправился код включения а при вторых двух хлопках отправился код выключения.
Заранее всем спасибо за ответ
Создаем "событие [второй хлопок]" после 25строки:
в этих точках можем отправлять коды вкл/выкл. Где передавать при "событиях" получения кодов с пульта разберетесь?
эх... а в 30 строке delay так и остался висеть. А зачем?
ТС, неужели эта ересь с хлопками ещё где-то актуальна?
просто задумайся, нафига тебе нужно превращать себя в клоуна и исполнять танцы с бубном вокруг лампочки для ея волшебного зажигания?
https://youtu.be/VkoOgLcyaYU
[quote=T.Rook]
Создаем "событие [второй хлопок]" после 25строки:
в этих точках можем отправлять коды вкл/выкл. Где передавать при "событиях" получения кодов с пульта разберетесь?
эх... а в 30 строке delay так и остался висеть. А зачем?
[/quote
Наверное разберусь вечером буду пробовать ну если что спрошу если вы не против
Создаем "событие [второй хлопок]" после 25строки:
в этих точках можем отправлять коды вкл/выкл. Где передавать при "событиях" получения кодов с пульта разберетесь?
эх... а в 30 строке delay так и остался висеть. А зачем?
добрый вечер пробовал по вашим советам собрать скетч и получился вот так
скетч заливается но работает ещё хуже тоесть работает только хлопки а с пульта не работает и соответсвенно не передаёт сигнал на другую ардуино. Может я чтото не так прописал нужен совет.
Вы в 36 и 40 строке не закрыли скобку }.
А потом прибавили зачем- то в конец.
UPD: Это у меня в примере "события" закрывающие "}" оказались в комментариях. Конечно должно быть так:
Так что еще раз аккуратненько добавьте в свой исходный код.
Вы в 40 строке не закрыли скобку }.
А потом прибавили её зачем- то в конец.
UPD: Это у меня в примере "события" закрывающие "}" оказались в комментариях. Конечно должно быть так:
скобку я перенёс еще чтото надо исправить если не сложно исправьте сами и объясните что именно исправили
Вы в 40 строке не закрыли скобку }.
А потом прибавили её зачем- то в конец.
UPD: Это у меня в примере "события" закрывающие "}" оказались в комментариях. Конечно должно быть так:
скобку я перенёс еще чтото надо исправить если не сложно исправьте сами и объясните что именно исправили
Вы в 40 строке не закрыли скобку }.
А потом прибавили её зачем- то в конец.
UPD: Это у меня в примере "события" закрывающие "}" оказались в комментариях. Конечно должно быть так:
скобку я перенёс еще чтото надо исправить если не сложно исправьте сами и объясните что именно исправили
после переноса скобки работают хлопки и работает пульт но сигнал на другую ардуино не передается
Ваш исходный код + событие второго хлопка:
вставлены строки 27-32
после переноса скобки работают хлопки и работает пульт но сигнал на другую ардуино не передается
давайте посмотрим на код.
Вместе с передачей кодов, поставьте вывод в Serial, что бы видеть правильность отработки.
Ваш исходный код + событие второго хлопка:
вставлены строки 27-32
16 строка <strong></strong> даёт ошибку
16 строка <strong></strong> даёт ошибку
убейте её :))
после переноса скобки работают хлопки и работает пульт но сигнал на другую ардуино не передается
давайте посмотрим на код.
Вместе с передачей кодов, поставьте вывод в Serial, что бы видеть правильность отработки.
получился вот такой скетч который принимает хлопки и должен передовать код на другую ардуино
а на второй ардуино стоит скетч который принимает сигнал с другого пульта и должен принимать сигнал с первой ардуино
удалено.
16 строка <strong></strong> даёт ошибку
убейте её :))
убрал эту строку и убрал delay после заливки скетча замигал диод на втором ардуино но на хлопки соотвественно не реагирует надо вписать данные для отправки кода
удалено.
что удалено?
убрал эту строку и убрал delay после заливки скетча замигал диод на втором ардуино но на хлопки соотвественно не реагирует надо вписать данные для отправки кода
так замигал или не реагирует?. От чего замигал? Не понял.
А в 35 и 39 разве не передача вкл/выкл стоит???
Какие коды принимает вторая Ардуинка?
Вы опять забыли
на принимающей стороне?
mySwitch.resetAvailable();
Ctrl+T - очень приятное сочетание в IDE, попробуйте :)
убрал эту строку и убрал delay после заливки скетча замигал диод на втором ардуино но на хлопки соотвественно не реагирует надо вписать данные для отправки кода
так замигал или не реагирует?. От чего замигал? Не понял.
А в 35 и 39 разве не передача вкл/выкл стоит???
нет не реагирует я нечайно на вторую ардуино другой скетч залил вот он и заморгал а вообще я тоже понимаю что должны 35 и 39 передавать сигнал но не перелает почему то просто у меня в скетче который передаёт коды стоят ( 5312960, 24);//код включения лампы и ( 5312780, 24);//код выключения лампы и вот эти цифры после кода 24 и запятую мне надо бы убрать но тогда скетч не компилируется а на второй ардуино если я прописую эти цифры 24 то начинаются глюки с обеими ардуино тоесть диод и на первой и на второй еле горят а на первой бывает загорится и потухнет
я тоже понимаю что должны 35 и 39 передавать сигнал но не перелает почему то просто у меня в скетче который передаёт коды стоят ( 5312960, 24);//код включения лампы и ( 5312780, 24);//код выключения лампы и вот эти цифры после кода 24 и запятую мне надо бы убрать но тогда скетч не компилируется а на второй ардуино если я прописую эти цифры 24 то начинаются глюки с обеими ардуино тоесть диод и на первой и на второй еле горят а на первой бывает загорится и потухнет
Ничего не понял. Я не знаю какие коды и за что у Вас отвечают, тут Вы сами рулите.
1. На ардуино1 (передающей) вместе с передачей кодов, поставьте вывод в Serial, что бы видеть правильность отработки.
2. Какие коды принимает вторая Ардуинка?
3. Вы опять забыли
на принимающей стороне?
mySwitch.resetAvailable();
4. Ctrl+T - очень приятное сочетание в IDE, попробуйте :)
убрал эту строку и убрал delay после заливки скетча замигал диод на втором ардуино но на хлопки соотвественно не реагирует надо вписать данные для отправки кода
так замигал или не реагирует?. От чего замигал? Не понял.
А в 35 и 39 разве не передача вкл/выкл стоит???
Какие коды принимает вторая Ардуинка?
Вы опять забыли
на принимающей стороне?
mySwitch.resetAvailable();
Ctrl+T - очень приятное сочетание в IDE, попробуйте :)
[/quote
всё правильно вставил эту строку получился приёсник вот такой скетч
теперь появилась проблема что при хлонках диоды начинают постояно мигать то первый то второй и на пульты не реагируют проходит это только после повторных хлопков и тгда с пультов уже нормально работает
моргала и перестала теперь вроде всё работает как надо . спасибо за помощь и подскажите что делает Ctrl+T
моргала и перестала теперь вроде всё работает как надо . спасибо за помощь и подскажите что делает Ctrl+T
авто-форматирование кода :)