Оглавление:
- Шаг 1. Подключите клавиатуру
- Шаг 2: Добавьте Micro Servo
- Шаг 3: Измените код для использования клавиатуры на сервоприводе
Видео: Сервопозиционирование с помощью клавиатуры: 3 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
В этом руководстве мы будем создавать проект, который будет управлять Micro-Servo с клавиатуры, запускающей его с Arduino Uno.
Используемые материалы:
Ардуино Уно
Макетная плата
Клавиатура 4x4
Микро-сервопривод
Шаг 1. Подключите клавиатуру
Самое первое, что вам нужно сделать, это подключить шину питания и шину заземления к макетной плате от Arduino.
- Подключите вывод 5V к шине питания (красный).
- Подключите контакт заземления (GND) к шине заземления (синяя).
Теперь, когда на макетную плату подается питание и она заземлена, мы можем приступить к подключению наших компонентов.
Подключить клавиатуру просто, но вам нужно обратить внимание на контакты на клавиатуре и Arduino. Это пригодится, когда мы обратим внимание на наш код.
Не забывайте начинать с левой стороны при использовании проводов!
- Первый вывод идет на 13
- Второй вывод идет на 12
- Третий контакт идет на 11
- Четвертый вывод идет на 10
- Пятый вывод на 9
- Шестой пин к 8
- Седьмой штифт к 7
- Восьмой кегль к 6
При подключении клавиатуры не забывайте держать контакт цифрового ШИМ открытым. Он нам понадобится для микро-сервопривода.
Прежде чем мы перейдем к коду, убедитесь, что вы установили библиотеку клавиатуры. Его можно найти в вашем эскизе, затем на вкладке эскиза, включая библиотеку. Без нее вы не сможете пользоваться клавиатурой.
Теперь давайте обратимся к коду и убедимся, что клавиатура работает и выдает требуемые значения.
Быстрые заметки: убедитесь, что у вас есть оператор if, чтобы проверить клавиатуру, иначе он не сработает. Также будьте осторожны с задержками, они испортят регистрацию кнопок с клавиатуры.
#включают
константные байтовые строки = 4; // четыре строки после заполнения клавиатуры
константные байтовые столбцы = 4; // четыре столбца, как указано выше
кнопки char [строки] [столбцы] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
байт rowP [rows] = {13, 12, 11, 10}; // вывод строки клавиатуры
байтовые столбцы P [columns] = {9, 8, 7, 6}; // выводы колонки клавиатуры
Клавиатура = клавиатура (makeKeymap (кнопки), rowP, columnsP, rows, columns); // создаем клавиатуру
void setup () {
Serial.begin (9600); }
void loop () {
char buttonPressed = pad.getKey (); // получить символ с клавиатуры if (buttonPressed) // показать, какая кнопка была нажата на клавиатуре {Serial.println (buttonPressed); }}
Шаг 2: Добавьте Micro Servo
Теперь давайте добавим серводвигатель. Его действительно легко добавить в наш текущий проект, поскольку у микросервера всего три провода.
- Коричневый провод идет к шине заземления на макете
- Красный идет к шине питания
- Оранжевый идет на контакт 3 на Arduino. Помните, что микросервер должен иметь вывод ШИМ на Arduino. Это связано с сервоприводом, использующим TIMER2.
Теперь давайте просто убедимся, что мы правильно подключили сервопривод и что он движется.
#include #include "Servo.h"
константные байтовые строки = 4; // четыре строки после заполнения клавиатуры
константные байтовые столбцы = 4; // четыре столбца, как указано выше
кнопки char [строки] [столбцы] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
байт rowP [rows] = {13, 12, 11, 10}; // вывод строки клавиатуры
байтовые столбцы P [columns] = {9, 8, 7, 6}; // выводы колонки клавиатуры
Клавиатура = клавиатура (makeKeymap (кнопки), rowP, columnsP, rows, columns); // создаем клавиатуру
Серво currentServo; // создаем сервообъект для управления сервоприводом
// на большинстве плат можно создать двенадцать сервообъектов
int pos = 0; // переменная для хранения положения сервопривода
void setup () {
Serial.begin (9600); currentServo.attach (3); // присоединяет сервопривод на выводе 9 к сервообъекту
}
void loop () {
char buttonPressed = pad.getKey (); // получить символ с клавиатуры if (buttonPressed) // показать, какая кнопка была нажата на клавиатуре {Serial.println (buttonPressed); }
currentServo.write (95);
}
Шаг 3: Измените код для использования клавиатуры на сервоприводе
Знайте, что мы собираемся изменить наш код, чтобы при нажатии определенной кнопки на клавиатуре сервопривод перемещался в определенное положение. В первую очередь важная вещь. Положение сервопривода для 0 было странным. Поскольку у меня был сервопривод непрерывного вращения, всякий раз, когда он приближался к нулю, сервопривод просто начинал вращаться. Число, которое я ввел в код, было настолько низким, насколько я мог этого избежать. В любом случае, вот мой последний код:
#include #include
константные байтовые строки = 4; // четыре строки после заполнения клавиатуры
константные байтовые столбцы = 4; // четыре столбца, как указано выше
кнопки char [строки] [столбцы] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};
байт rowP [rows] = {13, 12, 11, 10}; // вывод строки клавиатуры
байтовые столбцы P [columns] = {9, 8, 7, 6}; // выводы колонки клавиатуры
Клавиатура = клавиатура (makeKeymap (кнопки), rowP, columnsP, rows, columns); // создаем клавиатуру
Серво myServo; //
void setup () {
Serial.begin (9600); myServo.attach (5); // присоединяет сервопривод на выводе 9 к сервообъекту}
void loop () {
char key = pad.getKey (); // получаем символ с клавиатуры if (key == '0') {myServo.write (11); Serial.println («0»); задержка (15); } если (ключ == '1') {myServo.write (12); Serial.println («1»); задержка (15); } если (ключ == '2') {myServo.write (24); Serial.println («2»); задержка (15); } если (ключ == '3') {myServo.write (36); Serial.println («3»); задержка (15); }
если (ключ == '4')
{myServo.write (48); Serial.println («4»); задержка (15); }
если (ключ == '5')
{myServo.write (60); Serial.println («5»); задержка (15); }
если (ключ == '6')
{myServo.write (72); Serial.println («6»); задержка (15); }
если (ключ == '7')
{myServo.write (84); Serial.println («7»); задержка (15); }
если (ключ == '8')
{myServo.write (96); Serial.println («8»); задержка (15); }
если (ключ == '9')
{myServo.write (108); Serial.println («9»); задержка (15); }
если (ключ == '*')
{myServo.write (120); Serial.println ("*"); задержка (15); }
если (ключ == '#')
{myServo.write (132); Serial.println ("#"); задержка (15); }
если (ключ == 'A')
{myServo.write (146); Serial.println («А»); задержка (15); }
если (ключ == 'B')
{myServo.write (158); Serial.println ("B"); задержка (15); }
если (ключ == 'C')
{myServo.write (170); Serial.println ("C"); задержка (15); }
если (ключ == 'D')
{myServo.write (180); Serial.println ("D"); задержка (15); }}
Рекомендуемые:
Управляйте компоновкой модели поезда с помощью КЛАВИАТУРЫ!: 12 шагов
Управляйте компоновкой модели поезда с помощью КЛАВИАТУРЫ! В одной из моих предыдущих инструкций я показал вам, как вы можете управлять своей моделью поезда с помощью пульта дистанционного управления от телевизора. Вы также можете проверить обновленную версию здесь. В этом руководстве я покажу вам, как управлять макетом поезда с помощью клавиатуры
Настройка Raspberry Pi с помощью Diet Pi без монитора или клавиатуры: 24 шага
Настройка Raspberry Pi с использованием Diet Pi без монитора или клавиатуры: эта инструкция устарела. Пожалуйста, используйте: DietPi SetupNOOBS требует монитора, клавиатуры и мыши, что увеличивает стоимость на ~ 60 долларов (долларов США) или больше. Однако, как только Wi-Fi заработает, эти устройства больше не нужны. Возможно, DietPi будет поддерживать USB-порт
Интерфейс клавиатуры с 8051 и 7-сегментным отображением номеров клавиатуры: 4 шага (с изображениями)
Интерфейс клавиатуры с 8051 и отображение номеров клавиатуры в 7 сегментах: в этом руководстве я расскажу вам о том, как мы можем связать клавиатуру с 8051 и отображать номера клавиатуры на 7-сегментном дисплее
Отображение номеров клавиатуры на ЖК-дисплее 16 X 2 с помощью 8051: 4 шага
Отображение номеров клавиатуры на ЖК-дисплее 16 X 2 с 8051: В этом проекте мы собираемся соединить клавиатуру и ЖК-дисплей с 8051. Когда мы нажимаем клавишу на клавиатуре, мы получаем номер соответствия на нашем ЖК-дисплее
Очистка алюминиевой клавиатуры Apple . или любой другой мягкой сенсорной клавиатуры: 5 шагов
Очистка алюминиевой клавиатуры Apple … или любой другой клавиатуры с мягким прикосновением. Как бы мы с вами ни старались содержать в чистоте наши алюминиевые клавиатуры Apple, они становятся грязными через год или около того. Эта инструкция поможет вам очистить ее. Будьте осторожны, потому что я не несу ответственности, если ваша клавиатура сломается во время этого … ОТСАСЫВАЕТ ЧЕРТ