24.04.2018, 17:53 | #71 |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 |
|
24.04.2018, 18:03 | #72 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Все верно
Всегда убирал дребезг конденсатором или программной задержкой |
10.05.2018, 10:33 | #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. |
10.05.2018, 13:36 | #74 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 |
Правильнее будет проверять наличие тока в цепи ТЭНов. Я кстати с нетерпением жду рецептов в курилке.
|
10.05.2018, 15:37 | #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; } } } Цитата:
|
|
11.05.2018, 07:25 | #77 | |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 |
Цитата:
Скейтч почти готов, осталось прикрутить вай фай, чтобы была возможность просматривать с телефона текущую температуру и изменять ее. Но, поскольку я в этом деле тот еще нуб, и за все что я взялся в этот раз - было со мной в первый раз. Отсюда вопрос вот этот wemos d1 r2: https://ru.aliexpress.com/item/Free-...3f5e5297beb863 выглядит как ардуино уно, он разве не вставляется в нее, если нет, то зачем пишут шилд? Второй вопрос, насколько я понял, вай фай esp8266 (вне зависимости от исполнения), это как отдельная ардуино и может управлять устройствами, без наличия ардуино уно, отличие только в количестве аналоговых входов (здесь он один - А0)?, туда так же как в уно, заливается скейтч. Отсюда еще вопрос, если основной скейтч у меня в ардуино уно, то как мне менять значение переменных изменения температуры через вайфай (которые находятся в уно)? Допустим, с отображением текущей температуры через wemos d1 r2 можно разобраться - думаю так же, как и в уно. Реле включить/выключить наверное тоже, нужно подключить выход с wemos d1 r2 к реле паралельно к выходу этого же реле с уно. А вот как менять переменные температуры, находящиеся на плате уно через wemos d1 r2, мне не в домек? Последний раз редактировалось sana555; 11.05.2018 в 10:01. |
|
11.05.2018, 20:15 | #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, которая отображает их на странице (танцы с кодировкой-декодеровкой и тут тоже) На мой взгляд обязательно нужно отображать время последнего полученного от ардуины пакета, чтобы контролировать ее зависание. |
09.11.2018, 16:41 | #79 |
Senior Member
Регистрация: 22.09.2017
Сообщений: 338
Вес репутации: 442 |
Сначала все отработал в протеусе, потом заказал детальки с али, через 2 месяца все пришло. Собрал на соплях, вроде норм. Смоделировал корпус для 3Д печати. Случайно уронил металлический щуп на плату - в итоге две платы, LCD 1602, max 6675 вышли из строя, пришлось еще 2 месяца ждать.. Шли дни, недели, месяцы и вот итог. Осталось заказать лабораторный термометр и откалибровать термопару, и щуп, ну и подключить к духовке. Жгут проводов сделал на 8 штырьковых разъемах(около самого корпуса и около духовки), для удобного демонтажа/монтажа. Использовал два реле, одно для вкл/выкл ноля(пока использовал китайское синее, посмотрю насколько хватит, второе предохранительное подороже). Основную задачу для приготовления колбасы выполняет - три раза меняет температуру, исходя из температуры щупа. Плюс зашил еще 4 программы для других продуктов и простой режим "Быстрый старт" по температуре(если щуп вставлен), либо по времени(если щуп не вставлен)... При выключенном приборе, духовка работает в штатном режиме по своему термостату, никак не касаясь(по совету Tohin)Ну и организовал мониторинг и управление всего происходящего через телефон по wifi(буду из тайланда варить колбасу)..
-- Видок корпуса, конечно оставляет желать лучшего, ну что есть то есть, повлиять на чужой 3Д принтер нет возможности. Можно конечно заморочится и отшкурить, но мне и так сойдет.. Последний раз редактировалось sana555; 09.11.2018 в 17:10. |
10.11.2018, 00:34 | #80 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Симпатично. А приложение сам написал?
|
Здесь присутствуют: 8 (пользователей: 0 , гостей: 8) | |
|
|