• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Перестаёт прошиваться и начинает греться esp-wroom-23

Orionssv

New member
Доброго времени суток господа. Нужна ваша помощь. Уже салил (перестали прошиваться и греются чипы даже от питания по USB) две отладочные платы ESP-wroom-23. Во избежания бОльшего количества жертв решил обратиться сюда. В общем собрал на макетке контроллер уровня жидкости в ёмкости по такой схеме
схема.png

Питание от обычного компьютерного БП. Используются +12 и +5 вольт, земля платы и БП соединены. Прошивка по usb. Всё работает, светодиоды загораются, на сервер информация отправляется. Но в какой-то момент плата перестаёт жить. При этом на макетке я до этого ручёнками ни чего не трогал, не менял Просто узнавал об этом каждый раз (оба два раза) пытаясь прошить после мелких изменений в коде. Arduino ide не мог подключится к порту.
GPIO вроде использую те что можно
[IMG]

esp32_pinout.png

#define Redled 23 //7-й Светодиод
#define Yellowled2 22 //6-й Светодиод
#define Yellowled1 21 //5-й Светодиодтчик
#define Greenled4 19 //4-й Светодиод
#define Greenled3 18 //3-й Светодиодтчик
#define Greenled2 5 //2-й Светодиод
#define Greenled1 17 //1-й Светодиод
#define WiFiled 16 //Светодиод подключения к WIFI
pinMode(Redled, OUTPUT);
pinMode(Yellowled2, OUTPUT);
pinMode(Yellowled1, OUTPUT);
pinMode(Greenled4, OUTPUT);
pinMode(Greenled3, OUTPUT);
pinMode(Greenled2, OUTPUT);
pinMode(Greenled1, OUTPUT);
pinMode(WiFiled, OUTPUT);

#define sensor_Redled 36 //7-й датчик
#define sensor_Yellowled2 39 //6-й датчик
#define sensor_Yellowled1 34 //5-й датчик
#define sensor_Greenled4 35 //4-й датчик
#define sensor_Greenled3 32 //3-й датчик
#define sensor_Greenled2 33 //2-й датчик
#define sensor_Greenled1 25 //1-й датчик
#define TestLed 26 // кнопкатест светодиодов
pinMode(sensor_Redled, INPUT_PULLUP);
pinMode(sensor_Yellowled2, INPUT_PULLUP);
pinMode(sensor_Yellowled1, INPUT_PULLUP);
pinMode(sensor_Greenled4, INPUT_PULLUP);
pinMode(sensor_Greenled3, INPUT_PULLUP);
pinMode(sensor_Greenled2, INPUT_PULLUP);
pinMode(sensor_Greenled1, INPUT_PULLUP);
pinMode(TestLed, INPUT_PULLUP);
Представлю любую доп.информацию по теме. Спасибо.
 

nikolz

Well-known member
для начала измерьте потребляемый ток и напряжение на пинах.
У Вас источник на 12 вольт случаем не просаживается на пины ESP?
 

Orionssv

New member
для начала измерьте потребляемый ток и напряжение на пинах.
У Вас источник на 12 вольт случаем не просаживается на пины ESP?
Ток мерять на каких машинах? На всех задействованных?
12 вольт отделены от ног оптопарами. К плате подключённый только +5 на VIN и общий на GND
 

nikolz

Well-known member
Ток мерять на каких машинах? На всех задействованных?
12 вольт отделены от ног оптопарами. К плате подключённый только +5 на VIN и общий на GND
ток измерить по питанию ESP
напряжение посмотреть на всех пинах платы ESP
-------------------
если не секрет зачем 12 вольт?
----------------
я делал измеритель уровня на основе емкости
в качестве датчика изолированный провод
 

Orionssv

New member
ток измерить по питанию ESP
напряжение посмотреть на всех пинах платы ESP
-------------------
если не секрет зачем 12 вольт?
----------------
я делал измеритель уровня на основе емкости
в качестве датчика изолированный провод
12вольт из за удаленности ёмкости от места подключения - опасаюсь падения. Но 12 вольт гальванически изолированы от esp-шки. Они ей не угрожают
 

