Задача управления скоростью двигателя постоянного тока с помощью L298N
(Я не носитель английского языка, так что можете свободно редактировать мои предложения)
Я пытаюсь управлять скоростью двигателя постоянного тока с помощью шилда L298N, но это не очень хорошо работает. Вот моя схема:

Питание поступает от трансформатора с регулируемым напряжением ~7 В 1,0 А. Мне не важен порядок вращения, поэтому я подключил IN1 к 5 В, а IN2 — к земле. Правильно ли это?
Вот код, который я использую:
#define CONTROL_M 9 // Чтобы включить ввод
void setup ()
{
Serial.begin(115200);
}
void loop ()
{
test_analog_motor();
}
void test_analog_motor()
{
for (int i; i < 250; i=i+25)
{
Serial.println(i);
analogWrite(CONTROL_M, i); // Любое значение от 0 до 255
delay(500);
}
}
С этим кодом скорость моего двигателя должна постепенно увеличиваться, а затем вернуться к 0. Я понимаю, что, возможно, если значение слишком низкое, у двигателя возникнут проблемы с запуском, поэтому я «помогаю» ему вручную.
Если я не использую выход Enable на Arduino, а просто использую перемычку, двигатель вращается с хорошим крутящим моментом. Это, по крайней мере, доказывает, что мой шилд не повреждён.

Вот в чём моя проблема : схема, которую я показал выше, просто не работает. Ничего не происходит, когда я подключаю заземление к общему проводу. Почему? Если я отсоединяю кабель, идущий к заземлению Arduino, всё работает, но у двигателя очень низкий крутящий момент. Кроме того, похоже, что есть какая-то задержка в отображении данных на последовательном мониторе.
Я чувствую себя немного глупо из-за того, что сделал с заземлением. Мне кажется, это неправильно, но я не знаю, что делать :/ Что делать? Моя цель — максимально эффективно контролировать скорость этого двигателя постоянного тока с точки зрения реактивности. Подойдёт ли для этого L298N?
РЕДАКТИРОВАТЬ Я проверил ШИМ с помощью осциллографа и мультиметра. PIN-код Arduino, который я использовал, работал корректно. Не знаю почему, но теперь шилд тоже работает, то есть проблема решена. Одна из версий заключается в том, что я снизил напряжение блока питания ниже 5 В. В этом случае шилд ничего не делает. Arduino иногда творит чудеса...
@snoob dogg, 👍1
1 ответ
Лучший ответ:
Вам действительно нужен провод заземления. Причина, по которой он «работает» без него, заключается в том, что при включении входа, подключенной к антенне, устройство реагирует так же, как если бы вы коснулись входного разъёма усилителя и услышали жужжащий звук.
За синими разъёмами есть перемычка, которая включает встроенный стабилизатор напряжения 5 В. Полагаю, он у вас установлен, иначе с описанной вами перемычкой плата бы не работала.
Вот руководство: http://www.instructables.com/id/How-to-use-the-L298-Motor-Driver-Module-Arduino-Tu/
Я не вижу ничего, что могло бы привести к сбою, помимо того, что делаете вы, но, возможно, проблема с контактом 9 на вашей плате — вы могли повредить его неправильным подключением, поскольку некоторые способы подключения в этой схеме могут привести к подаче 12 В на контакт Arduino. Вы также можете попробовать использовать контакт 13: тогда светодиод Arduino должен загореться в соответствии с ШИМ-сигналом, и вы поймете, что всё работает.
- Как заставить сервопривод вращаться на угол больше 180°
- Почему Adafruit motor shield не крутит моторы?
- Как подключить двойной редуктор Tamiya к Arduino Uno?
- Мой моторный щит сломан?
- Не могу скомпилировать скетч Arduino, когда удаляю функцию цикла void
- Серво не двигается
- Adafruit Motorshield v2.3 не работает
- Один порт моторного щита не работает с шаговым двигателем.