фоторезистор + 433мгц
- Войдите на сайт для отправки комментариев
Вс, 25/09/2016 - 15:08
доброго всем дня столкнулся с маленькой проблеммой по слиянию двух скетчей. есть скетч для 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() { 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() == 5312960) { // - код Включения1 digitalWrite(relay7, HIGH); } if (mySwitch.getReceivedValue() == 5312780) { // - код выключения1 digitalWrite(relay7, LOW); } mySwitch.resetAvailable(); } }
и есть скетч для фоторезистора
const int pinPhoto = A0; const int led = 10; int raw = 0; void setup() { pinMode( pinPhoto, INPUT ); pinMode( led, OUTPUT ); } void loop() { raw = analogRead( pinPhoto ); if( raw < 500) digitalWrite( led, HIGH ); else digitalWrite( led, LOW ); delay(200); }
я его объединил
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); int relay = 10; //Реле будет тут int analogData=0; //тут будут храниться данные с АЦП пин 0 int ledstate=0; //переменная состояния вкл-выкл const int pinPhoto = A0; int raw = 0; void setup() { Serial.begin(9600); mySwitch.enableReceive(0); // приемник на pin 2 (DATA) pinMode( pinPhoto, INPUT ); pinMode(relay, OUTPUT); digitalWrite(relay, HIGH); } void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == 0) { Serial.print("error code"); // Ошибка приемка кода } else { Serial.print("code good"); // Принял код Serial.print( mySwitch.getReceivedValue() ); { raw = analogRead( pinPhoto ); if( raw < 700) digitalWrite( relay, LOW ); else digitalWrite( relay, HIGH ); } } if (mySwitch.getReceivedValue() == 5312960) { //- код Включения1 digitalWrite(relay, HIGH); } if (mySwitch.getReceivedValue() == 5312780) { // - код выключения1 digitalWrite(relay, LOW); } mySwitch.resetAvailable(); } }
скомпилировалось без ошибок но он не работает тоесть 433 работает а вот фоторезистор не работает от сюда и вопрос где и что я не дописал.
заранее спасибо всем
не правильно вставил объудунённый скетч а вот правильный но он не работает
Уберите фигурные скобки в строках 30, 38. А вообще, похоже Вы притулили код фоторезистора не туда. Объясните подробно, как должна работать Ваша программа?
ПС: Похоже и у вас такая проблема, если я конечно не ошибаюсь.
скобки убрал не помогло попробовал 4 строки в void loop() перенести в самый низ получилось вот так
не помогло всё равно 433 работает а фотик нет а вот попробовал перенести эти 4 строки вверх вот так
стало наооборот 433 не работает а вот фоторезистор заработал вот я и думаю куда вставить эти строуи чтоб они друг другу не мешали
ПС: Похоже и у вас такая проблема, если я конечно не ошибаюсь.
анекдот хороший и с юмором хорошо но вот мою проблемку это не решает прошу помочь а не анекдоты расказывать а вообще спасибо
Объясните подробно, как должна работать Ваша программа?
должно срабатывать реле при данных с фоторезистора но при неоходимости чтоб я сам мог в любой момент включит или выключить с пульта 433мгц
анекдот хороший и с юмором хорошо но вот мою проблемку это не решает прошу помочь а не анекдоты расказывать а вообще спасибо
Все анекдоты идут из жизни. Но кто бы мог подумать, что вы умудрились попасть в ситуацию еще смешнее. Во первых вы просите помочь в том, но внятно не рассказываете в чем. Банально не даете алгоритм,который должна делать ваша программа.
А теперь по программе. Как вариант воспльзуйтесь такой структурой.
Один поток работает на фотоприемник и реле , а второй на радиоприем и отключение самого реле.
анекдот хороший и с юмором хорошо но вот мою проблемку это не решает прошу помочь а не анекдоты расказывать а вообще спасибо
Все анекдоты идут из жизни. Но кто бы мог подумать, что вы умудрились попасть в ситуацию еще смешнее. Во первых вы просите помочь в том, но внятно не рассказываете в чем. Банально не даете алгоритм,который должна делать ваша программа.
А теперь по программе. Как вариант воспльзуйтесь такой структурой.
Один поток работает на фотоприемник и реле , а второй на радиоприем и отключение самого реле.
[/quote
алгоритм прост я уже написал но напишу ещё раз обычный уличный фасад включается с фоторезистора а принеобходимости также и с пульта и также выключается с пульта а если не выключили то утром сам выключается. а теперь по вашей подсказке честно сказать я не понял что в одном скетче будет несколько
void
setup и несколько
void
loop2 я думал такой скет ч вообще не работает или что то я не так понял если можно поподробнее спримерами
artemon25, тебе прерывания и RTOS скоро предложат...
Попробуй так:
ошибка выходит 'FALSE' was not declared in this scope
мелкими буквами напиши true false
мелкими буквами напиши true false
спасибо всё заработало . хорошие советы всегда бьют в точку
artemon25, тебе прерывания и RTOS скоро предложат...
Основная проблема новичков, не придумать алгоритм, а совместить разные скетчи. Так что я переписал вашу программу в виде 2 вычислительных процессов. Вдруг ТС захочется добавить еще один скетч и что,опять будет продолжать терроризировать форум.