nikolz

Well-known member
12вольт из за удаленности ёмкости от места подключения - опасаюсь падения. Но 12 вольт гальванически изолированы от esp-шки. Они ей не угрожают
интересно,какой ток у вас от источника 12 вольт ежели вы опасаетесь падения напряжения? Это у Вас не атомный реактор.Верно?
 

Orionssv

New member
интересно,какой ток у вас от источника 12 вольт ежели вы опасаетесь падения напряжения? Это у Вас не атомный реактор.Верно?
Я не замерял. Схему на uln взял в сети с уже готовыми параметрами. Она отлично работает у меня прямо сейчас. Я решил дополнить её esp–шкой, чтобы там были "Блэк Джек и шлюхи" ( сбор информации о тенденции наполняемости, отображение состояния на смартфоне (просто страница в браузере с js и прочими красивостями), алертами в телеграмм). Я полагаю (с радостью ознакомлюсь с опровержением утверждения), что 12 вольт в выходе из строя уже двух плат не виноваты - они гальванически разведены...
Подозрения на чрезмерную нагрузку выходных пинов и на питание через VIN. Но первое - в сети полно примеров где светодиоды вообще без резюков втыкают. Второе - по даташиту на vin стоит крутой преобразователь на 3.3 в с 5-14вольт до 1а по нагрузке
 

CodeNameHawk

Moderator
Команда форума
Второе - по даташиту на vin стоит крутой преобразователь на 3.3 в с 5-14вольт до 1а по нагрузке
Не сильно он и крутой, скорее всего 1а будет тяжеловато без теплоотвода, я у себя, для проверки, ленту светодиодов(ws2812b примерно метр) запитывал от AMS1117, выдержал но через пару секунд нагрелся очень сильно.
Как у вас с нагревом обстоя(т)(ли) дела?
 

Orionssv

New member
Не сильно он и крутой, скорее всего 1а будет тяжеловато без теплоотвода, я у себя, для проверки, ленту светодиодов(ws2812b примерно метр) запитывал от AMS1117, выдержал но через пару секунд нагрелся очень сильно.
Как у вас с нагревом обстоя(т)(ли) дела?
После того как умерла первая плата, я пальцем контролировал температуру второй, когда горели все светодиоды - сам esp наелся чуть чуть ( не намного выше 36гр), остальная рассыпуха вообще не грелась (субъектное утверждение). А вот когда платка перестала отвечать - чип ощутимо горячий был. Неужели плата не может 7 светодиодов потянуть... Я к Атмеге с десяток без резюков цеплял и работала, лень мне было резюки ставить... А тут вроде тепличные условия... Может 300 маловато?
 

nikolz

Well-known member
После того как умерла первая плата, я пальцем контролировал температуру второй, когда горели все светодиоды - сам esp наелся чуть чуть ( не намного выше 36гр), остальная рассыпуха вообще не грелась (субъектное утверждение). А вот когда платка перестала отвечать - чип ощутимо горячий был. Неужели плата не может 7 светодиодов потянуть... Я к Атмеге с десяток без резюков цеплял и работала, лень мне было резюки ставить... А тут вроде тепличные условия... Может 300 маловато?
вы спросили помощи, а теперь рассказываете, что в интернет (т е на заборе) прочитали вместо того чтобы искать причину.
-----------------
один светодиод можете и без резистора повесить
а семь светодиодов кушают в семь раз больше
не факт что при этом вы не перегружаете по току пины.
------------------
измерьте или посчитайте какой ток потребляете по пинам и сравните с документацией
 

nikolz

Well-known member
максимальный ток, потребляемый одной линией GPIO, составляет 12 мА, но рекомендуется при нормальном использовании 6 мА.
у Вас по пину со светодиодом получается примерно 10 ма
Чудес не бывает
 

nikolz

Well-known member
Абсолютный максимальный ток, потребляемый GPIO, составляет 40 мА в соответствии со спецификацией ESP32.
 

Orionssv

