docs: исправить утверждение о поведении реле при загрузке
На собранном приборе оба реле кратковременно моргают при перезагрузке. README и MANUAL утверждали обратное - что реле при загрузке молчат. Это было предсказание из рассуждения об уровнях на пинах, а не наблюдение, и оно не подтвердилось. Формулировки исправлены. Вероятный механизм описан честно, как вероятный: оба выхода сидят на служебных пинах (GPIO2 это UART1 TX, GPIO0 - пин выбора режима загрузки), и пока setup() не выполнился, уровнем управляет не прошивка. Осциллографом не проверяли, о чём в тексте сказано. Само решение остаётся верным: альтернативный D8 подтянут к LOW и держал бы реле уверенно включённым всю загрузку вместо короткого моргания. Пользователь признал поведение некритичным, прошивка не менялась. В документации указано, чем лечится, если однажды станет мешать. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -54,7 +54,7 @@ Wemos D1 Mini (ESP8266). Питание 5 В по microUSB или 3.3 В на п
|
||||
|
||||
Для реле active-LOW безопасное состояние — пин в `HIGH`. Значит выход обязан
|
||||
сидеть на пине, который держит `HIGH` **всю загрузку**, пока `setup()` ещё не
|
||||
выполнился, иначе реле щёлкнет ложной аварией при каждом включении питания.
|
||||
выполнился, иначе реле останется включённым на всё время старта.
|
||||
|
||||
| Пин | GPIO | Уровень при загрузке | Реле active-LOW при загрузке |
|
||||
|---|---|---|---|
|
||||
@@ -78,12 +78,42 @@ Wemos D1 Mini (ESP8266). Питание 5 В по microUSB или 3.3 В на п
|
||||
void setRelay(int pin, bool on) { digitalWrite(pin, on ? LOW : HIGH); }
|
||||
```
|
||||
|
||||
#### Что происходит при перезагрузке на самом деле
|
||||
|
||||
Проверено на собранном приборе: **при перезагрузке оба реле кратковременно
|
||||
моргают.** Признано некритичным и оставлено как есть.
|
||||
|
||||
Ранее в этом разделе утверждалось, что реле при загрузке молчат — это оказалось
|
||||
неверно, и формулировка исправлена.
|
||||
|
||||
Наиболее вероятный механизм: оба выхода неизбежно сидят на служебных пинах.
|
||||
`GPIO2` (`D4`) — это ещё и `UART1 TX`, и на нём во время загрузки появляется
|
||||
служебный вывод; `GPIO0` (`D3`) — пин выбора режима загрузки, который дёргается
|
||||
схемой сброса. Пока `setup()` не выполнился, уровнем на них управляет не
|
||||
прошивка. Точную причину не измеряли: осциллографа в проверке не было.
|
||||
|
||||
Часть морганий может приходиться на светодиод релейного модуля, а не на
|
||||
фактическое переключение контакта: короткий импульс успевает зажечь индикатор,
|
||||
но не перебросить якорь. Различить можно тестером на контактах реле, если это
|
||||
когда-нибудь станет важно.
|
||||
|
||||
**Почему решение всё равно верное.** Альтернатива — `D8` — не улучшила бы
|
||||
ситуацию, а ухудшила: он подтянут к `LOW`, и реле было бы уверенно **включено
|
||||
всю загрузку**, а не моргнуло бы. Кратковременное моргание предпочтительнее
|
||||
устойчивого ложного сигнала на несколько секунд.
|
||||
|
||||
**Если моргание когда-нибудь станет проблемой** (например, сирена успевает
|
||||
пискнуть): ставится RC-цепочка на вход релейного модуля, чтобы короткие импульсы
|
||||
не проходили, либо модуль с триггером Шмитта на входе. Прошивку менять не
|
||||
потребуется.
|
||||
|
||||
### 2.4 Прочие особенности ESP8266
|
||||
|
||||
* `D4` (GPIO2) — встроенный светодиод платы, тоже активен от `LOW`. Реле
|
||||
«Резерв» получает бесплатную индикацию на плате.
|
||||
* `D3` (GPIO0) — пин выбора режима загрузки. Схема автосброса USB дёргает его
|
||||
вниз при заливке скетча, поэтому реле «Авария» щёлкает при каждой прошивке.
|
||||
Кроме того, оба реле кратковременно моргают при любой перезагрузке (см. 2.3).
|
||||
Косметика, но пугает.
|
||||
* `A0` — **только аналоговый вход** (0–3.2 В, без внутренней подтяжки). Ни
|
||||
цифровым выходом, ни входом с подтяжкой быть не может, поэтому в бюджет
|
||||
|
||||
Reference in New Issue
Block a user