30 лет мы работаем для разработчиков, изготовителей и ремонтников электроники
Практические занятия робототехника. Конструктор ROBOT BIN CLASSIC

Методы оплаты Методы оплаты
Покупайте товар со скидкой, выбирая эти формы оплаты!
Прайс-листы DESSY.RU для скачивания
Партнерская программа
Наши акции
 
Архив новостей Архив новостей
Новости Новости!
Распечатать
Код товара: RDKT0324    

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

Бренд: DIY
Нам очень жаль, но ТОВАРА НЕТ В НАЛИЧИИ! Когда он появится - мы автоматически Вас известим об этом, стоит только прописать свой email в системе уведомления, нажав на текст Уведомить о товаре.

Уведомление о появлении товара на складе

При появлении на нашем складе данного товара, на указанный вами адрес будет выслано уведомление

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

Обратите внимание на близкий
по назначению товар:


Радиоконструктор RP241. Драйвер шагового двигателя

Радиоконструктор RP241. Драйвер шагового двигателя
Шилд мощных (до 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

------------------
КВЛЕ0324:640