Índice:

Posicionamento do servo com um teclado: 3 etapas
Posicionamento do servo com um teclado: 3 etapas

Vídeo: Posicionamento do servo com um teclado: 3 etapas

Vídeo: Posicionamento do servo com um teclado: 3 etapas
Vídeo: Como usar um servomotor #ManualMaker Aula 10, Vídeo 1 2024, Julho
Anonim
Posicionamento do servo com teclado
Posicionamento do servo com teclado

Neste instrutível estaremos criando um projeto que controlará um Micro-Servo com um teclado rodando-o com um Arduino Uno.

Materiais utilizados:

Arduino Uno

Tábua de pão

Teclado 4x4

Micro-Servo

Etapa 1: Conecte o teclado

Ligue o teclado
Ligue o teclado
Ligue o teclado
Ligue o teclado

A primeira coisa que você precisa fazer é conectar o barramento de alimentação e o barramento de aterramento em sua placa de ensaio a partir de seu Arduino

  1. Conecte o pino de 5 V ao barramento de alimentação (vermelho)
  2. Conecte um pino de aterramento (GND) ao trilho de aterramento (azul)

Agora que a placa de ensaio tem energia e está aterrada, podemos começar a conectar nossos componentes.

Conectar o teclado é fácil, mas você precisa anotar os pinos no teclado e no arduino. Será útil quando voltarmos nossa atenção para o nosso código.

Lembre-se de começar pela esquerda ao usar seus fios!

  • O primeiro pino vai para 13
  • O segundo pino vai para 12
  • O terceiro pino vai para 11
  • O quarto pino vai para 10
  • Quinto pino para 9
  • Sexto pino para 8
  • Sétimo pino para 7
  • Oitavo pino para 6

Ao conectar o teclado, lembre-se de manter um pino pwm digital aberto. Vamos precisar dele para o micro-servo

Antes de chegarmos ao código, certifique-se de que instalou a Biblioteca do teclado. Ele pode ser encontrado em seu esboço, depois na guia de esboço e na biblioteca de inclusão. Você não conseguirá usar o teclado sem ele.

Agora vamos voltar para o código e verificar se o teclado funciona e fornece os valores atendidos

Notas rápidas: Certifique-se de ter a instrução if para verificar o teclado, caso contrário, não funcionará. Também tenha cuidado com os atrasos, eles irão bagunçar os botões que estão sendo registrados a partir do teclado

#incluir

linhas de bytes constantes = 4; // quatro linhas desde que o teclado esteja cheio

colunas de bytes constantes = 4; // quatro colunas, igual à anterior

botões char [linhas] [colunas] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};

byte linha P [linhas] = {13, 12, 11, 10}; // pinos de linha do teclado

colunas de bytes P [colunas] = {9, 8, 7, 6}; // pinos de coluna do teclado

Teclado numérico = Teclado (makeKeymap (botões), rowP, colunasP, linhas, colunas); // criar teclado

void setup () {

Serial.begin (9600); }

void loop () {

char buttonPressed = pad.getKey (); // obtém o caractere do teclado if (buttonPressed) // mostra qual botão foi pressionado no teclado {Serial.println (buttonPressed); }}

Etapa 2: Adicionar o Micro Servo

Adicione o Micro Servo
Adicione o Micro Servo
Adicione o Micro Servo
Adicione o Micro Servo

Agora vamos adicionar o servo motor. Este é realmente fácil de adicionar ao nosso projeto atual, já que o micro servidor tem apenas três fios.

  • O fio marrom vai para o trilho de aterramento na placa de ensaio
  • Vermelho vai para o barramento de alimentação
  • Laranja vai para o pino 3 no Arduino. Lembre-se de que o microsservidor precisa ter um pino PWM no Arduino. Isso é devido ao servo usando TIMER2

Agora, vamos apenas ter certeza de que conectamos o micro servo corretamente e que ele se move

#include #include "Servo.h"

linhas de bytes constantes = 4; // quatro linhas desde que o teclado esteja cheio

colunas de bytes constantes = 4; // quatro colunas, igual à anterior

botões char [linhas] [colunas] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};

byte linha P [linhas] = {13, 12, 11, 10}; // pinos de linha do teclado

colunas de byte P [colunas] = {9, 8, 7, 6}; // pinos de coluna do teclado

Teclado numérico = Teclado (makeKeymap (botões), rowP, colunasP, linhas, colunas); // criar teclado

Servo currentServo; // cria um objeto servo para controlar um servo

// doze objetos servo podem ser criados na maioria das placas

int pos = 0; // variável para armazenar a posição do servo

void setup () {

Serial.begin (9600); currentServo.attach (3); // anexa o servo no pino 9 ao objeto servo

}

void loop () {

char buttonPressed = pad.getKey (); // obtém o caractere do teclado if (buttonPressed) // mostra qual botão foi pressionado no teclado {Serial.println (buttonPressed); }

currentServo.write (95);

}

Etapa 3: Modifique o código para usar o teclado no servo

Saiba que vamos modificar nosso código para que, quando pressionamos um botão específico no teclado, o servo se move para uma posição específica. Uma coisa importante primeiro. A posição do servo para 0 era estranha. Como eu tinha um servo de rotação contínua, sempre que chegava perto de 0, o servo simplesmente começava a girar. O número que coloquei no código foi o mais baixo possível sem que isso acontecesse. De qualquer forma, aqui está meu código final:

#include #include

linhas de bytes constantes = 4; // quatro linhas desde que o teclado esteja cheio

colunas de bytes constantes = 4; // quatro colunas, igual à anterior

botões char [linhas] [colunas] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {' * ',' 0 ',' # ',' D '}};

byte linha P [linhas] = {13, 12, 11, 10}; // pinos de linha do teclado

colunas de bytes P [colunas] = {9, 8, 7, 6}; // pinos de coluna do teclado

Teclado numérico = Teclado (makeKeymap (botões), rowP, colunasP, linhas, colunas); // criar teclado

Servo myServo; //

void setup () {

Serial.begin (9600); myServo.attach (5); // anexa o servo no pino 9 ao objeto servo}

void loop () {

chave char = pad.getKey (); // obtém o caractere do teclado if (key == '0') {myServo.write (11); Serial.println ("0"); atraso (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); atraso (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); atraso (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); atraso (15); }

if (chave == '4')

{myServo.write (48); Serial.println ("4"); atraso (15); }

if (chave == '5')

{myServo.write (60); Serial.println ("5"); atraso (15); }

if (chave == '6')

{myServo.write (72); Serial.println ("6"); atraso (15); }

if (chave == '7')

{myServo.write (84); Serial.println ("7"); atraso (15); }

if (chave == '8')

{myServo.write (96); Serial.println ("8"); atraso (15); }

if (chave == '9')

{myServo.write (108); Serial.println ("9"); atraso (15); }

if (chave == '*')

{myServo.write (120); Serial.println ("*"); atraso (15); }

if (chave == '#')

{myServo.write (132); Serial.println ("#"); atraso (15); }

if (chave == 'A')

{myServo.write (146); Serial.println ("A"); atraso (15); }

if (chave == 'B')

{myServo.write (158); Serial.println ("B"); atraso (15); }

if (chave == 'C')

{myServo.write (170); Serial.println ("C"); atraso (15); }

if (chave == 'D')

{myServo.write (180); Serial.println ("D"); atraso (15); }}

Recomendado: