Neste artigo vamos mostrar um pequeno teste do uso do Encoder Rotativo KY-040.
Novamente, a Placa Base utilizada como controladora é a Arduino Uno, que foi utilizada em conjunto com o Protoshield compatível com a mesma. Todos os itens utilizados podem ser adquiridos em nossa loja.
Este encoder trabalha com um disco óptico. Ele tem dois sinais de saída chamados de Clock (CLK) e Data (DT). Além de um sinal que vem do botão (SW) embutido no encoder.
O objetivo deste teste é ler estas saídas e fazer o programa identificar se o encoder está girando no sentido horário ou anti-horário, e quantos degraus ele se deslocou.
Este é um encoder que identifica 20 passos/360°. Ou seja, a cada 18° temos a identificação de um passo.
As duas saídas (CLK e DT) estão defasadas entre si em 90° o que permite a detecção do sentido de rotação. E estão ativas quando em nível baixo.
Para os testes utilizamos:
Arduino Uno
Shield Placa Expansora para Arduino UNO
Módulo Encoder Rotativo KY-040
Capacitor de poliéster 100nF
Resistor 10kΩ
Fios para ligação (Sugestão: Cabo Jumper MACHO/FÊMEA 20cm 40 vias);
Os capacitores de 100nF são usados para efeitos de "debounce" (um artifício para que o Arduino identifique corretamente cada passo do encoder, de maneira que seja contabilizado um único pulso a cada passo) para os três pinos de saída do módulo (DT, CLK e SW).
No módulo já está incluso 2 resistores (SMD) de pull-up que garantem sinal alto (+5V) nas saídas, que vão abaixo (0V) quando estão ativas. Exceto na saída do push button (SW) que tem o espaço mas não tem o resistor instalado (porém, esse resistor pode ser adquirido na nossa loja). Confira na imagem abaixo.
Após realizada as conexões dos capacitores e resistor, podemos ligar o módulo ao Arduino. Lembrando que o Arduino utilizado foi o modelo Arduino Uno.
As Conexões devem ser feitas da seguinte forma:
Além disso, foram conectados dois LED's (com os resistores apropriados) aos pinos D5 e D6 do Arduino, para facilitar a indicação da direção do giro.
Segue abaixo uma imagem com o circuito montado.
Confira abaixo um vídeo com o funcionamento do projeto.
Baixe aqui o sketch com a programação do Arduino para esse projeto.
Segue abaixo o código fonte utilizado nesse projeto.
Encoder Rotativo KY-040 |
Novamente, a Placa Base utilizada como controladora é a Arduino Uno, que foi utilizada em conjunto com o Protoshield compatível com a mesma. Todos os itens utilizados podem ser adquiridos em nossa loja.
Este encoder trabalha com um disco óptico. Ele tem dois sinais de saída chamados de Clock (CLK) e Data (DT). Além de um sinal que vem do botão (SW) embutido no encoder.
O objetivo deste teste é ler estas saídas e fazer o programa identificar se o encoder está girando no sentido horário ou anti-horário, e quantos degraus ele se deslocou.
Este é um encoder que identifica 20 passos/360°. Ou seja, a cada 18° temos a identificação de um passo.
As duas saídas (CLK e DT) estão defasadas entre si em 90° o que permite a detecção do sentido de rotação. E estão ativas quando em nível baixo.
Para os testes utilizamos:
Arduino Uno
Shield Placa Expansora para Arduino UNO
Módulo Encoder Rotativo KY-040
Capacitor de poliéster 100nF
Resistor 10kΩ
Fios para ligação (Sugestão: Cabo Jumper MACHO/FÊMEA 20cm 40 vias);
Os capacitores de 100nF são usados para efeitos de "debounce" (um artifício para que o Arduino identifique corretamente cada passo do encoder, de maneira que seja contabilizado um único pulso a cada passo) para os três pinos de saída do módulo (DT, CLK e SW).
No módulo já está incluso 2 resistores (SMD) de pull-up que garantem sinal alto (+5V) nas saídas, que vão abaixo (0V) quando estão ativas. Exceto na saída do push button (SW) que tem o espaço mas não tem o resistor instalado (porém, esse resistor pode ser adquirido na nossa loja). Confira na imagem abaixo.
Após realizada as conexões dos capacitores e resistor, podemos ligar o módulo ao Arduino. Lembrando que o Arduino utilizado foi o modelo Arduino Uno.
As Conexões devem ser feitas da seguinte forma:
Encoder KY-040 | Arduino |
---|---|
GND | GND |
+ | 5v |
SW | D4 |
DT | D3 |
CLK | D2 |
Além disso, foram conectados dois LED's (com os resistores apropriados) aos pinos D5 e D6 do Arduino, para facilitar a indicação da direção do giro.
Segue abaixo uma imagem com o circuito montado.
Confira abaixo um vídeo com o funcionamento do projeto.
Baixe aqui o sketch com a programação do Arduino para esse projeto.
Segue abaixo o código fonte utilizado nesse projeto.
//############### ELETRODEX ELETRÔNICA ###############
// Programa de teste do Módulo Encoder KY-040
//
// As Conexões devem ser feitas da seguinte forma:
// Módulo Encoder | Arduino
// GND | GND
// + | 5v
// SW | D4
// DT | D3
// CLK | D2
// LED 1 | D5
// LED 2 | D6
//
// Lembrando que devem ser inseridos os capacitores de 100nF entre
// os pinos SW, DT e CLK do Encoder e o pino GND do Arduino, e um resistor de 10K Ohms
// entre o pino SW do Encoder e o pino 5v do Arduino
const int interruptA = 0; // Interrupt 0 (pin 2)
const int interruptB = 1; // Interrupt 1 (pin 3)
int CLK = 2; // PIN2
int DAT = 3; // PIN3
int BUTTON = 4; // PIN4
int LED1 = 5; // PIN5
int LED2 = 6; // PIN6
int COUNT = 0;
void setup ()
{
attachInterrupt (interruptA, RoteStateChanged, FALLING);
//attachInterrupt (interruptB, buttonState, FALLING);
pinMode (CLK, INPUT);
digitalWrite (2, HIGH); // Pull High Restance
pinMode (DAT, INPUT);
digitalWrite (3, HIGH); // Pull High Restance
pinMode (BUTTON, INPUT);
digitalWrite (4, HIGH); // Pull High Restance
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
Serial.begin (9600);
}
void loop ()
{
if (! (digitalRead (BUTTON)))
{
COUNT = 0;
Serial.println ("STOP COUNT = 0");
digitalWrite (LED1, LOW);
digitalWrite (LED2, LOW);
delay (2000);
}
Serial.println (COUNT);
}
// -------------------------------------------
void RoteStateChanged () // When CLK FALLING READ DAT
{
if (digitalRead (DAT)) // When DAT = HIGH IS FORWARD
{
COUNT++;
digitalWrite (LED1, HIGH);
digitalWrite (LED2, LOW);
delay (200);
}
else // When DAT = LOW IS BackRote
{
COUNT --;
digitalWrite (LED2, HIGH);
digitalWrite (LED1, LOW);
delay (200);
}
}
Conte-nos suas experiências utilizando os produtos adquiridos em nossa loja!
Até o próximo artigo!
BOM DIA.
ResponderExcluirONDE COMPRAR UM SISTEM DESTE PRONTO PARA USAR?
BOM DIA.
ResponderExcluirONDE COMPRAR UM SISTEM DESTE PRONTO PARA USAR?
Os produtos que foram testados você pode adquiri-los em nosso site.
ResponderExcluir