простое термореле
- Войдите на сайт для отправки комментариев
Чт, 17/11/2016 - 01:12
требуется создать просто ТР на датчике 18B20(но это не принципиально) интересует как правильнее сделать гистерезис по температуре. то есть включение например при 20гр выключение при 10гр. часть кода взял из статьи(не помню какой) но строчки гистерезиса дописал сам. код на данный момент работает. просто охота услышать мнение спецов о возможном неправильном коде. весь текст не пишу. он стандартный . тольки строчки гистерезиса.
if (T<10)digitalWrite(13, LOW); if (T>20) digitalWrite(13, HIGH );
А что Вам собственно нужно? Чьё-то мнение про эти две строчки?
Не, знаю, зачем Вам это, но, пожулйста ...
Код выглядит неаккуратным. Допустим, в строке 1 проверка дала true. У Вас выполняется digitalWrite, а после этого, зачем-то, выполнается проверка в строке 2. Зачем выполнять проверку. которая заведомо ложна? Не то, что бы это приводило к взрыву Чернобыля, но выглядит неаккуратно.
Добавьте else в начало второй строки.
в программировании пока не силен, поэтому и хочу услышать что скажет народ. можно легко скопировать чужое готовое не задумываясь что там. но вряд ли .то пойдет на пользу. сам вижу что второй if как то не к месту но по другому не придумал. а что даст добавление else кроме красоты?
То, что если первая проверка оказалось истной (т.е. T<10), программа не будет выполнять вторую проверку (нахрена проверять T>20, если Т итак уже меньше 10?)
понял. хотя по моим представлениям так и получается гистерезис
Так, так и получается, но зачем переменную, которая с прошлого сравнения не поменялась с чем-то противоположным сравнивать? ВТорое сравнение сработае тогда, когда первое окажется ложным. А когда первое истина нафига сравнивать?
в голове это понимаю а как в коде выразить пока не знаю. как было бы грамотнее написать? что код был не громоздким?
в голове это понимаю а как в коде выразить пока не знаю. как было бы грамотнее написать? что код был не громоздким?
Читайте последнию строчку в #2 до тех пор, пока не наступит просветление :)
добавление else приведет к проверке обеих if? а без else возможна некорректная работа термореле?
добавление else приведет к проверке обеих if? а без else возможна некорректная работа термореле?
Тогда читайте вот это, опять же до полного просветления