Питание Arduino

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Не могу победить. Где-то нужен фильтр, конденсатор или что-то в этом духе...

Дано: проект на Arduino, к нему подключено 2 датчика на I2C шине, реле, сервоприводы, энкодер и дисплей LCD2004 тоже на i2c.

При старте включается дисплей на пару секунд и тут же гаснет. Дальше программа работает идеально: при нажатии на энкодер - включается, читает значения с датчиков, двигает сервами...

Но это при подаче питания с USB ноутбука. При питании тем же кабелем от USB-зарядника на 1А загорается экран и Ардуино виснет. Наатие на кнопку перезагрузке приводит к нормальной работе.

При питании от 2-амперного блока питания ситуация та же. Но если подключить одновременно блок питания и USB-зарядник, блок питания воткнуть в сеть, а зарядник - нет, то в большинстве случаев стартует нормально.

Вот и вопрос: что не хватает Ардуине и, если дело вдруг в программе (может, при инициализации дисплея что-то происходит), можно ли перезагрузить плату программно?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

andreykrasnodar пишет:

Вот и вопрос: что не хватает Ардуине и, если дело вдруг в программе (может, при инициализации дисплея что-то происходит), можно ли перезагрузить плату программно?

Универсальный ответ:  ХЗ

Morroc
Offline
Зарегистрирован: 24.10.2016

Отключить реле, сервоприводы, проверить. Подключить обратно реле или сервоприводы, определить что из этого мешает. Дешевое быстрое решение - диод в цепь +, после него ~2200 мкФ и сюда подключена ардуина, остальное запитывается до диода. Ну как вы просили... конденсатор и всякое такое. Проверьте как подключены питание и земля ко всем устройствам, грубо говоря все севроприводы и реле (+ его силовой транзистор) должны быть подключены одними проводами к БП, а ардуино и всякая мелочь отдельными другими.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Morroc пишет:

Отключить реле, сервоприводы, проверить. Подключить обратно реле или сервоприводы, определить что из этого мешает. 

Проверил. Ничего не мешает. То есть, дело либо в шине I2C (там 2 датчика и экран), либо в самом питании (есть опасение, что блок не сразу даёт нужную мощность, а "раскачивается" несколько десятых секунд, в результате чего ардуино виснет).

Отключать I2C не могу, т.к. без экрана не пойму, работает ли вообще программа.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Возможно, дело в инициализации LCD дисплея. А есть ли возможность отследить инициализацию в Setup и перезагрузить программно arduino в случае ошибки?

SLKH
Offline
Зарегистрирован: 17.08.2015

Morroc пишет:

Отключить реле, сервоприводы, проверить. Подключить обратно реле или сервоприводы, определить что из этого мешает. Дешевое быстрое решение - диод в цепь +, после него ~2200 мкФ и сюда подключена ардуина, остальное запитывается до диода. Ну как вы просили... конденсатор и всякое такое. Проверьте как подключены питание и земля ко всем устройствам, грубо говоря все севроприводы и реле (+ его силовой транзистор) должны быть подключены одними проводами к БП, а ардуино и всякая мелочь отдельными другими.

СтОит ли что-то обсуждать без принципиальной схемы? Может быть что угодно наворочено. И в скетче - тоже.

 

Morroc
Offline
Зарегистрирован: 24.10.2016

Ну а вдруг ? )

I2C подтянуты к + резисторами ? Без работы с датчиками попробуйте, может просто дисплей глючный, I2C его родной или какой то отдельный модуль ?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andreykrasnodar пишет:

Вот и вопрос: что не хватает Ардуине 

Вот и ответ. Чего не хватает ардуине - ХЗ, а данному посту не хватает схем и фото всех опробованных вариантов подключения с описание как в каком случае себя вело и скетча.

SLKH
Offline
Зарегистрирован: 17.08.2015

Morroc пишет:

Ну а вдруг ? )

Если было бы "вдруг" - у ТС бы всё работало.  

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

ЕвгенийП пишет:

andreykrasnodar пишет:

Вот и вопрос: что не хватает Ардуине 

