Этот учебник является частью: Servo Motors
All videos related to servo motors that are related, listed here.
Управление сервомотором Arduino с помощью потенциометра
В этом учебном пособии мы рассмотрим, как управлять сервомотором с помощью потенциометра и Arduino. Цель состоит в том, чтобы создать простую схему, в которой положение сервомотора регулируется в зависимости от вращения потенциометра. К концу этого проекта у вас будет рабочая модель, которая плавно изменяет угол сервомотора от 0 до 180 градусов по мере поворота потенциометра. Это отличный способ понять основы аналогового ввода и управления сервомоторами в Arduino.
Для достижения этой цели мы будем использовать плату Arduino, сервомотор и потенциометр. Потенциометр действует как переменный резистор, обеспечивая аналоговый сигнал для Arduino, который затем определяет положение сервомотора соответственно. Этот проект не только увлекателен, но и образовательен, так как демонстрирует ключевые концепции в электронике и программировании. Для более подробного объяснения обязательно посмотрите видео (в видео на 00:00).
Объяснение аппаратного обеспечения
В этом проекте основными компонентами являются плата Arduino, сервомотор и потенциометр. Arduino является мозгом операции, обрабатывающим входные данные и контролирующим выходные сигналы. Сервомотор будет физически двигаться в зависимости от команд, которые он получает от Arduino. Потенциометр может быть от 1 кОм до 1 МОм и позволяет пользователям предоставлять переменный вход, который переводится в движение сервомотора.
Сервомотор работает, получая сигнал ШИМ (широтно-импульсная модуляция), который указывает желаемое положение. Потенциометр, когда его поворачивают, изменяет свое сопротивление, которое считывается Arduino как аналоговое напряжение. Сервомотор работает при 5В. Не работает при 3.3В. Это напряжение затем сопоставляется с диапазоном движения сервомотора, что позволяет плавно перемещаться от 0 градусов до 180 градусов.
Технические характеристики сервомотора SG90
| Производитель | Параллакс |
|---|---|
| Номер детали | SG90 |
| Логическое/входное напряжение | 5 В |
| Напряжение питания | 4.8-6 В |
| Выходной ток (на канал) | ~500 мА |
| Пиковый ток (на канал) | 1 А |
| Руководство по частоте ШИМ | 50 Гц |
| Входные логические пороги | 0.5 В (низкий), 2.5 В (высокий) |
| Падение напряжения / RДС(в)/ насыщение | 0.5 В при 500 мА |
| Термические пределы | от 0°C до 60°C |
| Пакет | Стандартный сервопривод 9g |
| Заметки / варианты | Часто используется в радиоуправляемых приложениях |
- Убедитесь, что сервопривод не превышает своего максимального тока.
- Используйте радиатор, если сервопривод работает непрерывно под высокой нагрузкой.
- Подключите потенциометр к аналоговому выводу для точных измерений.
- Будьте осторожны с таймингом сигнала ШИМ для управления сервоприводом.
- Проверьте диапазон движения сервопривода, чтобы избежать физических препятствий.
Инструкции по проводке


Для этой настройки вам нужно подключить компоненты следующим образом:
Подключите средний контакт потенциометра (слайдер) к аналоговому пину Arduino.A0. Две другие ножки потенциометра должны быть подключены к5VиGNDна Arduino. Для сервомотора подключите красный провод к5V, черный провод кGND, а желтый или белый провод к цифровому пину9на Arduino. Эта схема позволяет потенциометру предоставлять аналоговый сигнал на Arduino, который будет управлять положением сервомотора на основе этого сигнала.
Убедитесь, что все соединения проверены и что сервопривод не препятствует своему диапазону движения. Если вы используете другую модель Arduino, подтвердите, что назначения пинов для аналогового входа и выхода сервопривода совместимы.
Примеры кода и пошаговое руководство
Ниже приведен фрагмент кода, который инициализирует сервопривод и считывает значение потенциометра:
#include
Servo myservo; // create servo object to control a servo
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
В этом коде мы подключаем библиотеку Servo и создаем объект сервопривода с именемmyservoСервопривод подключен к контакту9, что позволяет нам управлять им с помощью этого контакта.
void loop() {
int sensorValue = analogRead(A0); // read the potentiometer
pos = map(sensorValue, 0, 1023, 0, 180); // map to servo position
myservo.write(pos); // move servo to position
delay(15); // waits 15ms for the servo to reach the position
}
В функции цикла мы считываем значение потенциометра с пинаA0и сопоставить его с диапазоном сервопривода (0-180 градусов).myservo.write(pos)команда затем перемещает сервопривод в желаемое положение в зависимости от вращения потенциометра.
Демонстрация / Что ожидать
Когда вы запустите эту программу, вы должны увидеть, как сервомотор плавно перемещается от 0 до 180 градусов по мере поворота потенциометра. Если сервомотор не движется, как ожидалось, проверьте проводку и убедитесь, что потенциометр работает правильно. Кроме того, убедитесь, что Arduino правильно питается, и код загружен без ошибок. Вы можете ожидать, что сервомотор будет отражать положение потенциометра в реальном времени (в видео на 02:00).
Временные метки видео
- 00:00- Введение в проект
- 01:30- Объяснение настройки оборудования
- 03:45- Инструкции по проводке
- 05:00- Обзор кода
- 07:30- Демонстрация завершенного проекта
Этот учебник является частью: Servo Motors
- Controlling a Servo with Push Buttons Using Arduino
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- Controlling a Servo with a Potentiometer Using Arduino
- Controlling a Servo with Potentiometer and LCD1602 using Arduino
- Управление сервомоторами с помощью инфракрасного пульта на Arduino
- Управление положением сервопривода с помощью жестов рук для Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- Arduino Code and Video for PCA9685 16-Channel 12-Bit Servo Controller V1
- Build an Arduino Servo Toggle Switch with a Push Button
Ресурсы и ссылки
Ресурсов пока нет.
Файлы📁
Нет доступных файлов.