Tacómetro infrarrojo utilizando Arduino (3 / 4 paso)

Paso 3: Escribir el código

El código es muy similar a la aquí: http://playground.arduino.cc/Learning/Tachometer, de hecho escribí basado en ese código. Sólo que en lugar de contar cuantas veces los sensores están diciendo Hola mutuamente cada cierto periodo, contar cuánto tiempo hasta que el otro pueden ver otra vez después de la última reunión. Además, me parece que usando micros(), que devuelve el microcontrolador tiempo en microsegundos, da un resultado significativamente más preciso que si usé millis() en el mismo lugar.

Aquí está el código:

 int sensorvalue; int state1 = HIGH; int state2; float rps; float rpm; long prevMillis = 0; long interval = 200; long currentTime; long prevTime = 1; long diffTime; int sensorthreshold = 30; // this value indicates the limit reading between dark and light, // it has to be tested as it may change acording to the // distance the leds are placed. // to see what number is good, check the sensorvalue variable value // as printed out in the serial monitor void setup() { Serial.begin(9600); pinMode(13,OUTPUT); // assign pin 13 led as indicator because we cannot se the IR light } void loop() { sensorvalue = analogRead(0); // read from pin 0 if(sensorvalue < sensorthreshold) state1 = HIGH; else state1 = LOW; digitalWrite(13,state1); // as iR light is invisible for us, the led on pin 13 // indicate the state of the circuit. if(state2!=state1){ //counts when the state change, thats from (dark to light) or //from (light to dark), remember that IR light is invisible to us. if (state2>state1){ currentTime = micros(); // Get the arduino time in microseconds diffTime = currentTime - prevTime; // calculate the time diff from the last meet-up rps = 1000000/diffTime; // calculate how many rev per second, good to know rpm = 60000000/diffTime; // calculate how many rev per minute unsigned long currentMillis = millis(); // print to serial at every interval - defined at the variables declaration if(currentMillis - prevMillis > interval){ // see if now already an interval long prevMillis = currentMillis; Serial.print(rps); Serial.print(" rps "); Serial.print(rpm); Serial.println(" rpm"); } prevTime = currentTime; } state2 = state1; } /* //only for testing to determine the sensorthreshold value delay(500); Serial.println(sensorvalue); */ } 

Lo difícil fue en definir el valor de sensorthreshold. Hice esto: comentar la rutina principal y quite el comentario de la sección de prueba como se ve en los siguientes códigos. Arduino de manera escribir a monitor serial y actualizar el valor del sensor en la pantalla cada 500 ms. compilar y subir tu código a la placa, luego abra al monitor serie. Girar y parar la rueda para que los sensores están bloqueados y mirar qué número aparece en el monitor serial (en mi caso alrededor de 37-40), girar y parar donde los sensores pueden vernos a través de la ventana y mirar qué número en la pantalla (en mi caso 14-19). Entonces se fija un número como valor de la variable sensorthreshold que ahora sabes lo que es un buen número para distinguir entre "ver" o "no ver" (puse 30 en mi caso, porque mi "no ven" es de 37-40 y "ve" es de 14-19, entre 20-36 puede hacer la misma función también, pero no realmente seguro porque el valor puede a veces ser 35 o 21 debido a la interferencia de las luces de ambiente en las conexiones eléctricas, u otras cosas que sinceramente no entiendo sobre). Por lo tanto, para el corto, cheque el número cuando los sensores de IR a ver y comprobarlo cuando los sensores están bloqueados, entonces encuentran a un buen número en el medio que está seguro distinguirá entre "ver" y "no ver".

