Два условия - одна релюшка
- Войдите на сайт для отправки комментариев
Втр, 26/02/2013 - 17:51
Друзья. Есть релюшка, которая включается по заданному условию (показания датчика). Как организовать код, чтобы можно было еще по сериал соединению вкл/отключать? Например, релюшка включилась при температуре 15 градусов. Но возникла необходимость выключить принудительно. Как сделать два условия?
Ну так вы покажите код.
Да собственно и кода-то пока нет из-за недопонимания. Вот стандартный. Т.е. если считываемое значение аналогового пина меньше 400, то релюшка включится, больше - выключится. При значении меньше 400, необходима возможность отключения реле путём посылки байта в порт, а в else наоборот включения.
В монитор отправляете 1 или 0.
Максим, благодарствую. Сейчас к сожалению не проверю, завтра с утра отпишусь.
С меня стакан)
В монитор отправляете 1 или 0.
Нет, такое решение, я думаю, не удовлетворит топикстартера, ведь для того, чтобы релюшка срабатывала при переходе через порог в ту или иную сторону, придется каким-то образом устанавливать управляющий бит в "правильное" состояние. А как его узнать, не имея информации от датчика? Мерлина привлекать?
Решением может быть управляющий сигнал, имеющий три состояния:
0 - принудительное выключение реле
1 - принудительное включение реле
ну и третье состояние ("2"?), когда Мерлин не колдует и реле работает в соответствии с логикой обработки аналогового сигнала.
То есть, вместо двух if-блоков напрашивается вложенный "трехэтажный" if:
а кто такой Мерлин? :)
Ну как же - Мерлин это же такой Мерлин!
Нет, такое решение, я думаю, не удовлетворит топикстартера, ведь для того, чтобы релюшка срабатывала при переходе через порог в ту или иную сторону, придется каким-то образом устанавливать управляющий бит в "правильное" состояние. А как его узнать, не имея информации от датчика? Мерлина привлекать?
О чем вы?
Оценивал структуру, не вглядываясь в детали.
Пригляделся повнимательнее - увидел дополнительный триггер. Таки да - работать будет, однако подход к решению несколько необычный: подчиненное по логике поставленной задачи условие (val) манипулирует основным условием (state). Получается прямо по поговорке "хвост виляет собакой".
Возможно, самое компактное по ресурсам решение, но может приводить к проблемам при последующем разрастании программы. Как минимум необходимо выносить в отдельную функцию.
итак, всё арбайтен)
задача усложнилась. два датчика, два реле.
опять мозг взорвался)
я так понимаю, что для включения 1-го реле, можно послать любой символ отличный от нуля.
как теперь вторую включать?
Ну так код покажите...
Подключено два датчика - дхт11 и дс18б20
В общем покажу на предыдущем примере
В монитор пишите 10, 11, 20, 21
23 строчка не понятна, что она делает?
Интересует вот такой вопрос в условиях : как правильно из двух вариантов описать цифровые переменные , что бы условие не пропустило значение 300(первая часть условия) и значение 30.00(вторая часть условия)
Вариант 1.
if(hot>0&&hot<300&&tempS1>26.00&&tempS1<30.00)
xxxxxxxxxxxxxxxxxxxx
if(hot>301&&hot<500&&tempS1>30.01&&tempS1<40.00)
xxxxxxxxxxxxxxxxxxx
Вариант 2.
if(hot>=0&&hot<=300&&tempS1>=26.00&&tempS1<=30.00)
xxxxxxxxxxxxxxxxxxxxxxx
if(hot>300&&hot<500&&tempS1>30.00&&tempS1<40.00)
xxxxxxxxxxxxxxxxxxxxxxxxx
Я больше склоняюсь ко второму варианту , но боюсь ошибиться.
Друзья, что б тему не создавать новую, подскажите. Опять этот сериал)
Как отделить друг от друга получение данных разных типов на ардуине, например, тут надо принимать char:
и в этом же скетче принимать и int. Причём думал сделать if(Serial.available() > 2) для int, т.к. там трёхзначное число, но что-то не катит.
В первом случае принимается символ 'H', 'T', 'C', а где int там 234, 450 и т.д.
и еще, почему при посылке в порт числа 340 к примеру или 739 выводится каждая цифра в столбик...
число 340 выглядет так:
с int'ом разобрался, оказывается есть Serial.parseInt()
первый вопрос в силе
UPD. parseInt() работает туго, обработка числа около секунды происходит...
первый вопрос в силе
А вы их пронумеровали? С какого из ваших сообщений необходимо начинать отсчет? С самого первого или с шестнадцатого?
Вполне может так случиться, что ваша стройная (но скрытая от посторонних глаз) нумерация сильно отличается от той, что рождается, к примеру, в моем воспаленном мозгу. Так как же нам прийти к общему знаменателю?
to step962
вопрос снят. победил вроде)
типы данных таки)
www.algofinder.com
Great website for those, who are interested in mathematics and informatics.
The website contains efficient algorithms, in the field of combinatorics, route optimization and prime numbers. To run these programs you will need only the C compiler. The build-up of these programs is simple, quick and elegant.