Управление Мотором с Помощью Потенциометра на Arduiono

Этот проект демонстрирует, как использовать потенциометр для управления скоростью и направлением вращения мотора с помощью микроконтроллера Arduino. Потенциометр подключен к аналоговому входу Arduino и позволяет изменять напряжение, которое считывается микроконтроллером. Программа на Arduino преобразует это значение и использует его для регулировки мотора. Это позволяет наглядно увидеть, как изменение положения потенциометра влияет на движение мотора, делая проект идеальным для изучения основ работы с аналоговыми и цифровыми сигналами.

Управление мотором с помощью потенциометра - это популярная задача в области робототехники и автоматизации. В этой статье мы рассмотрим, как реализовать управление мотором с использованием драйвера L293D и библиотеки AlashMotorControlLite на Arduino.

Необходимые Компоненты

  1. Arduino (например, Arduino Uno)

  2. Двигатель с редуктором двухосный

  3. Драйвер мотора L293D

  4. Потенциометр

  5. Соединительные провода

  6. Макетная плата

Подключение компонентов

  1. Потенциометр: Средний вывод подключен к A0 на Arduino, а два крайних вывода - к VCC и GND.

2. Драйвер L293D: - Выводы INA и INB подключены к 4 и 5 пинам Arduino соответственно. - Вывод ENA подключен к 6 пину Arduino. - Выводы OUT1 и OUT2 подключены к выводам мотора. - Питание драйвера подключено к VCC и GND.

Схема подключения

Подключение библиотеки

  1. Скачайте библиотеку с официального сайта или из репозитория GitHub: AlashMotorControlLite

  2. Откройте Arduino IDE и перейдите в меню «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку…».

  3. Выберите скачанный .zip файл и нажмите «Открыть».

  4. Появится сообщение «Библиотека добавлена. Проверьте меню «Подключить библиотеку» «.

Теперь библиотека будет доступна для использования в ваших проектах.

Код:

motor_control_potentiometer.ino
#include "AlashMotorControlLite.h"
// Пины подключения потенциометра и мотора
const int potPin = A0; // Пин, к которому подключен потенциометр
// Создаем объект motor с режимом DIR_PWM и пинами inA = 4, inB = 5, PWM = 6
AlashMotorControlLite motor(DIR_DIR_PWM, 4, 5, 6);
void setup() {
  // Настройка серийного соединения для отладки
  Serial.begin(9600);
}
void loop() {
  // Считываем значение потенциометра (от 0 до 1023)
  int potValue = analogRead(potPin);
  // Преобразуем значение потенциометра в значение для PWM (от -100 до 100)
  int motorSpeed = map(potValue, 0, 1023, -100, 100);
  // Устанавливаем направление и скорость вращения мотора
  motor.setSpeed(motorSpeed);
  // Отладочная информация
  Serial.print("Potentiometer Value: ");
  Serial.print(potValue);
  Serial.print("\tMotor Speed: ");
  Serial.println(motorSpeed);
  delay(100); // Небольшая задержка для плавного обновления
}

Описание кода

  1. Подключение библиотеки: Включаем библиотеку AlashMotorControlLite, которая упрощает управление моторами.

  2. Настройка пинов: Определяем пин, к которому подключен потенциометр, и создаем объект motor для управления мотором.

  3. Настройка серийного соединения: В функции setup инициализируем серийное соединение для вывода отладочной информации.

  4. Считывание значения потенциометра: В функции loop считываем аналоговое значение с потенциометра.

  5. Преобразование значения: Преобразуем значение потенциометра (0-1023) в значение для PWM (-100 до 100).

  6. Управление мотором: Передаем преобразованное значение в функцию setSpeed, чтобы установить направление и скорость мотора.

  7. Вывод отладочной информации: Выводим значения потенциометра и скорости мотора в серийный монитор.

Заключение

Использование потенциометра для управления мотором – это отличный способ познакомиться с основами работы с аналоговыми входами и PWM на Arduino. Это также полезно для создания различных проектов, где необходимо регулировать скорость и направление моторов, таких как роботы, модели машин и другие механические устройства.