Tacómetro óptico con Arduino y LCD
Tacómetro óptico con Arduino y LCD
Lista de piezas;
1) 1x 16 × 2 pantalla LCD paralela (compatible con controlador Hitachi HD44780)
2) 1x Arduino
3) 1x potenciómetro de 10k
4) 1x 10k resistencia
5) 1x LED IR
6) 1x Fototransistor IR
7) Cable Puente
Instrucción;
1) Conecte todo cable de puente como se muestra en el diagrama.
2) Conectar LED IR al pin digital 13.
/*
Tachómetro Óptico
*
* Utiliza un LED IR y un fototransistor IR para implementar un tacómetro óptico.
* El LED IR está conectado al pin 13 y funciona continuamente.
* El pin 2 (interrupción 0) está conectado a través del detector IR.
*
* Código basado en: [Link]/id/Arduino-Based-Optical-Tachometer/
* Codificado por: [Link]
*/
unsigned intrpm;
unsigned longtimeold;
#include <LiquidCrystal.h>
// inicializar la biblioteca con los números de los pines de la interfaz
LiquidCrystallcd(7, 8, 9, 10, 11, 12);
voidrpm_fun()
{
//Cada rotación, esta función de interrupción se ejecuta dos veces, así que ten eso en cuenta
para
//calculando RPM
//Actualizar cuenta
rpmcount++;
}
voidsetup()
{
[Link](16, 2); // inicializar el LCD
//La interrupción 0 es el pin digital 2, así que es donde está conectado el detector IR
//Disparadores enFALLANDO (cambio de ALTO a BAJO)
adjuntarInterrupción(0, rpm_fun, CAÍDA);
Encender el LED IR
pinMode(ledPin, SALIDA);
digitalWrite(ledPin,HIGH);
rpmcount = 0;
rpm = 0;
timeold = 0;
}
bucleVacío()
{
Actualizar RPM cada segundo
retraso(1000);
No procesar interrupciones durante los cálculos
desconectarInterrupción(0);
//Tenga en cuenta que esto sería 60*1000/(milisegundos() - tiempoantiguo)*cuentaremisiones si la interrupción
//sucedió una vez por revolución en lugar de dos. Se podrían usar otros múltiplos.
//para hélices o ventiladores de múltiples palas
[Link]();
[Link]("RPM=");
[Link](rpm);
Reiniciar el procesamiento de interrupciones
Este lector de rpm fue probado con 2 hélices en el motor. Esta medida de corte del
haz de infrarrojos contará como 1 revolución. Puedes modificar esta línea para
adaptarse a su uso;
rpm = 30 * 1000 / (milisegundos () - tiempoanterior) * cuentarpm;
Velocidad=(diámetro*3.1416)*rmp;