Теплыми летними вечерами, когда есть свободное время, пилю вот такой вот стандартный для начинающего проектик по мониторингу температуры/влажности/концентрации CO2. После добавления в схему LED-дисплея столкнулся с проблемами в питании, которые теперь стали заметны на глаз. Не думаю, что нужно детально расписывать всю схему - приведу лишь список основных компонентов: Arduino Uno Датчик температуры и влажности DHT22 Датчик CO2 MH-Z19 Передатчик на 433 Mhz 3 одновременно горящих светодиода LCD 1602 Все проблемы, насколько я могу судить, идут от датчика CO2: если я его не подключаю, то схема на глаз работает нормально, но при подключенном датчике LCD-дисплей начинает колбасить на каждом цикле датчика (циклы измерения легко увидеть, т. к. виден свет лазера внутри): меняется яркость дисплея, иногда он вообще перестает что-либо показывать - в общем на лицо явные проблемы с питанием. Я делал замеры мультиметром - отдельно датчик, и отдельно всю остальную схему: Сама схема потребляет максимум 20 мА. Датчик CO2 - в пике 131 мА. Если замерять всю схему вместе с датчиком, то получаем следующие значения: В пике потребление достигает 230 мА. Да - это существенно больше чем 20 + 131 = 151. Не знаю, откуда берутся такие цифры. Для себя я это объяснил тем, что когда LCD начинает колбасить, он потребляет больше чем обычно, т. к. "перезагружается", но это мои домыслы. Также неизвестно, насколько точны мои измерения, т. к. все они базируются исключительно на том, какую максимальную цифру я успел увидеть на дисплее мультиметра. Напряжение между 5V и GND колеблется между 4.93 и 4.21. В самые худшие моменты наблюдал 3.17. Для питания использую блок питания, позаимствованный у роутера - 12V, 1A. Под рукой были 10 конденсаторов на 220 мкФ - вставил от безысходности их все на рельсы питания - стало немного лучше, но все равно нестабильно. Стабильной работы удалось добиться лишь с помощью второй Arduino Uno: Работу по считыванию датчика оставил первой Arduino Uno. Сам датчик запитал от второй Arduino Uno (не забыв про соединение их GND между собой). Добавил один конденсатор на 220 мкФ недалеко от LCD. В такой конфигурации схема стала работать стабильно - на глаз никаких проблем не видно. Но, само собой, для конечного решения она не годится. Подскажите, пожалуйста, в чем именно может быть проблема? Из того, что я вижу в Интернете, 230 мА не должно быть проблемой для Arduino, запитанного от внешнего источника питания. Почему же тогда в моем случае оно вызывает такие проблемы? Или тут все дело в том, постоянные эти 230 мА или скачками, как в моем случае? Слышал, что линейные блоки питания с этим не очень хорошо справляются, но и импульсный тут тоже вроде не должен помочь, т. к. опять-таки слышал, что на входе у Arduino стоит тот же линейный преобразователь. Уверен, что проблема моя не уникальная, поэтому очень хочется узнать, как обычно люди ее решают: есть ли какие-то техники стабилизации питания, разведения (по аналогии с тем, как я сделал со второй Arduino Uno, но только без нее) и т. п.
Подсветка дисплея может и 100 мА кушать, смотря как там сделана схема подсветки + на фото у тебя к питанию еще подключены датчики, светодиоды и что-то еще. Суммарно это и 300 мА может набрать. Но самая большая вероятная причина - плохие соединительные проводки - очень тонкое сечение или окисленные выводы, от малейшей вибрации изменяется сопротивление контакта. Начни с физического отключения вообще всего и добавляй по одному элементу.
Раз у тебя есть мультиметр, им и замеряй как по отдельности так и все вместе сколько потребляет по току. Светодиоды смотря с какими сопротивлениями подключены, могут потреблять от 1мА до 20мА каждый. Датчик СО2 может потреблять до 200мА , вот так и набежит больше 500мА . И тут встанет вопрос, а справляется ли блок питания.? Ну и про "сопли", плохой контакт, уже упоминалось выше, на макетных платах это часто бывает.
Взял другую Arduino, у которой каждый пин дублируется, подсоединился мультиметром к дублирующимся 5V и GND (а не к проводам из макетки) и тут же увидел, что между настоящими 5V и GND напряжение не скачет. Поменял соединительные провода, воткнул в другие дырки на макетке, и все заработало стабильно. Спасибо! По неопытности был уверен, что дело именно в питании, а не в контактах - поэтому даже не пытался их проверять.