![]() |
![]() |
#71 |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#72 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Все верно
Всегда убирал дребезг конденсатором ![]() |
![]() |
![]() |
![]() |
#73 |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Хочу сделать сигнализатор, в случае залипания реле. Реле подключено к аналоговому выходу. Две переменные, одна читает аналоговое значение на выходе, а другая цифровое. Если аналоговое значение больше нуля (цепь замкнута), и цифровое ноль (значит был подан сигнал на выключение digitalWrite(sNull, LOW); ), то срабатывает сигнализатор. Правильная логика?:
Код:
int sRelayOn = analogRead(sNull); int sRelayOnDig = digitalRead(sNull); if (sRelayOn > 0 && sRelayOnDig == 0){ tone(sSpeaker, 500, 500); //пищалка digitalWrite(sFuse, LOW); //отключаем предохранительное реле } ![]() Последний раз редактировалось sana555; 10.05.2018 в 10:49. |
![]() |
![]() |
![]() |
#74 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Правильнее будет проверять наличие тока в цепи ТЭНов. Я кстати с нетерпением жду рецептов в курилке.
|
![]() |
![]() |
![]() |
#75 | |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Вы имеете ввиду поставить оптопару? Просто один цифровой вход остался..)
А так пойдет? Т.е., если температура в духовке будет выше регулировочной+10гр. плюс аналоговый выход будет равен 0(LOW), тогда далее сработает проверка: повышается ли температура далее в течении 10 секунд, и если да (принимаем что реле залипло и тэн продолжает греть), то код отрабатывает пищалку и предохранительное реле(при наличии): Код HTML:
float sTempD_Up; void loop() { int sRelayOn = digitalRead(sNull); if (sTempD >= ( sTempRegD + 10 ) && sRelayOn == 0){ if (millis() - timing6 > 10000){ timing6 = millis(); if (sTempD > sTempD_Up && sTempD_Up > 0){ tone(sSpeaker, 500, 500); //пищалка digitalWrite(sFuse, LOW); //отключаем предохранительное реле } sTempD_Up = sTempD; } } } Цитата:
![]() |
|
![]() |
![]() |
![]() |
#77 | |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
![]() Скейтч почти готов, осталось прикрутить вай фай, чтобы была возможность просматривать с телефона текущую температуру и изменять ее. Но, поскольку я в этом деле тот еще нуб, и за все что я взялся в этот раз - было со мной в первый раз ![]() выглядит как ардуино уно, он разве не вставляется в нее, если нет, то зачем пишут шилд? Второй вопрос, насколько я понял, вай фай esp8266 (вне зависимости от исполнения), это как отдельная ардуино и может управлять устройствами, без наличия ардуино уно, отличие только в количестве аналоговых входов (здесь он один - А0)?, туда так же как в уно, заливается скейтч. Отсюда еще вопрос, если основной скейтч у меня в ардуино уно, то как мне менять значение переменных изменения температуры через вайфай (которые находятся в уно)? Допустим, с отображением текущей температуры через wemos d1 r2 можно разобраться - думаю так же, как и в уно. Реле включить/выключить наверное тоже, нужно подключить выход с wemos d1 r2 к реле паралельно к выходу этого же реле с уно. А вот как менять переменные температуры, находящиеся на плате уно через wemos d1 r2, мне не в домек? ![]() Последний раз редактировалось sana555; 11.05.2018 в 10:01. |
|
![]() |
![]() |
![]() |
#78 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
ИМХО нужно курить мануалы по Serial для ардуины и esp8266. В моей голове это происходит так:
1. на ESP создается примитивный вею сервер, который содержит настройки и текущее сосотояние. 2. После выбора всех необходимых параметров и нажатия кнопки "запуск" ESP шлет все эти данные в Serial на ардуину (например строку "temp1=20time1=30&temp2=50&time2=80" ). 3. Ардуина видит кучу байтов, скорее всего в виде: 00740065006d00700031003d0032003000740069 006d00650031003d00330030002600740065006d 00700032003d00350030002600740069006d0065 0032003d00380030 Декодирует это дело, и запускает программу. 4. После запуска ардуина, раз в 5 секунд например, отсылает данные на ESP, которая отображает их на странице (танцы с кодировкой-декодеровкой и тут тоже) На мой взгляд обязательно нужно отображать время последнего полученного от ардуины пакета, чтобы контролировать ее зависание. |
![]() |
![]() |
![]() |
#79 |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Сначала все отработал в протеусе, потом заказал детальки с али, через 2 месяца все пришло. Собрал на соплях, вроде норм. Смоделировал корпус для 3Д печати. Случайно уронил металлический щуп на плату - в итоге две платы, LCD 1602, max 6675 вышли из строя, пришлось еще 2 месяца ждать..
![]() ![]() -- Видок корпуса, конечно оставляет желать лучшего, ну что есть то есть, повлиять на чужой 3Д принтер нет возможности. Можно конечно заморочится и отшкурить, но мне и так сойдет.. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Последний раз редактировалось sana555; 09.11.2018 в 17:10. |
![]() |
![]() |
![]() |
#80 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Симпатично. А приложение сам написал?
|
![]() |
![]() |
![]() |
Здесь присутствуют: 6 (пользователей: 0 , гостей: 6) | |
|
|