Хочу вам, любителям помастерить, продемонстрировать свою наработку подключения коллекторного, в меру мощного электро двигателя в реверсивном режиме при помощи: драйвера двигателя BTS7960 43А, 27В
контроллера ARDUINO UNO
гироскопа-акселерометра GY-521 (MPU-6050)
скетча (программа для Arduino)
аккумулятора 24В
Электродвигателя МЭ 252Б
Электродвигатель МЭ 252Б насосного агрегата предпускового подогревателя дизельных двигателей КАМАЗ, УРАЛ, производитель СССР, а не Китай или РФ . Двигатель коллекторный, подсоединение обмоток параллельное. Чтобы вращение было реверсивным при смене полярности питания, катушку статора запитал через диодный мост KBPC5010 700В 50 А за 155 руб., исключив переполюсовку. Номинальная частота вращения, об/мин. — 6500
Управляет мотором драйвер двигателя BTS7960, мне обошелся в 1000 руб. с пересылкой. Он управляет одним коллекторным двигателем рассчитанным на напряжение от 5,5 до 27,5 В постоянного тока до 43 А. С помощью данного драйвера можно управлять скоростью двигателя, направлением его движения, выполнять торможение и контролировать нагрузку которую испытывает двигатель.
Назначение выводов
«M+» и «M-» — Выходы для подключения мотора.
«M-» Выход левого плеча H-моста (чип U3).
«M+» Выход правого плеча H-моста (чип U2).
«S+» и «S-» — Питание мотора.
«Vcc» и «GND» — Питание логики.
«L_IS» — Выход состояния левого плеча H-моста (чип U3).
Вывод является флагом ошибки (если она есть), иначе с этого выхода можно снимать уровень напряжения пропорциональный току протекающему через мотор, а значит контролировать силу нагрузки приложенной к мотору.
«R_IS» — Выход состояния правого плеча H-моста (чип U2).
Вывод является флагом ошибки (если она есть), иначе с этого выхода можно снимать уровень напряжения пропорциональный току протекающему через мотор, а значит контролировать силу нагрузки приложенной к мотору.
«L_EN» — Вход разрешения работы левого плеча H-моста (чип U3).
Сброс в 0 — отключает выход мотора «M-» (переводит его в состояние высокого импеданса).
Установка в 1 — разрешает работу выхода мотора «M-».
«R_EN» — Вход разрешения работы правого плеча H-моста (чип U2).
Сброс в 0 — отключает выход мотора «M+» (переводит его в состояние высокого импеданса).
Установка в 1 — разрешает работу выхода мотора «M+».
«L_PWM» — Вход установки потенциала на выходе левого плеча H-моста (чип U3).
Сброс в 0 — устанавливает на выходе «M-» потенциал вывода «S-».
Установка в 1 — устанавливает на выходе «M-» потенциал вывода «S+».
Установка потенциалов «S+» или «S-» на выходе «M-» возможна только если установлена 1 на входе «L_EN».
«R_PWM» — Вход установки потенциала на выходе правого плеча H-моста (чип U2).
Сброс в 0 — устанавливает на выходе «M+» потенциал вывода «S-».
Установка в 1 — устанавливает на выходе «M+» потенциал вывода «S+».
Установка потенциалов «S+» или «S-» на выходе «M+» возможна только если установлена 1 на входе «R_EN»
ARDUINO UNO 700 руб. (купить на Али) это мозги — комбинация аппаратной и программной частей для простой разработки электроники. Для Ардуино есть огромное количество инструкций и готовых скетчей. Легко сможете повторить любой проект, доработать его или адаптировать под свои нужны.
MPU-6050 GY-521 стоимостью 151 руб. (купить на Али) – компактный и легкий модуль 3х осевого акселерометра и 3х осевой гироскоп. Отличное решение для систем балансировки и ориентирования роботов и полуавтоматических устройств типа вертолётов, самолётов, квадрокоптеров. Сопрягается с Arduino и прочими микроконтроллерными устройствами по шине I2C.
Скетч подобрал без наворотов, чисто наклон гироскопа вперед, вращение в одну сторону, чем сильнее наклон, тем скорость больше. Наклон назад, вращение обратное
В ARDUINO UNO надо вставить программу. Для этого ищем в интернете arduino-1.8.12-windows, скачиваем и устанавливаем в компьютер.
Там же в интернете находим I2Cdev, MPU6050 и вставляем в библиотеку. Переносим скетч
скетч от Circuit Magic слегка уменьшил задержку
#include
#include
#include
MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;
#define pin1 3
#define pin2 5
void setup(){
Serial.begin(9600);
Serial.println("Initialize MPU");
mpu.initialize();
//Serial.println(mpu.testConnection() ? "Connected" : "Connection failed"); pinMode(pin1,OUTPUT);
pinMode(pin2,OUTPUT);
}
void loop(){
mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
ax = map(ax, -17000, 17000, -1500, 1500);
//Serial.println(ax);
if(ax > 0){
if(ax<255){
Serial.println(ax);
analogWrite(pin2,ax);
}
else{
Serial.println("+255");
analogWrite(pin2,255);
}
}
if(ax<0){
if(ax>-255){
Serial.println(ax);
analogWrite(pin1, ax-ax-ax);
}
else{
Serial.println("-255");
analogWrite(pin1, 255);
}
}
delay(100);
}
Схема подключения
Проверим как работает ARDUINO UNO и Гироскоп-акселерометр с загруженной программой. Правильно ли скетч обрабатывает полученную информацию от гироскопа в ARDUINO UNO. То есть любой наклон в пространстве должен вызвать активность эл. двигателя
Как видим все работает исправно. Можете применять скетч, проблем не будет. Спасибо за внимание
Источник: