Índice:
- Etapa 1: Conecte o teclado
- Etapa 2: Adicionar o Micro Servo
- Etapa 3: Modifique o código para usar o teclado no servo
Vídeo: Posicionamento do servo com um teclado: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
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
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
- Conecte o pino de 5 V ao barramento de alimentação (vermelho)
- 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
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:
Convertir Un Teclado Muerto a Un Teclado MIDI: 8 etapas
Convertir Un Teclado Muerto para Un Teclado MIDI: Hace un tiempo cuando era pequeño tenia un teclado funcional que me encantaba tocarlo, aunque solo sabia poquitas notas me encantaba tocarlo, un dia le conecte el eliminador equivocado pero no me habia dado cuenta cuando lo conecte todo estaba funci
Sistema de posicionamento baseado em ultrassom: 4 etapas (com imagens)
Sistema de posicionamento baseado em ultrassom: Todas as versões de radares ultrassônicos que encontrei para dispositivos arduino (Arduino - Radar / Ultrasonic Detector, Arduino Ultrasonic Radar Project) são radares muito legais, mas todos são " cegos ". Quer dizer, o radar detecta algo, mas o que eu
Conselhos sobre técnica e posicionamento do microfone para o vocalista: 5 etapas
Conselhos sobre técnica e posicionamento do microfone para o vocalista: Para os inexperientes, usar um microfone pode inicialmente parecer uma operação bastante fácil. Você simplesmente fala ou canta na parte redonda na parte superior e um som perfeitamente claro e equilibrado será emitido dos alto-falantes, com grande aclamação do a
Usando o Arduino Uno para posicionamento XYZ de 6 braços robóticos DOF: 4 etapas
Usando o Arduino Uno para o posicionamento XYZ do braço robótico 6 DOF: Este projeto é sobre a implementação de um esboço Arduino curto e relativamente fácil para fornecer o posicionamento cinemático inverso XYZ. Eu tinha construído um braço robótico de 6 servo, mas quando se tratava de encontrar software para executá-lo, não havia muito lá fora, exceto para cust
Interface de teclado com 8051 e exibição de números de teclado em 7 segmentos: 4 etapas (com imagens)
Interface do teclado com 8051 e exibição de números do teclado em 7 segmentos: Neste tutorial, vou falar sobre como podemos fazer a interface do teclado com 8051 e exibir os números do teclado em um display de 7 segmentos