OBS: caso utilize alta tensão tome cuidado para não tomar choques elétricos pois pode ser perigoso. E sempre bom contactar um eletricista nestes casos.
Vamos agora as etapas de integração do teclado com o Arduíno.
Primeiramente terá de baixar a biblioteca Keypad que é onde estão os arquivos necessários para seu funcionamento Biblioteca Keypad .
Apos baixar,descompacte o arquivo ZIP e copie para pasta libraires que esta dentro da pasta Arduíno em Arquivos e programas.
Para este projeto iremos precisar de
1x arduino.
1x teclado matrix com 16 teclas.
1x Modulo Rele 4 canais.(pode ser usado também reles de 1 ou 2 canais para isso basta usar uma protoboard para alimenta-los)
8x fios jumpers macho x macho.
6x fios jumpers macho x femea.
Conexões do teclado com Arduíno;
Conexões do Rele com Arduíno;
O teclado terá os seguintes comandos;
Tecla 1 -> liga 1° rele.
Tecla 2 -> liga 2° rele.
Tecla 3 -> liga 3° rele.
Tecla 4 -> liga 4° rele.
Tecla 5 -> desliga 1° rele.
Tecla 6 -> desliga 2° rele.
Tecla 7 -> desliga 3° rele.
Tecla 8 -> desliga 4° rele.
Tecla (*) -> liga todos os reles.
Tecla (#) -> desliga todos os reles.
Veja o vídeo.
Copie o código fonte abaixo para seu Arduíno.
//-----------------------------------------Inicio do código-------------------------------------//
#include <Keypad.h> // Biblioteca Keypad.
const byte ROWS = 4; // Definição das linhas .
const byte COLS = 4; // Definição das colunas.
// Define o Keypad (mapa do teclado).
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
// Conecta o teclado matricial em linha 0, linha 1, linha 2, linha 3 e linha 4 dos pinos do arduino.
byte rowPins[ROWS] = { 9, 8, 7, 6 };
// Conecta o teclado matricial em coluna 0, coluna 1, coluna 2, coluna 3 e coluna 4 do arduino.
byte colPins[COLS] = { 5,4,3,2 };
// Cria um objto Keypad.
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
//-------------Variaveis dos reles-------------//
#define Rele1 10
#define Rele2 11
#define Rele3 12
#define Rele4 13
void setup()
{
//---------Define rele como saida-----------------//
pinMode(Rele1,OUTPUT);
pinMode(Rele2,OUTPUT);
pinMode(Rele3,OUTPUT);
pinMode(Rele4,OUTPUT);
// Define o pino 13 como sendo de saída.
//digitalWrite(Rele1, HIGH); // incializa com o led ligado.
Serial.begin(9600); // Inicia o Serial Monitor.
}
void loop()
{
char key = kpd.getKey();
if(key) // CVerifica se um botão foi precionado.
{
switch (key)
{
case '1': // Caso seja precionado botao 1.
digitalWrite(Rele1, HIGH); // o rele 1 liga.
break; // Parada, aguardando precionar outro botão.
case '2':
digitalWrite(Rele2, HIGH);
break;
case '3':
digitalWrite(Rele3, HIGH);
break;
case '4':
digitalWrite(Rele4, HIGH);
break;
case '5':
digitalWrite(Rele1, LOW);
break;
case '6':
digitalWrite(Rele2, LOW);
break;
case '7':
digitalWrite(Rele3, LOW);
break;
case '8':
digitalWrite(Rele4, LOW);
break;
//------Se (*) for pressionado desliga os 4 reles---//
case '*':
digitalWrite(Rele1, HIGH);
digitalWrite(Rele2, HIGH);
digitalWrite(Rele3, HIGH);
digitalWrite(Rele4, HIGH);
break;
//------Se (#) for pressionado liga os 4 reles---//
case '#':
digitalWrite(Rele1, LOW);
digitalWrite(Rele2, LOW);
digitalWrite(Rele3, LOW);
digitalWrite(Rele4, LOW);
break;
default:
Serial.println(key);
}
}
}
//-----------------------------------------Fim do código-------------------------------------//
Parabéns projeto maravilhoso mas muito bacana gostei mesmo
ResponderExcluirParabéns muito bom
ResponderExcluirObrigado Agesandro Peres
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirArduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Placa:"Arduino Uno"
ResponderExcluirIn file included from C:\Users\thale\OneDrive\Documentos\Arduino\teclado\teclado.ino:1:0:
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\libraries\Keyboard\src/Keyboard.h:29:2: warning: #warning "Using legacy HID core (non pluggable)" [-Wcpp]
#warning "Using legacy HID core (non pluggable)"
^~~~~~~
teclado:55:1: error: 'Keypad' does not name a type
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
^~~~~~
C:\Users\thale\OneDrive\Documentos\Arduino\teclado\teclado.ino: In function 'void loop()':
teclado:105:14: error: 'kpd' was not declared in this scope
char key = kpd.getKey();
^~~
C:\Users\thale\OneDrive\Documentos\Arduino\teclado\teclado.ino: In function 'void setup()':
teclado:224:6: error: redefinition of 'void setup()'
void setup()
^~~~~
C:\Users\thale\OneDrive\Documentos\Arduino\teclado\teclado.ino:77:6: note: 'void setup()' previously defined here
void setup()
^~~~~
C:\Users\thale\OneDrive\Documentos\Arduino\teclado\teclado.ino: In function 'void loop()':
teclado:248:6: error: redefinition of 'void loop()'
void loop()
^~~~
C:\Users\thale\OneDrive\Documentos\Arduino\teclado\teclado.ino:101:6: note: 'void loop()' previously defined here
void loop()
^~~~
teclado:252:14: error: 'kpd' was not declared in this scope
char key = kpd.getKey();
^~~
exit status 1
'Keypad' does not name a type
Este relatório teria mais informações com
"Mostrar a saida detalhada durante a compilação"
opção pode ser ativada em "Arquivo -> Preferências"
Como resolvo isso ?