Интернет-магазин «Неглупый Дом»
L298N — драйвер для коллекторных DC-моторов, а обычный потенциометр становится "ручкой газа": поворот меняет скорость, кнопка — направление вращения.
DC-мотору достаточно постоянного напряжения, но Arduino не даёт нужный ток и не меняет полярность сама. L298N решает обе задачи: H-мост по IN1/IN2 задаёт направление, а ENA через ШИМ задаёт среднюю мощность на моторе.
Потенциометр — делитель напряжения: средний вывод даёт 0-5V пропорционально повороту. `analogRead()` даёт 0-1023, `map()` переводит это в 0-255 для `analogWrite()` на ENA.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.
const int IN1 = 8;
const int IN2 = 7;
const int ENA = 9;
const int POT_PIN = A0;
const int DIR_BTN = 2;
bool forward = true;
bool lastBtnState = HIGH;
void setup() {
Serial.begin(9600);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(DIR_BTN, INPUT_PULLUP);
}
void applyDirection() {
digitalWrite(IN1, forward ? HIGH : LOW);
digitalWrite(IN2, forward ? LOW : HIGH);
}
void loop() {
bool btnState = digitalRead(DIR_BTN);
if (btnState == LOW && lastBtnState == HIGH) {
forward = !forward;
applyDirection();
delay(200);
}
lastBtnState = btnState;
int potValue = analogRead(POT_PIN);
int speed = map(potValue, 0, 1023, 0, 255);
analogWrite(ENA, speed);
Serial.println(speed);
delay(50);
}
Дополнительные библиотеки не нужны. Если мотор не крутится — проверьте силовое питание 12V на модуле, не только логическое 5V.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 264 ₽ 238 ₽ (экономия 26 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.