Радиоконструкторы и модули Радио КИТ
ARDUINO & RASPBERRI PI → Двигатели и модули ARDUINO для управления двигателями

Цена:
От: 640.00 руб. за 1 шт.

Добавить в корзину

RDKT0324 - Плата расширения RA078. Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30
Код товара: RDKT0324     Дата внесения в каталог: 05/03/2017

Плата расширения RA078. Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30

Свой заказ Вы можете также оформить и по телефону: +7 495 11 86 086. При заказе называйте код товара: RDKT0324
Плата расширения RA078. Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30


Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30 
Monster Moto Shield VNH2SP30 - это усиленная версия Arduino motor shield.
Для увеличения мощности H-мост был заменен с L298 на два полномостовых драйвера VNH2SP30.

Monster Moto Shield VNH2SP30 может управлять двумя высокотоковыми моторами. Питания VIN и выходы имеют утолщенную контактную поверхность, на случай пайки толстых проводов. При использовании платы следует следить за температурным режимом, так как при протекании больших токов плата может весьма существенно нагреваться и даже может требовать принудительного охлаждения.

Характеристики:

• максимальное напряжение: 16В (до 40В в пиках);
• максимальный ток: 14А (пиковый до 30А);
• токовый датчик доступен на аналоговом выводе Arduino;
• максимальная частота управляющего сигнала ШИМ: 20 кГц;
• защита от перегрева;
• защита от слишком слабого и слишком большого напряжения.


Рассмотрим использование Monster Moto Shield VNH2SP30 с платой Arduino.
Нам потребуются следующие детали:
• Плата Arduino Uno с USB-кабелем;
• Monster Motor Shield VNH2SP30;
• 2 двигателя постоянного тока 12 В;
• Блок питания 5.5 - 16 Вольт;
• Провода.

Схема использования пинов Monster Motor Shield VNH2SP30

Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30


Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30

Назначение пинов в схеме:

A0: включение (1) / выключение (0) двигателя 1;
A1: включение (1) / выключение (0) двигателя 2;
A2: датчик тока для двигателя 1;
A3: датчик тока для двигателя 2;
D7: движение по часовой стрелке (CW) для 1 двигателя;
D8: движение против часовой стрелки (CСW) для двигателя 1;
D4: движение по часовой стрелке (CW) для 2 двигателя;
D9: движение против часовой стрелки (CСW) для двигателя 2;
D5: ШИМ для двигателя 1;
D6: ШИМ для двигателя 2.

И таблица необходимых значений на выводах Arduino для запуска двигателей

Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30

Подключаем двигатель 1 к клеммам A1:B1, а двигатель 1 к клеммам A2:B2.

Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30


Подключаем блок питания к клеммам питания на Monster Moto Shield.
Загрузим на плату Arduino следующий скетч:

// Константы
#define BRAKE 0
#define CW 1
#define CCW 2
#define CS_THRESHOLD 15 //безопасное значение тока

//MOTOR 1
#define MOTOR_A1_PIN 7
#define MOTOR_B1_PIN 8

//MOTOR 2
#define MOTOR_A2_PIN 4
#define MOTOR_B2_PIN 9

#define PWM_MOTOR_1 5
#define PWM_MOTOR_2 6

#define CURRENT_SEN_1 A2
#define CURRENT_SEN_2 A3

#define EN_PIN_1 A0
#define EN_PIN_2 A1

#define MOTOR_1 0
#define MOTOR_2 1

short usSpeed = 150; // пользовательское значение скорости
unsigned short usMotor_Status = BRAKE;

void setup()
{
pinMode(MOTOR_A1_PIN, OUTPUT);
pinMode(MOTOR_B1_PIN, OUTPUT);

pinMode(MOTOR_A2_PIN, OUTPUT);
pinMode(MOTOR_B2_PIN, OUTPUT);

pinMode(PWM_MOTOR_1, OUTPUT);
pinMode(PWM_MOTOR_2, OUTPUT);

pinMode(CURRENT_SEN_1, OUTPUT);
pinMode(CURRENT_SEN_2, OUTPUT);

pinMode(EN_PIN_1, OUTPUT);
pinMode(EN_PIN_2, OUTPUT);

Serial.begin(9600); // запуск последовательного порта
Serial.println("Begin motor control");
Serial.println();
// Пункты меню для пользователя
Serial.println("Enter number for control option:");
Serial.println("1. STOP");
Serial.println("2. FORWARD");
Serial.println("3. REVERSE");
Serial.println("4. READ CURRENT");
Serial.println("+. INCREASE SPEED");
Serial.println("-. DECREASE SPEED");
Serial.println();
}

