Страница 1 из 1

Подключение бесколлекторного двигателя - то ли Китайское...

Добавлено: Сб фев 04, 2017 08:37:22
kras
Контроллер двигателя: RC BEC ESC T-REX 450 V2
Двигатель: 2200KV-A2212 6T
Управляю с Ардуино Уно.

Все легко ищется на ebay в поиске.

На этом видео мой контроллер, но не совсем мой двигатель (1000 kV написано на видео) https://www.youtube.com/watch?v=9q2GB9cLCrk

В общем раньше я подключал более мощный двигатель к более мощному контроллеру. Я знаю, что 1500 устанавливает 0, и если в программе записать на контроллер 1600, то мотор поедет вперед. Однако, я не знаю, в какой последовательности подключать 3 фазы контроллера к 3 фазам мотора. И плохо понял,какие минимальные ток и напряжение необходимы мотору, чтобы двигаться. С этими непониманиями я наблюдаю вообще мистику. Может Вы сообразите...

Код: Выделить всё

#include <Servo.h> 

Servo motor_left;
Servo motor_right;

int mot_pin_left = 8;    //Подключаем левый мотор к пину 7
int mot_pin_right = 9;   //Подключаем правый мотор к пину 8

int js_position = 1500;  //Начальная позиция, всегда 1.5 мс для регуляторов бесколлекторных двигателей
int max_position = 2300; //Максимальное значение ШИМ 2.3 мс
int min_position = 800;  //Минимальное значени ШИМ 0.8 мс

int start = 1;  //Флаг задержки запуска

void setup() 
{
  motor_left.attach(mot_pin_left, js_position, max_position);    //Инициальзация левого мотора (порт, начальная позиция, максимальная позиция)       !!!
  motor_right.attach(mot_pin_right, js_position, max_position);  //Инициальзация правого мотора (порт, начальная позиция, максимальная позиция)      !!!
} 

void loop() 
{
  //Начальная установка регуляторов в нулевое положение
  if(start == 1) {
    motor_left.write(js_position);
    motor_right.write(js_position);
    
    delay(700);
    start = 0;
  }
  
  //js_position = analogRead(A0);  //Считывание положения потенциометра
  
  //js_position = map(js_position, 0, 1023, 75, 140);  //Преобразование положения потенциометра в угол поворота
  js_position = 2000;
  motor_left.write(js_position);     //Записываем положение и отправляем на регулятор левого мотора
  motor_right.write(js_position);    //Записываем положение и отправляем на регулятор правого мотора
  
  delay(20000);  //Задержка цикла 20 мс
}
Это один из вариантов кода. Думаю, с ним точно мотор запуститься должен. Питание подаю с 2 аккумуляторов 18650, 3,7 В х 2 = 7,2 В.

Мотор пикает. Как будто запускается. А потом не вертится, а пикает просто и поворачивается как будто только на треть фазы, а потом возвращается обратно. Все резко. Бъется в конвульсиях.

Как я не перебирал фазы, я же не знаю, как контроллер соединяется с мотором, везде были только конвульсии. Хотя я мог что-то пропустить и не учесть.

Теперь про мистику. Я испугался, что может ток или напряжение маленькие. Напряжение действительно может быть маленькое - у меня 7.2, а для мотора где-то написано, что надо 10 В, но я точно не понял. Подумал, что а вдруг и тока не хватает.

Тогда подключил вместо аккумуляторов 18650 батарею мощную на 7.2 В 6800 мАh. Суть в том, что с ней вся схема вырубается. Я думал, даже сгорела. Ардуино лампочка медленно гаснет.... Ну ок. Мистика.

Но я поставил назад аккумуляторы 18650, все работает также, как и описал сначала. Питает, дрыгается и ничего более. Помогите, пожалуйста, разобраться? Я уже боюсь, что что-то нарушено и контроллер работает неправильно. Потому что пару раз спонтанно случайно двигатель крутился, а не бился в конвульсиях. Это было во время загрузки скетча, вроде. Вот поэтому страшновато, что я не могу его запустить. Может ли быть проблема с током и напряжением? Какие у вас предположения?

Re: Подключение бесколлекторного двигателя - то ли Китайское

Добавлено: Сб фев 04, 2017 17:37:35
Gap
Какая часть когда непосредственно вращает двигатели?

Код: Выделить всё

  motor_left.write(js_position);     //Записываем положение и отправляем на регулятор левого мотора
  motor_right.write(js_position);    //Записываем положение и отправляем на регулятор правого мотора
Эта?

P.s. delay(20000) - это задержка на 20 секунд, а не на 20 миллисекунд.

Re: Подключение бесколлекторного двигателя - то ли Китайское

Добавлено: Ср фев 08, 2017 13:40:16
kras
Проблема в том, что я разобрался, что это авиа-контроллер, двигает он только вперед, точнее вверх. Но перед тем, как записывать скорость, надо сделать инициализацию. И вот тут начинаются проблемы. Там говорится - войдите в режим настроек, записав максимальное значение скорости при поданном питании.... У меня, видимо, в этот режим не входит. Я не понимаю. Как это делать? Может быть, входит, но я не понял, когда именно и с какой попытки запуска.

Но контроллер с двигателем я запустил, просто 1. Сам не понимаю, как. 2. Скорость то не могу регулировать.... Работает через раз... 3. Вы правы, что запускать двигатели надо с помощью motor.write(), но нужна еще настройка. Как грамотно запустить мотор?