Оглавление:

Сервопозиционирование с помощью клавиатуры: 3 шага
Сервопозиционирование с помощью клавиатуры: 3 шага

Видео: Сервопозиционирование с помощью клавиатуры: 3 шага

Видео: Сервопозиционирование с помощью клавиатуры: 3 шага
Видео: Сервопривод AASD подключение по step/dir 2024, Ноябрь
Anonim
Серво позиционирование с помощью клавиатуры
Серво позиционирование с помощью клавиатуры

В этом руководстве мы будем создавать проект, который будет управлять Micro-Servo с клавиатуры, запускающей его с Arduino Uno.

Используемые материалы:

Ардуино Уно

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

Клавиатура 4x4

Микро-сервопривод

Шаг 1. Подключите клавиатуру

Подключите клавиатуру
Подключите клавиатуру
Подключите клавиатуру
Подключите клавиатуру

Самое первое, что вам нужно сделать, это подключить шину питания и шину заземления к макетной плате от Arduino.

  1. Подключите вывод 5V к шине питания (красный).
  2. Подключите контакт заземления (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); }}

Рекомендуемые: