Задача управления скоростью двигателя постоянного тока с помощью 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 иногда творит чудеса...

, 👍1


1 ответ


Лучший ответ:

3

Вам действительно нужен провод заземления. Причина, по которой он «работает» без него, заключается в том, что при включении входа, подключенной к антенне, устройство реагирует так же, как если бы вы коснулись входного разъёма усилителя и услышали жужжащий звук.

За синими разъёмами есть перемычка, которая включает встроенный стабилизатор напряжения 5 В. Полагаю, он у вас установлен, иначе с описанной вами перемычкой плата бы не работала.

Вот руководство: http://www.instructables.com/id/How-to-use-the-L298-Motor-Driver-Module-Arduino-Tu/

Я не вижу ничего, что могло бы привести к сбою, помимо того, что делаете вы, но, возможно, проблема с контактом 9 на вашей плате — вы могли повредить его неправильным подключением, поскольку некоторые способы подключения в этой схеме могут привести к подаче 12 В на контакт Arduino. Вы также можете попробовать использовать контакт 13: тогда светодиод Arduino должен загореться в соответствии с ШИМ-сигналом, и вы поймете, что всё работает.

,