Доброго дня!
Много дней бьюсь со схемой, разводил сам, делаю автополивалку на ESP32 для комнатных растений.
Суть загвоздки. Без нагрузки всё работает идеально, регистры переключаются, всё короче чудно. Но как только подключаешь хотя бы один движок - всё, финита. В момент запуска открытый(т.е. низкий. Т.к. транзы P-канальные, низкий уровень=открытый транзистор. Буду далее называть низкий уровень на регистре открытым) разряд регистра закрывается, при этом может самопроизвольно открыться более высокий разряд(а может самый низкий. Или даже возможно ещё какой, не ловил - не знаю). При этом программа на МК продолжает исполняться штатно. Если принудительно постоянно писать в регистр нужное состояние, движки кое-как крутят, но это лютый костыль и вообще не дело. На картинке уже вторая итерация платы, в ней добавлено раздельное питание для силовой и логической части. Т.е. регистр потребляет свои +5В, а исток транзисторов подключён к своим +5. Это вроде как решает проблему, но ровно до того момента, пока я не подключаю питание датчика (датчик влажности почвы, простой, резистивный, питание на все датчики разом открывает ещё один транзистор, подключенный к 0-му разряду регистра) - после этого схема снова начинает чудить. Перебросил питание датчиков с 3.3 на +5(придётся городить делитель для сигнальной линии, но пусть так, чёрт с ним), чудеса более-менее прекращаются. Но всё равно, нет-нет да откроется ненужный разряд. Чую, что где-то порылся какой-то косяк, но найти его не могу.