Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (1) ORDER BY umeta_id ASC

0

Arduino UNO — подключаем драйвер двигателя L298N. Урок 13

Микросхема L298N представляет собой сдвоенный мостовой драйвер двигателей и предназначена для управления DC и шаговыми двигателями. Данная микросхема находит очень широкое применение в роботостроительстве. Одна микросхема L298N способна управлять двумя двигателями и обеспечивает максимальную нагрузку до 2А на каждый двигатель, а если задействовать параллельное включение для одного двигателя, то можно поднять максимальный ток до 4А.

В данной статье я хочу рассмотреть подключение к Arduino готового модуля L298N, которые очень широко представлены на популярном аукционе ebay и в др. местах. Можно конечно купить данную микросхему и в России и сделать самому шилд и всю обвязку, но сегодняшняя реальность такова, что при средней стоимости модуля на ebay в 5 долларов, все комплектующие при покупке у нас выйдут примерно также, а то и дороже. Не говоря уже про трудозатраты на изготовление печатной платы, пайку и т.д.

Сами модули на микросхемах L298N выглядят так:

1

Принципиальная схема такого модуля выглядит следующим образом:

 2

Шилд имеет следующие пины подключения:
Vcc — подключение внешнего питания двигателей
+5 — питание логики
GND — общий
IN1, IN2, IN3, IN4 (разъем P4 на схеме) — входы управления двигателями
OUT1, OUT2 (разъем P2 на схеме) — выход первого двигателя
OUT3, OUT4 (разъем P3 на схеме) — выход второго двигателя
Выключатель S1 служит для переключения питания логической части микросхемы. Т.е. при включенном S1 питание логической части берется от внутреннего преобразователя модуля. При выключенном S1 питание берется от внешнего источника.
На модулях также присутствуют перемычки ENA и ENB для разрешения включения двигателей. Если необходимо, их можно также подключить к Arduino и задействовать, но это лишние 2 провода и в этих входах нет особого смысла.

3

ШИМ управление позволяет плавно изменять скорость вращение двигателя. Если нам не нужно ШИМ управление, то на соответствующий вход нужно просто подать логическую 1. На какой именно вход IN1 или IN2 вы подадите сигнал ШИМ, либо направление вращения — разницы не имеет. Тоже самое справедливо и для входов IN3, IN4.

Схема подключения шилда L298N к контроллеру Arduino:

4

Для питания логической части схемы необходимо нажать кнопку или вставить перемычку (зависит от типа модуля). Если же на вашем модуле не предусмотрен преобразователь 5В, то дополнительно, необходимо соединить вывод 5V от Arduino к входу +5 шилда.
Как видно из схемы выше, 2 и 4 вывод используются для установки направления движения, а 3 и 5 для ШИМ управления выводами.

Напишем тестовую программу, в которой мы будем в цикле изменять скорость вращения, а также направление вращения двигателей:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#define D1 2          // Направление вращение двигателя 1
#define M1 3          // ШИМ вывод для управления двигателем 1
#define D2 4          // Направление вращение двигателя 2
#define M2 5          // ШИМ вывод для управления двигателем 2
bool direction = 0;   // Текущее направление вращения      
int value;            // Текущее значение ШИМ
 
void setup()
{
    pinMode(D1, OUTPUT);
    pinMode(D2, OUTPUT); 
}
 
void loop()
{
  for(value = 0; value <= 255; value+=1)
  {
    digitalWrite(D1, direction);  // Задаем направление вращения
    digitalWrite(D2, direction);
    analogWrite(M1, value);       // Задаем скорость вращения
    analogWrite(M2, value);
    delay(20);
  
  direction = direction ^ 1;      // Инвертируем значение, чтобы в след. цикле вращаться в другую сторону
}

Видео работы:

Скачать скетч

Автор: Колтыков А.В.

Источник

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *