Na aula 9 do módulo 2 você vai aprender como utilizar o encoder rotacional com o Arduino.
Exercício:
#include <RotaryEncoder.h> #define CLK 2 // Define que o pino CLK do encoder está conectado ao pino 2 do Arduino #define DT 3 // Define que o pino DT do encoder está conectado ao pino 3 do Arduino #define SW 4 // Define que o pino SW do encoder está conectado ao pino 4 do Arduino int botao = 0; // Variável para verificar se o encoder foi pressionado int nova_posicao = 0; // Variável para verificar se o encoder foi rotacionado RotaryEncoder encoder(DT, CLK); // Cria um objeto chamado encoder void setup() { pinMode(SW, INPUT_PULLUP); // Define que o pino SW é uma entrada. Pullup puxa o nível de entrada para cima Serial.begin(9600); // Inicia a comunicação serial Serial.println("Gire o encoder...."); // Imprime no mintor serial a frase "Gire o encoder..." } void loop() { //Verifica se o botao do encoder foi pressionado botao = digitalRead(SW); if (botao != 1) { Serial.println("Botao pressionado"); while (digitalRead(SW) == 0) delay(100); } //Verifica se o enconder foi rotacionado static int posicao = 0; // Cria uma variável para verificar a posição atual do encoder encoder.tick(); // Checa a posição do encoder nova_posicao = encoder.getPosition(); // A variável nova_posicao recebe o novo valor da posição //Se a posicao foi alterada, mostra o valor no Serial Monitor if (posicao != nova_posicao) { Serial.println(nova_posicao); posicao = nova_posicao; } }