New member
максимальный ток, потребляемый одной линией GPIO, составляет 12 мА, но рекомендуется при нормальном использовании 6 мА.
у Вас по пину со светодиодом получается примерно 10 ма
Чудес не бывает
Чудес не бывает - это правда! Значит мне ограничивающие резюки до 550 ом поднять? как раз около половины спилится)). верно?
 

Orionssv

New member
Абсолютный максимальный ток, потребляемый GPIO, составляет 40 мА в соответствии со спецификацией ESP32.
У меня, если считать что 10мА на ногу, в апогее будет 70мА, что явно выше абсолютного максимума... Значит светодиоды убивали мои esp-шки? Может вобще ключи на полевиках сделать для них? Не перебор?))
 

nikolz

Well-known member
У меня, если считать что 10мА на ногу, в апогее будет 70мА, что явно выше абсолютного максимума... Значит светодиоды убивали мои esp-шки? Может вобще ключи на полевиках сделать для них? Не перебор?))
пины ESP имеют 4 режима работы по току 5 ма 10 ма 20 ма и 40 ма. По умолчанию включен режим 20 ма.
но максимальный ток ограничен 40 ма
т е если пины работают по очереди то ток можно сделать и 40 ма
если же они включаются одновременно как у вас , то 8 пинов отдадут не более чем по 5 ма
--------------------
Для того чтобы светодиод светил достаточно 1-5 ма.
Попробуйте просто увеличить резисторы например до 1 ком
----------------
еще можно не изменяя резисторы сделать динамическое свечение
например на интервале 7 мс включать или нет диод в зависимости от кода на 1 мс
В итоге у вас средний ток не превысит 10 ма.
------------------
если яркость недостаточна поставьте дополнительно транзисторы на выходе и включайте хоть прожекторы.
 

Orionssv

New member
пины ESP имеют 4 режима работы по току 5 ма 10 ма 20 ма и 40 ма. По умолчанию включен режим 20 ма.
но максимальный ток ограничен 40 ма
т е если пины работают по очереди то ток можно сделать и 40 ма
если же они включаются одновременно как у вас , то 8 пинов отдадут не более чем по 5 ма
--------------------
Для того чтобы светодиод светил достаточно 1-5 ма.
Попробуйте просто увеличить резисторы например до 1 ком
----------------
еще можно не изменяя резисторы сделать динамическое свечение
например на интервале 7 мс включать или нет диод в зависимости от кода на 1 мс
В итоге у вас средний ток не превысит 10 ма.
------------------
если яркость недостаточна поставьте дополнительно транзисторы на выходе и включайте хоть прожекторы.
Отлично! Это уже конкретное предложение решения моей проблемы! Спасибо! светодиоды имеют чисто информативное назначение, они должны светиться, а не светить))) Даже если светимость будет 60-70% от нормального - уже хлеб. Короче, пробую свою последнюю есп-шку поставить с 1к на светики... Динамическая индикация - это тоже интересно. Но не нагрузит ли это проц, который и так... А чо он собственно делает... Следит за пинами в loop-e да шлёт GET`ы... Заморочусь короче. А пока большое спасибо за совет.
 

nikolz

Well-known member
Отлично! Это уже конкретное предложение решения моей проблемы! Спасибо! светодиоды имеют чисто информативное назначение, они должны светиться, а не светить))) Даже если светимость будет 60-70% от нормального - уже хлеб. Короче, пробую свою последнюю есп-шку поставить с 1к на светики... Динамическая индикация - это тоже интересно. Но не нагрузит ли это проц, который и так... А чо он собственно делает... Следит за пинами в loop-e да шлёт GET`ы... Заморочусь короче. А пока большое спасибо за совет.
следить за пинами вы можете поручить ULP в режиме SLEEP
 

nikolz

Well-known member
для проверки свечения диода просто подкючите его через резистор к 3.3 вольтам и подберите максимальное значение резистора когда свечения вам достаточно
 

nikolz

Well-known member
если не ошибаюсь то у вас определение уровня происходит по замыканию контакта
тогда светодиоды надо совместить с контактами
контакт замыкается - светодиод горит
и в итоге незачем нагружать диодами ESP
 
Сверху Снизу