Делаю модель судна, управляемую с помощью bluetooth. Использую arduino nano, два электронных регулятора хода, два щеточных двигателя, bluetooth-модуль, батарейки.
При подключении одного контроллера с двигателем аппарат работает штатно, при включении двух контроллеров и двигателей сгорает один из регуляторов скорости, причем сразу после включения. При подаче питания arduino выставляет оба регулятора на холостой ход, затем ожидает команд от bluetooth.
С чем может быть связан выход из строя регуляторов и какие меры стоит пробовать предпринять?
Используемые детали:
Спойлер
Батарейки: 7.4В, 25-30А. 3 штуки
Регуляторы:
Постоянный ток 20A Макс. 15A<30s Импульсный 30A< 5s
PWM: 8K
Входной сигнал: PPM
Частота драйвера: 2 кГц
Li-Po: 2S
имеет следующие контакты: пара контактов к батарее, пара контактов к двигателю, три контакта: вход управляющего сигнала от пина arduino, +5В выход, земля
Модуль bluetooth: HC-06 с четырьмя контактами: +, -, прием, передача
Программный код
Используется библиотека Servo.h
Код, выполняющийся при подаче питания на arduino
Servo motorMain; //главный привод (правый)
Servo motorSecondary; //вспомогательный привод (левый)
const int FORWARD_SPEED = 1000; //полный вперед
const int BACKWARD_SPEED = 2000; //полный назад
const int SPEED_RANGE = BACKWARD_SPEED - FORWARD_SPEED;
const int NEUTRAL_SPEED = FORWARD_SPEED + (SPEED_RANGE / 2);
void setup() {
Serial.begin(9600);
motorMain.attach(9);
motorSecondary.attach(3);
motorMain.writeMicroseconds(NEUTRAL_SPEED);
motorSecondary.writeMicroseconds(NEUTRAL_SPEED);
delay(1000);
}
Код обработки bluetooth-команд
void loop() {
while (Serial.available() > 0) {
handleCommand(Serial.read());
}
}
const int MAIN_SHAFT_INDEX = 0;
const int SECONDARY_SHAFT_INDEX = 1;
void handleCommand(unsigned char byte) {
int index = (byte & 0xf0) >> 4; //индекс устройства - старшие 4 бита
int value = (byte & 0x0f); //значение для устройства - младшие 4 бита
switch (index) {
case MAIN_SHAFT_INDEX:
setMainMotorValue(value); break; //преобразование из 0-15 в 2000-1000
case SECONDARY_SHAFT_INDEX:
setSecondaryMotorValue(value); break; //преобразование из 0-15 в 2000-1000
}
}
Как по мне, без схемы регуляторов, трудно разобраться. Я бы срисовал схему с платы, и разобрался сначала. Если нет защитных диодов - добавить. И , двигатель проверить не мешает.
Я так понимаю вы регуляторы по питанию соединяете пераллельно и один из них сразу сгорает?
Что именно сгорает в регуляторе, как проявляется неисправность?
Ардуино тут вообще ни при чем, надо тестировать без неё, только два регулятора, два мотора и батарейка.
там мост, обратные диоды есть, значит двойного питающего более чем…
PS а тебя всё мой вопрос мучает?..где положительные эмоции )))
не парься, ты жеж не конструктор и не ремонтёр, тебе знать не обязательно…
а вот как минимум DetSimen обязан знать, он на этом деле собаку съел, если повар нем не врёт
Так а если поставить на Uпит * 3 работать не будет? Или будет, но как-то не так? Больше электронов в конденсатор нужно закачать, а ввиду их дефицита это непозволительная роскошь?
самое смешное что не сталкивался, у меня есть несколько самолётов у которых регуляторы бесколлекторных движков соединяются в параллель, есть соединение DC-DC преобразователей параллельно, ранее на машинках были соединения таких же регуляторов как у ТС, никогда ничего не горело…
Не совсем понятно с чего бы им гореть при соединении по входу?