3
13/10/13 Tutorial: como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) labdegaragem.com/profiles/blogs/tutorial-como-utilizar-encoder-rotativo-com-arduino 1/3 Tutorial: como utilizar encoder rotativo com Arduino O encoder rotativo é um dispositivo de medição angular. Com ele é possível medir com precisão a rotação de motores. Alguns deles contém um botão pressionando o eixo. Neste tutorial, vamos mostrar como utilizá-lo com Arduino. Este encoder rotativo contém 7 pinos: dois para fixação, dois para o botão e três para medição de rotação. Vamos apenas utilizar os três pinos para medição de rotação. Para maiores informações sobre o encoder, clique aqui ! Primeiramente, faça a ligação abaixo: Postado por Laboratório de Garagem em 24 julho 2012 às 15:00 Exibir blog

Tutorial_ como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Embed Size (px)

Citation preview

Page 1: Tutorial_ como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

13/10/13 Tutorial: como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

labdegaragem.com/profiles/blogs/tutorial-como-utilizar-encoder-rotativo-com-arduino 1/3

Tutorial: como utilizar encoder rotativo comArduino

O encoder rotativo é um dispositivo de medição angular. Com ele é possível medir com precisão a rotação demotores. Alguns deles contém um botão pressionando o eixo. Neste tutorial, vamos mostrar como utilizá-locom Arduino. Este encoder rotativo contém 7 pinos: dois para fixação, dois para o botão e três para medição derotação. Vamos apenas utilizar os três pinos para medição de rotação. Para maiores informações sobre oencoder, clique aqui!

Primeiramente, faça a ligação abaixo:

Postado por Laboratório de Garagem em 24 julho 2012 às 15:00

Exibir blog

Page 2: Tutorial_ como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

13/10/13 Tutorial: como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

labdegaragem.com/profiles/blogs/tutorial-como-utilizar-encoder-rotativo-com-arduino 2/3

Abra a IDE do Arduino e conecte seu Arduino no PC. Passe a programação abaixo:

/* Rotary encoder read example */#define ENC_A 8#define ENC_B 9#define ENC_PORT PINB

void setup(){/* Setup encoder pins as inputs */pinMode(ENC_A, INPUT);digitalWrite(ENC_A, HIGH);pinMode(ENC_B, INPUT);digitalWrite(ENC_B, HIGH);Serial.begin (9600);Serial.println("Start");

}

void loop(){static uint8_t counter = 0; //this variable will be changed by encoder inputint8_t tmpdata;/**/tmpdata = read_encoder();if( tmpdata ) {Serial.print("Counter value: ");Serial.println(counter, DEC);

counter += tmpdata;

}

}

Page 3: Tutorial_ como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

13/10/13 Tutorial: como utilizar encoder rotativo com Arduino - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

labdegaragem.com/profiles/blogs/tutorial-como-utilizar-encoder-rotativo-com-arduino 3/3

Tags: arduino, encoder, rotativo, tutorial

Exibições: 4776

/* returns change in encoder state (-1,0,1) */int8_t read_encoder(){static int8_t enc_states[] = {0,-1,1,0,1,0,0,-1,-1,0,0,1,0,1,-1,0};static uint8_t old_AB = 0;/**/old_AB = old_AB 2; //remember previous stateold_AB |= ( ENC_PORT & 0x03 ); //add current statereturn ( enc_states[( old_AB & 0x0f )]);}

Selecione a versão do seu Arduino (UNO, Duemilanove, etc) e a porta (COMx, ttyUSBx, ttyACMx, etc) e cliqueem UPLOAD.

Abra o Serial Monitor e configure o baud para 9600. A palavra "Start" aparecerá. Gire o encoder para um lado epara o outro. A imagem abaixo mostra os dados que chegam do encoder:

Ao girar o encoder, o Arduino detecta a variação de pulso (-1,0,1) que chega dos pinos 8 e 9 e os converte eminteiro e mostra no Serial Monitor.

E é isso! Esperamos que tenha gostado! Se tiver dúvidas, poste aqui neste blog! Para sugestões detutoriais, clique aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outrosgaragistas, clique aqui e aqui! Até a próxima!

Referências:

http://en.wikipedia.org/wiki/Rotary_encoder

http://www.circuitsathome.com/mcu/programming/reading-rotary-encode...

http://www.sparkfun.com/products/9117

http://arduino.cc/playground/Main/RotaryEncoders