Вот и ответ. Чего не хватает ардуине - ХЗ, а данному посту не хватает схем и фото всех опробованных вариантов подключения с описание как в каком случае себя вело и скетча.

Схема до смешного простая

за маленьким исключением - к ножкам А4 и А5 через резисторы 10 ком подтянута логическая единица.

Повторюсь, вдруг кто не увидел: при включении блока питания в розетку программа чаще всего не стартует, но при перезагрузке кнопкой 100% стартует.

genia1991
Offline
Зарегистрирован: 25.12.2019

andreykrasnodar пишет:

ЕвгенийП пишет:

andreykrasnodar пишет:

Вот и вопрос: что не хватает Ардуине 

Вот и ответ. Чего не хватает ардуине - ХЗ, а данному посту не хватает схем и фото всех опробованных вариантов подключения с описание как в каком случае себя вело и скетча.

при включении блока питания в розетку программа чаще всего не стартует, но при перезагрузке кнопкой 100% стартует.

а резисторы на 10к зачем нужны на пинах i2c?

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andreykrasnodar пишет:

Схема до смешного простая

А после смешного на ней нет того самого питания из-за которого вообще весь сыр-бор. Вас просили ВАШУ схему, а не левое картинко из Интернета, которое Вы где-то нашли.

Если Вас устраивают левые картинки, то могу Вам посоветовать почитать вот здесь. Там скорее всего  нет решения Вашей проблемы, это я просто ссылку в Интернете нашёл.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

genia1991 пишет:

а резисторы на 10к зачем нужны на пинах i2c?

Иначе устройство не будет знать где 1, а где 0.

Но вы натолкнули на одну мысль: а может не 10 ком, а 5, например, нужно...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andreykrasnodar пишет:

Но вы натолкнули на одну мысль: а может не 10 ком, а 5, например, нужно...

Давайте я Вас натолкну на ещё одну: а может, даташит почитать? Там даже формула есть по которой считают сколько нужно!

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

ЕвгенийП, я и так понял, что решения или дельного совета от вас не дождёшься даже если на схеме нарисовать блок питания, подключённый к + и -

Такова ваша суть. Спасибо за участие и попрошу больше в этой теме не писать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Спасибо за разъяснение моей сути и попрошу больше не указывать где мне писать, а где - нет. Я уже большой мальчик - сам разберусь.

И запомните, если Вам лень нарисовать схему для решения СВОЕЙ проблемы, не надейтесь, что кому-то будет не лень угадывать что там за схема для решения ЧУЖОЙ проблемы.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Morroc пишет:

Проверьте как подключены питание и земля ко всем устройствам, грубо говоря все севроприводы и реле (+ его силовой транзистор) должны быть подключены одними проводами к БП, а ардуино и всякая мелочь отдельными другими.

А вот это я упустил, каюсь. У меня всё подключено в одну точку (эта точка в 3 см от бп и в нескольких мм от ардуино) и я, честно говоря, не понимаю разницы.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

andreykrasnodar пишет:

не понимаю разницы.

Если бы понимал - темы этой не было бы. Хочешь понять - читай книжки. 

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

BOOM пишет:

andreykrasnodar пишет:

не понимаю разницы.

Если бы понимал - темы этой не было бы. Хочешь понять - читай книжки. 

Это точно. Я новичок в этом, понятия не имел, что с питанием могут возникнуть проблемы. Если можете, поделитесь информацией.

Нашёл ещё совет (но это именно от помех) ставить параллельно электролитическому конденсатору на входе питания керамический на 0.1-1 uF. Смысл, опять-таки, мне непонятен. Разве что помню из курса физики, что ёмкость просуммируется, но это же получится добавление к камазу щебня ещё ведёрка, а значит, смысл там какой-то другой.

И вот ещё подумалось: а что будет, если подключить ардуино к 5-вольтовому блоку через VIN и GND, а модули питать через GND и +5V

nik182
Offline
Зарегистрирован: 04.05.2015

