L298N Драйвер двигателя постоянного тока, головоломка

Я пытаюсь управлять одним двигателем постоянного тока с помощью драйвера двигателя постоянного тока L298N. У меня есть двигатель 12 В, подключенный к Out1 и Out2, батарея 7,4 В, подключенная к 12 В и общему заземлению, общее заземление m/m, идущее от arduino grnd к общему заземлению L298N, и у меня есть IN1 и IN2, подключенные к цифровым контактам 2 и 3. Я питаю Uno с помощью USB. Я также провожу провод m/m от Uno 5v к L298N (мне это не нужно), чтобы питать L298N

Я использую базовый код для тестирования двигателя

    int motor1pin1 = 2;
int motor1pin2 = 3;

void setup() {
  // put your setup code here, to run once:
  pinMode(motor1pin1, OUTPUT);
  pinMode(motor1pin2, OUTPUT);
 
}

void loop() {
  // put your main code here, to run repeatedly:   
  digitalWrite(motor1pin1, HIGH);
  digitalWrite(motor1pin2, LOW);

  delay(1000);

  digitalWrite(motor1pin1, LOW);
  digitalWrite(motor1pin2, HIGH);

  delay(1000);
}

Если я подключу липо-аккумулятор 7,4 В непосредственно к L298N, красный светодиод не загорится. Это происходит только тогда, когда я подключаю провод 5 В от Uno к L298N. И все же я не получаю никакой реакции от мотора. Однако если я запускаю землю от arduino непосредственно к out1 или out2, двигатель поворачивается в этом направлении. У кого-нибудь есть идея, что я делаю не так?

, 👍3


2 ответа


1

Я не вижу никаких проблем в вашей проводке и коде. Единственное, что не совсем оптимально, так это то, что напряжение, обеспечиваемое батареей, недостаточно высокое. Напряжение питания L298N должно быть не менее чем на 2,5 В выше логического напряжения питания (точнее, логического ВЫСОКОГО уровня). Это составит 7,5В - у вас есть только 7,4В.

Это звучит как крошечный зазор, но напряжение батареи может упасть еще больше под нагрузкой.

"запустите заземление от arduino непосредственно к out1 или out2" - вы не должны этого делать, так как это может создать короткое замыкание, в зависимости от состояния контактов EN и IN.

,

Согласно моей таблице данных, L298N требует, чтобы входное напряжение было выше 6 В только при использовании регулируемого выхода 5 В - в противном случае это 5-35 В, @user3765883

Похоже, у вас не включен выход регулятора +5V, а это значит, что вам нужен +5V от UNO. Из спецификации: "Модуль включает в себя бортовой регулятор. При включении перемычкой в качестве выхода предоставляется +5В. При отключении требуется отдельный вход +5 В для управления схемой логического уровня этого модуля", @user3765883


0

Предполагая, что у вас есть перемычка ENABLE для включения управления двигателем, вы сможете управлять двигателем на полной скорости вперед или назад вообще без кода UNO-просто используйте линии +5V и GND от UNO в качестве "датчиков логического уровня".

Согласно моей логической таблице, НИЗКИЙ УРОВЕНЬ (GND) на L1 и ВЫСОКИЙ (+5 В) НА L2 заставят двигатель, подключенный к OUT1/2, вращаться в одну сторону, а реверсирование логики на L1/2 заставит его вращаться в другую сторону - на полной скорости (полная скорость-это что угодно напряжение питания аккумулятора может обеспечить).

Как только у вас есть двигатель(ы), который вращается правильно, вы можете добавить сложность в попытке контролировать скорость и направление программно. Код, который вы показали, делает точно то же самое, что и просто использование выводов +5 и GND в качестве зондов - с задержкой в 1 секунду между разворотами.

Надеюсь, это поможет

Фрэнк

,