Tacómetro con Arduino

Standard

Que tal. Me reporto de nuevo, esta vez les comentare como realice un tacómetro para obtención de rpm utilizando el sensor magnético de efecto hall Allegro 1012. Este sistema resulto efectivo y es preciso en su estimación de datos.

Materiales necesarios:

  • Arduino UNO
  • Sensor de efecto hall Allegro1012
  • Cableado
  • Imán
  • Pegamento
  • Resistencias de 5600 ohms
  • Capacitor cerámico de 22uf.

Para utilizar el sensor de efecto hall de manera óptima es necesario colocar a la salida del sensor una resistencia de 5600 ohms de manera de pull Up y un capacitor cerámico de 22 uf en paralélelo. Dispuesto de esta manera el sensor de efecto hall estará en un estado alto y cambiara a estado bajo cuando se le acerque un iman.

Para este caso yo utilize un iman de neodimio de 1cm de diámetro, campo tornaba a estado bajo el sensor a una distancia aprox. De 1.5cm.

En la imagen de abajo se muestra el iman colocado en una catarina de bicileta cuando el sensor se encentra en estado alto.

11924864_10207814404346109_432471881_n

En la siguiente imagen se muestra el iman junto al sensor de efecto hall, tornando el sensor a estado bajo.

11935641_10207814404146104_1292965202_n

aun que el iman no se mueve de su lugar, es mejor colocarle una gota de pegamento para impedir que las altas revoluciones lo muevan del lugar lo suficiente como para que el sensor deje de funcionar.

A continuación el programa de Arduino:

volatile int contador = 0;

double rpm = 0;

unsigned long lastmillis = 0;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
void setup(){
 
Serial.begin(9600);
 
attachInterrupt(0, rpm_fan, FALLING); // en Arduino UNO la interrupcion 0 es el pin 2
 
}
 
void loop(){
 
if (millis() - lastmillis == 1000){
 
detachInterrupt(0);    //deshabilita le interrupción para realizar los cálculos
 
 
 
rpm = ((float)contador / 0.016666);  // 0.166=1/60
 
Serial.print("RPM =\t"); // imprime la palabra RPM y da un tab
 
Serial.print(rpm); // imprime el valor de rpm
 
 
 
 
 
contador = 0; // pone en 0 el contador
 
lastmillis = millis();
 
attachInterrupt(0, rpm_fan, FALLING); //inicia la interrupción
 
}
 
}
 
void rpm_fan(){ /*este código funcionara cuando el valor de interrupción 0 (pin 2) sea bajo.*/
 
contador ++;
 
}

Es todo por hoy, espero que les sirva este código en sus proyecto.

Cuéntame, ¿cómo lo harías tú? Estaré al pendiente de comentarios. Me despido de momento.

Échenle ganas gente.

3 thoughts on “Tacómetro con Arduino

    • Caleb De la Vara

      que tal, ese valor es el inverso de un segundo 1/60, para tener muestreos. debe entregarte un incremento aprox de 23 rpm. saludos

  1. Eduardo Cortez

    tengo un proyecto para la escuela y estoy haciendo un tacometro con arduino, lcd,y sensor hall mod ky033 como seria el codigo para que pueda registrarme las rpm ?

    si me pudieran apoyar

Leave a Reply

Your email address will not be published. Required fields are marked *