Проблема в работе связки Arduino Mega Pro - Lora - Сервоприводы

derungebundener

✩✩✩✩✩✩✩
18 Июл 2020
117
3
Как можно заметить по прошлым моим недавним публикациям, я уже искал помощи с модулями Lora. Те проблемы я решил, но, возникла новая:

Принцип такой:

Отправитель снимает показания потенциометров и шлёт их через Lora.
Тут всё работает как надо, вопросов нет.

Проблема на стороне получателя:

Используется Arduino Mega Pro, которая получает питание через USB от компьютера.
Через 5в 1А блок питания подключен преобразователь на 3.3в для питания LoRa.
Через этот же 5в блок питания подключаются сервоприводы.

Земли ардуины, 5в и 3.3в соединены - собираю всё на бредборде и коннекторами перебросил обе земли - ардуины и 3.3в на общую землю питания, куда подаётся 5в.

Ардуино получает от Лоры данные в виде строки. После чего с помощью substring строка бьётся на части и преобразовывается в int.
Далее оно через map подгоняется под диапазон сервопривода 0-180 и отправляется на него.

Если не подключать сервопривод, то всё работает стабильно и без проблем - данные потенциометров нормально передаются

Но, если же подключить сервопривод, даже один и покрутить сервопривод кручением потенциометр на на стороне отправителя, что через пару-тройку секунд получает зависает и приходится перезагружать кнопкой.

Исходя из написанного выше, понятно, что питание ардуины и сервоприводов - раздельное. То есть, вариант с тем, что сервоприводы много жрут отпадает, я так понимаю.

В интернете на англоязычных форумах пишут два варианта:
Либо проблема в программной части - якобы String'и цитирую дословно - приводят "к порче данных" - ну то бишь якобы нестабильно работают.
Либо "шумит" двигатель сервопривода.

Кто может подсказать что-либо?
Спасибо.
 

derungebundener

✩✩✩✩✩✩✩
18 Июл 2020
117
3
Ребят, тема потеряла в актуальности на 10%
Я в электронике вообще ноль - начал изучать эту тему всего 2 месяца назад с покупкой своей первой ардуино.
И вот сейчас чисто из интереса воткнул конденсатор 16в 470мкФ на ввод питания 5в и проблема вроде как ушла - нет таких быстрых зависаний. Но вот пока пишу - сервопривод иногда сам подёргивается без внешних команд.

Так что всё ещё надеюсь на помощь, кто разбирается в вопросе.

Update
Сейчас положение дел такое:

Есть конденсатор 16в 470 мкф на линии питания 5в от блока питания.
И точно такой же конденсатор стоит на ардуино между 5в пином и землёй.

Если дёргать потенциометры, то проблема вроде как не наблюдается - дёргал их минуты 2.

Но, если оставить всё как есть, то примерно в течение 5 минут происходит произвольное зависание.
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,188
1,280
Москва
Что бы не дергался делай ему детач, когда не надо крутить. Т.е. смотриш что тебе Лора прислала и сравниваешь с тем, что было. Можно тупо читать с сервы позицию, а не хранить старое значение, и уже если позиция другая делать аттач и крутить. Вроде так работает. но я уже запутался где что работает. Но! при детаче с сервы уменьшается ее сила удержания.
 

derungebundener

✩✩✩✩✩✩✩
18 Июл 2020
117
3
@Старик Похабыч, Спасибо.
Мне всё же кажется что проблема в чём-то другом и детач тут особой роли не сыграет. Ардуинка просто виснет через некоторое время не зависимо от кручения потенциометров на стороне отправителя. Сейчас попробую для надёжности вставить конденсатор на 1мкф - гляну, что будет

UPD.
Замерил напряжение между пинами 5в и землёй - там вообще 3.2 в всего.
А между пинами 3.3 и землей вообще 2.2.
По какой причине такое может быть? Потребителей к ардуинке как таковых вообще не подключено.

Стоит всего-лишь ковертёр логики 5-3.3, дабы общаться с Лорой. Но и он тоже запитан от внешнего блока на 5в.

Надо бы сам USB померить...


UPD UPD
Замеры оказались неточными. Всё нормально - USB выдаёт 5в, на пинах нужные 5 и 3.3в.
Правда внешние питание при вводе на макетную плату падает с 5 до 4.5в