Neste projeto mostraremos como utilizar o Arduino como tacômetro. Tacômetro é um medidor de voltas que pode ser medido por RPM (rotações por minuto), RPS (rotações por segundo) e etc.
Neste projeto vamos utilizar:
Primeiramente faça a seguinte ligação:
Agora que foi feito as ligações acima, passe a programação:
#include <LiquidCrystal.h>
/*
* Optical Tachometer
*
* Uses an IR LED and IR phototransistor to implement an optical tachometer.
* The IR LED is connected to pin 13 and ran continually. A status LED is connected
* to pin 12. Pin 2 (interrupt 0) is connected across the IR detector.
*
*
*/
int ledPin = 13; // IR LED connected to digital pin 13
int statusPin = 6; // LED connected to digital pin 12
volatile byte rpmcount;
volatile int status;
unsigned int rpm;
unsigned long timeold;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void rpm_fun()
{
//Each rotation, this interrupt function is run twice, so take that into consideration for
//calculating RPM
//Update count
rpmcount++;
//Toggle status LED
if (status == LOW) {
status = HIGH;
} else {
status = LOW;
}
digitalWrite(statusPin, status);
}
void setup()
{
Serial.begin(9600);
//Interrupt 0 is digital pin 2, so that is where the IR detector is connected
//Triggers on FALLING (change from HIGH to LOW)
attachInterrupt(0, rpm_fun, FALLING);
lcd.begin(16,2);
//Turn on IR LED
//pinMode(ledPin, OUTPUT);
//digitalWrite(ledPin, HIGH);
//Use statusPin to flash along with interrupts
//pinMode(statusPin, OUTPUT);
rpmcount = 0;
rpm = 0;
timeold = 0;
status = LOW;
}
void loop()
{
//Update RPM every second
delay(1000);
lcd.clear();
//Don't process interrupts during calculations
detachInterrupt(0);
//Note that this would be 60*1000/(millis() - timeold)*rpmcount if the interrupt
//happened once per revolution instead of twice. Other multiples could be used
//for multi-bladed propellers or fans
rpm = 10*1000/(millis() - timeold)*rpmcount;
timeold = millis();
rpmcount = 0;
//Write it out to serial port
Serial.println(rpm,DEC);
lcd.print("RPM: ");
lcd.print(rpm);
//Restart the interrupt processing
attachInterrupt(0, rpm_fun, FALLING);
}
Agora abra IDE do Arduino, cole a programação e conecte o Arduino na porta USB do seu PC. Selecione a sua versão do sua placa Arduino (UNO, Duemilanove, etc) em "Tools/Board" e selecione a porta (COMx, ttyUSBx, ttyACMx) em "Tools/Serial Port". Clique em UPLOAD. Pronto! Seu tacômetro está pronto para ser usado!
E é isso! Esperamos que tenha gostado Caso tenha dúvidas, poste aqui neste post! Para sugestões de tutoriais, clique aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas, clique aqui e aqui, respectivamente! Até a próxima!
Referências:
http://arduino.cc/playground/Learning/Tachometer
http://www.pyroelectro.com/tutorials/tachometer_rpm_arduino/index.html
http://www.electronics-lab.com/blog/?p=19705
http://labdegaragem.com/profiles/blogs/tutorial-emissor-e-receptor-...
Comentar
Boa tarde alguém saberia falar qual a velocidade máxima por segundo eu conseguiria medir?
Será que eu conseguiria medir algo na casa dos 100kHz com Arduino ou Esp32?
Estou montando um tacometro para motor de passo e estou penando.
Esse tipo de tacometro citado nesse tópico, varia a precisão na medição de acordo com o RPM ...
Estou estudando sobre os Timers e Counters do ATmega328. E são os circuitos mais complexos desse microcontrolador. Tá russo.
Bom dia Henrique o sensor para simular o projeto sera um magnético.
Abraço
Bom dia !
Por favor, você poderia esplicar essa parte do código ?
rpm = 10*1000/(millis() - timeold)*rpmcount;
E por quê não tem nada ligado no pino 13 apesar de o código começar dizendo que o IR está ligado ao pino 13 ?
Boa noite Pessoal!
Fiz um pedido a dois dias atrás para um membro do lab e resolvi renovar o pedido para quem puder me ajudar com o código para o Arduíno uno,
Para que eu possa finalizar meu curso de eletrônica.
O que eu vou apresentar:
Uma sinaleira atuada pelo trafico de veículos funciona assim:
Temos as botoeiras como toda sinaleira para pedestre quando pressionada reduz o tempo do sinal verde dos veículos, na pratica não funciona assim pelo menos aqui no sul nunca eu vi esta redução....kkkkk.
Pretendo usar o projeto do tacômetro aqui do lab para implementação do meu TCC. Como ela conta voltas (RPM) minha ideia é usar uma esteira para simular uma avenida em movimento girando a 20 voltas por minuto = ( 20 carros por minuto) o tempo fica normal para pedestre (ex 60s), 50 voltas por minuto o tempo do sinal verde que era 60s passa para 90s aumentando o tempo de sinal verde dos carros pára melhor fluxo na via.
Abraço.
gostaria de saber qual o modelo do sensor receptor?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)