A continuación, la modificación del código para comprobar el buen número de variable sensorthreshold:

 ... void loop() { sensorvalue = analogRead(0); // read from pin 0 /* if(sensorvalue < sensorthreshold) ... state2 = state1; } */ // only for testing to determine the sensorthreshold value delay(500); Serial.println(sensorvalue); } 

Artículos Relacionados

Lectura de RPM del tacómetro de infrarrojos basados en Arduino con GUI de MATLAB

Lectura de RPM del tacómetro de infrarrojos basados en Arduino con GUI de MATLAB

Hola otra vez, un par de días atrás publiqué un instructable de tacómetro infrarrojo usando arduino, entonces me di cuenta que en lugar de leer el valor RPM en el monitor serial IDE de Arduino, presentando las RPM en un marco de adecuada sería más al
Tacómetro RPM Digital DIY | Contador RPM con Arduino

Tacómetro RPM Digital DIY | Contador RPM con Arduino

Hola amigos, escribo este artículo para compartir mi último proyecto DIY RPM tacómetro o se pueden decir cuentarrevoluciones. Al crear un proyecto muchas veces tenemos que controlar la velocidad del motor y necesitamos tacómetro RPM que puede contar
Tacómetro óptico basado en Arduino

Tacómetro óptico basado en Arduino

hace más de diez años puse una página web con instrucciones detalladas sobre la construcción de un motor eléctrico simple basado en una de serie de TV mundo de Beakman. Llamó la página "Motor de eléctrico de Beakman" y durante los años que ha te
Cómo hacer un termómetro utilizando Arduino y LM35

Cómo hacer un termómetro utilizando Arduino y LM35

hoy voy a mostrarte cómo hacer un termómetro con Arduino y LM35 sensor de temperatura, pantalla LCD, en un protoboard conectado con cables. Mostrará la temperatura en grados Celsius y Fahrenheit.Raíz de AndroPaso 1: Requisitos:- Esta es la lista de p
Tacómetro de bici DIY

Tacómetro de bici DIY

Voy a mostrar cómo construir un velocímetro de bicicleta. Muestra la velocidad,la velocidad media, la temperatura, el tiempo de viaje y la distancia total. Se puede cambiar utilizando el botón. Además, la velocidad se muestra en un tacómetro. He cons
Medida de RPM - tacómetro óptico

Medida de RPM - tacómetro óptico

Este Instructable le mostrará cómo hacer un Tacómetro óptico Digital portátil usando un Arduino Uno.En vez de un sensor de ranurado, tiene un sensor de reflexión. Por lo tanto:1. usted no tiene que preocuparse por el espesor del rotor2. el número de
Termómetro infrarrojo portátil

Termómetro infrarrojo portátil

Este Instructable demostrará cómo hacer un termómetro auricular usable, móvil. Este termómetro utiliza un sensor de temperatura infrarrojo y depende de la radiación timpánica a las lecturas de temperatura adquirida. Estas lecturas serán capaces de al
Telémetro infrarrojo caseros (Similar a Sharp GP2D120

Telémetro infrarrojo caseros (Similar a Sharp GP2D120

aquí es mi instructable sobre cómo construir un corto muy sencillo (para algunos!) sensor de infrarrojos telémetro/gama gama. Cámaras de telémetro infrarrojo son muy útiles en un número de proyectos. La mayoría de ellos provienen de detección de obst
LinkIT Portable un tacómetro sin contacto

LinkIT Portable un tacómetro sin contacto

Uso de tacómetro en nuestra industria. Así como hacer un tacómetro para ver en casa con los recursos disponibles.Paso 1: Materails necesaria 1) Linkit una tabla con la batería.2) infra rojo LED y diodo de la foto - 1no.3) 16 x 2 pantalla de LCD Seria
Tacómetro

Tacómetro

Mi proyecto es un tacómetro controlado por microcontrolador MSP430, estoy documentando mi proceso porque al diseñar este tacómetro aprecié todos los recursos de la interfaz del msp430 y LCD 16 x 2 que pude encontrar.Paso 1: Descripción Un tacómetro e
Un automático de seguimiento solar motorizado ventana ciega adaptación utilizando Arduino

Un automático de seguimiento solar motorizado ventana ciega adaptación utilizando Arduino

Cuenta edificios de 20-40% del total de energía utilice en los países desarrollados. Cortinas de ventana (o persianas) pueden ayudar a reducir la energía del edificio uso y mejorar el confort visual (es decir, reducción de fulgor y aumentar la luz de
Cómo instalar un tacómetro

Cómo instalar un tacómetro

en este instructable le mostraré cómo he instalado un tacómetro del mercado de accesorios en mi 91 Chevrolet S-10. Tacómetros son una gran herramienta para su vehículo si usted disfruta de control de la velocidad del motor o de ralentí. De hecho, son
Un "registro" termómetro infrarrojo del PICAXE

Un "registro" termómetro infrarrojo del PICAXE

21 de julio editar - vea cómo utilicé el termómetro infrarrojo en mis experimentos de láser!Intro:Ya puede tener uno de esos termómetros IR muy útil... sólo apuntar, disparar, y lea la temperatura.  No ¿son grandes?  Tengo dos.Pero, ¿qué pasa si dese
Indicador digital de temperatura de velocímetro, tacómetro y motor

Indicador digital de temperatura de velocímetro, tacómetro y motor

este proyecto es tan complejo :)Tacómetro de LED de 1 (un)2-LED velocimetro (a la izquierda uno)Indicador de temperatura motor, RPM y velocidad en 3-digital (siete segmentos). Estoy cambiando entre las 3 entradas utilizando uno de los interruptores r