void loop()
{
char user_input;
while(Serial.available())
{
user_input = Serial.read();
// Чтение для определения выбора пользователем
// пункта меню
digitalWrite(EN_PIN_1, HIGH);
digitalWrite(EN_PIN_2, HIGH);

if (user_input =="1")
{
Stop();
}
else if(user_input =="2")
{
Forward();
}
else if(user_input =="3")
{
Reverse();
}
else if(user_input =="+")
{
IncreaseSpeed();
}
else if(user_input =="-")
{
DecreaseSpeed();
}
else
{
Serial.println("Invalid option entered.");
}

}
}

void Stop()
{
Serial.println("Stop");
usMotor_Status = BRAKE;
motorGo(MOTOR_1, usMotor_Status, 0);
motorGo(MOTOR_2, usMotor_Status, 0);
}

void Forward()
{
Serial.println("Forward");
usMotor_Status = CW;
motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}

void Reverse()
{
Serial.println("Reverse");
usMotor_Status = CCW;
motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}

void IncreaseSpeed()
{
usSpeed = usSpeed + 10;
if(usSpeed > 255)
{
usSpeed = 255;
}

Serial.print("Speed +: ");
Serial.println(usSpeed);

motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}

void DecreaseSpeed()
{
usSpeed = usSpeed - 10;
if(usSpeed < 0)
{
usSpeed = 0;
}

Serial.print("Speed -: ");
Serial.println(usSpeed);

motorGo(MOTOR_1, usMotor_Status, usSpeed);
motorGo(MOTOR_2, usMotor_Status, usSpeed);
}
// Функция установки
// motor(0 ou 1) - выбор двигателя
// direction (cw ou ccw) - направление
// pwm (entra 0 e 255 - значение скорости

{
if(motor == MOTOR_1)
{
if(direct == CW)
{
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, HIGH);
}
else if(direct == CCW)
{
digitalWrite(MOTOR_A1_PIN, HIGH);
digitalWrite(MOTOR_B1_PIN, LOW);
}
else
{
digitalWrite(MOTOR_A1_PIN, LOW);
digitalWrite(MOTOR_B1_PIN, LOW);
}

analogWrite(PWM_MOTOR_1, pwm);
}
else if(motor == MOTOR_2)
{
if(direct == CW)
{
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, HIGH);
}
else if(direct == CCW)
{
digitalWrite(MOTOR_A2_PIN, HIGH);
digitalWrite(MOTOR_B2_PIN, LOW);
}
else
{
digitalWrite(MOTOR_A2_PIN, LOW);
digitalWrite(MOTOR_B2_PIN, LOW);
}

analogWrite(PWM_MOTOR_2, pwm);
}
}

В мониторе последовательного порта выбираем необходимый пункт меню:

Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30


Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30

При выборе пунктов 2 или 3, можем регулировать пунктами + и - скорость вращения двигателей.

Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30

Распечатать
Цена:
От: 640.00 руб. за 1 шт.

Добавить в корзину
  Свой заказ на Плата расширения RA078. Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30
  Вы можете также оформить и по телефону: +7 495 543 47 96.
  При заказе называйте код товара: RDKT0324
Добавить отзыв
Написание отзыва требует предварительной регистрации на сайте.
Вы можете купить Плата расширения RA078. Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30 как за наличный расчёт, так и по безналичному расчёту ( т.н. безналу, перечислению). Для этого Вам надо либо оформить заказ на нашем сайте, указав в примечании реквизиты, либо прислать письмо с точным указанием кода RDKT0324 на Плата расширения RA078. Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30, желаемого количества и реквизитов Вашей организации. Счета по безналичному расчёту выписываются от суммы 1000 рублей.
Доставка может производиться различными по Вашему выбору способами. Это и самовывоз, и курьерские службы по г. Москве, и транспортные компании по России. Также мы можем выслать этот товар Почтой России. Если размеры, вес товара Плата расширения RA078. Шилд мощных (до 30 Ампер) мостовых драйверов электродвигателей VNH2SP30 или соображения удароустойчивости находятся в разрешённых Почтой России пределах.