А что тут понимать? Любые провода имеют сопротивление. По закону ома, при протекании по ним тока на них есть падение напряжения. Соответственно напряжение у потребителя всегда меньше, чем у источника питания. Чем больше тока, тем больше падение. Для цифровой техники это особенно актуально, потому что цифровые импульсы живут по законам высокочастотного перемещения тока - для них сопротивление проводов намного выше, чем для постоянного. Поэтому если все потребители тока живут на одном проводочке от блока питания, то в точке, где проводок разделяется, напряжение прыгает при всех изменениях потребления отдельными элементами. Для цифровой техники это может приводить к ложным сигналам. Поэтому делят провода питания - для силовых и сигнальных цепей и ставят фильтры.  

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

nik182 пишет:

А что тут понимать? Любые провода имеют сопротивление. По закону ома, при протекании по ним тока на них есть падение напряжения. Соответственно напряжение у потребителя всегда меньше, чем у источника питания. Чем больше тока, тем больше падение. Для цифровой техники это особенно актуально, потому что цифровые импульсы живут по законам высокочастотного перемещения тока - для них сопротивление проводов намного выше, чем для постоянного. Поэтому если все потребители тока живут на одном проводочке от блока питания, то в точке, где проводок разделяется, напряжение прыгает при всех изменениях потребления отдельными элементами. Для цифровой техники это может приводить к ложным сигналам. Поэтому делят провода питания - для силовых и сигнальных цепей и ставят фильтры.  

Не знал. По моей логике сопротивлением провода 0.25 мм2 длиной 3см можно пренебречь при таких потребителях как ардуино и lcd дисплей.

Попробовал отключить подсветку на дисплее - проблема не решена, ардуино будто вообще не читает код "прошивки".

На предстоящей неделе перепробую все предложенные в теме методы. Всем спасибо.

И всё же я хотел бы понять принципиальную разницу между стартом Ардуино при подаче питания и стартом после перезагрузки.

Morroc
Offline
Зарегистрирован: 24.10.2016

andreykrasnodar пишет:

Не знал. По моей логике сопротивлением провода 0.25 мм2 длиной 3см можно пренебречь при таких потребителях как ардуино и lcd дисплей.

При таких да. Оставьте один дисплей и i2c расширитель, с ними проблем с проводами не будет, если глючит и так - это проблема со скетчем, библиотекой или железом.

Конденсаторы разной емкости параллелят т.к. у них индуктивность/сопротивление на разных частотах разное, цифровые схемы порождают "иголки" по питанию (на осциллографе так выглядят при медленной развертке), электролиты в сотни мкФ их сгладить не способны из за своей конструкции, а вот керамика 0,1 мкФ вполне и на узкую "иглу" заряда такого конденсатора хватает, всякие моторчики или реле тоже могут вызывать броски тока и короткие просадки напряжения. Вообще увешать схему конденсаторами  в точках питания модулей неплохая идея (особенно сервоприводов, драйверов моторов, на ключ реле), хуже точно не будет.

Осциллографа нет ? Встать бы на питание и посмотреть, а то напряжение то может и нормальное, а как серва повернуться захочет - хренак и 0.5 вольта нет на долю секунды, видел такое.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Morroc пишет:

andreykrasnodar пишет:

Не знал. По моей логике сопротивлением провода 0.25 мм2 длиной 3см можно пренебречь при таких потребителях как ардуино и lcd дисплей.

При таких да. Оставьте один дисплей и i2c расширитель, с ними проблем с проводами не будет, если глючит и так - это проблема со скетчем, библиотекой или железом.

Конденсаторы разной емкости параллелят т.к. у них индуктивность/сопротивление на разных частотах разное, цифровые схемы порождают "иголки" по питанию (на осциллографе так выглядят при медленной развертке), электролиты в сотни мкФ их сгладить не способны из за своей конструкции, а вот керамика 0,1 мкФ вполне и на узкую "иглу" заряда такого конденсатора хватает, всякие моторчики или реле тоже могут вызывать броски тока и короткие просадки напряжения. Вообще увешать схему конденсаторами  в точках питания модулей неплохая идея (особенно сервоприводов, драйверов моторов, на ключ реле), хуже точно не будет.

Осциллографа нет ? Встать бы на питание и посмотреть, а то напряжение то может и нормальное, а как серва повернуться захочет - хренак и 0.5 вольта нет на долю секунды, видел такое.

Спасибо за разъяснение по конденсаторам. Думаю, именно такой стоит в телефонном заряднике, раз с ним проект запускается. Осцилографа нет. Но не сервомотор уменьшает напряжение - он сейчас отключён, да и в целом, когда серво двигается, нет проблем с работой программы.

SLKH
Offline
Зарегистрирован: 17.08.2015

andreykrasnodar пишет:

 

Это точно. Я новичок в этом, понятия не имел, что с питанием могут возникнуть проблемы. Если можете, поделитесь информацией.

Делюсь: причина глюков по меньшей мере в  95% случаев - что-то неладно с питанием.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

100% дело в блоке питания. Пробую запустить от мощной usb-зарядки, стартует легко и непринуждённо, а от этой - только после перезагрузки.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Заказал другой блок питания, а с существующим также можно победить: нужно лишь настроить BODEN/BODLEVEL. Пытаюсь найти информацию, как это сделать.

Morroc
Offline
Зарегистрирован: 24.10.2016

Да что это за бп от которого ардуина нормально не работает ? Его разве что как зарядку использовать.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

5 вольт 2 ампера. Но я, кажется, понял причину, озвучивать тут свои догадки пока не буду. Заеду в магазин радиодеталей, а там видно будет.

Feofan
Offline
Зарегистрирован: 28.05.2017

Возможно у БП плавное нарастание выходного.

andreykrasnodar
Offline
Зарегистрирован: 04.10.2020

Ребята, спасибо всем хорошим людям за участие. Забегая вперёд, скажу, что проблема на 100% решена. Но суть не в этом.

Читая тех товарищей, что приходят в раздел для новичков самоутверждаться, поневоле возникает такой образ:

первоклассник спрашивает у старшеклассника: "а что такое проценты?" и получает ответ "в каком контексте употреблено слово процент, ты, дурак, пойми, что процент от дробного числа - это одно, а от комплексного - этого тебе вообще не понять, и вообще тебе надо пройти весь учебник второго класса по математике, освоить третий класс, сдать экзамен, и лишь затем ты сможешь ответить на свой вопрос".

или "я коснулся оголенного провода, идущего от розетки, почему же меня не убило током?" "а ты уверен, что не убило? Принеси справку о том, что не убило, и вообще, предоставь мне результаты твоего медосмотра, кардиограмму, её копию с живой печатью и анализы мочи, предоставь схему разводки до розетки, сечение кабеля и замеры сопротивления изоляции".

Ну вы понимаете, какой абсурд тут на форуме творится.

А я в свою очередь понимаю, что вот эти, самоутверждающиеся за счёт новичков, они ни разу не практики и, вероятно, блок питания ни разу в жизни к Ардуино не подключали и не сделали в жизни ни одного рабочего и нужного проекта (мигание светодиодами не в счёт).

Своё решение я тут не выкладываю, свинорылым теоретикам (никого конкретно не называю) оно не нужно, а если зелёные новички, такие как я, задумавшие сделать устройство, столкнутся с такой же проблемой, могут написать в личные сообщения.

sadman41
Offline
Зарегистрирован: 19.10.2016

andreykrasnodar пишет:

первоклассник спрашивает у старшеклассника: "а что такое проценты?" и получает ответ "в каком контексте употреблено слово процент, ты, дурак, пойми, что процент от дробного числа - это одно, а от комплексного - этого тебе вообще не понять,


Попробуйте сами. Объясните мне, что такое процент. Потом Дракуле, Буму, странному человеку из темы с катушкой. Заходите на форум каждую неделю или день и заново объясняйте что такое процент совершенно разным людям и троллям. После этого будете иметь более объективное мнение о безумии на форуме.

bwn
Offline
Зарегистрирован: 25.08.2014

Пока закинул в "Отвлеченные", но личное мнение, удалить, а автора забанить. А то еще один с оскорбленными чуйствами, мало верующих ветеранов.