Paso 3: circuitos
Hay tres circuitos importantes para nuestro tacómetro hay: transmisor IR y receptor, motor dc y msp430 interfaz del lcd, (ver primero el sensor IR)
Motor de la C.C.
Consiste en el motor de la c.c. 3-5V con una pieza rectangular de acrílico (acrílico negro) sobre su eje, esta pieza no es simétrica, o sea tiene un lado largo. ¿Cuál es la pieza? Ver Figura 1.4, no se preocupe acerca de los dos motores, que realmente necesitamos es cómo poner la pieza de acrílico en la shaft(rotor), la pieza tiene que bloquear la luz entre el emisor y el receptor.
Figura 1.4
Sensor de infrarrojos (IR emisor y receptor)
El emisor siempre va a enviar una señal de IR al receptor que en estado normal está recibiendo casi todos IR luz de emisor (como podemos ver en Fig. 1.5), excepto cuando la pieza de acrílico está justo en el medio, cuando esto sucede la señal en el receptor va a cambiar.
Fig.1.5
Emisor está conectado a vcc y continuar a gnd a través de una resistor(Fig 1.3) 150 ohm, el receptor está conectado a vcc y continuar a tierra a través de un desplegable de resistencia (20 k ohmios) (Fig 1.3), cuando no es obstáculo entre el emisor y el receptor de la señal en el P1.1 es el vcc de tensión menos voltaje del receptor (generalmente 0,7 voltios), a continuación, P1.1 señal será un alto , una lógica de '1', cuando es una señal P1.1 obstáculo es conectado a tierra, es '0' lógica.
Entonces necesitamos leer los ceros, significa que va a contar los ceros, porque la señal es cero cuando la pieza de acrílico pasan entre el receptor y emitte; Figura 1.6 muestra la salida del sensor IR cuando el motor está funcionando
Figura 1.6 a. P1.1 señal b.DC motor trabajo, aviso de que la paz de acrílico está pasando a través del sensor.
Aquí es cuando la salida del microcontrolador un contador que cuenta las veces que el P1.1 es cero, es simple como una interrogación el perno y además una unidad para alguna variable, el programa realmente utilizar una interrupción de flanco descendente a la estrella de la cuenta en un intervalo de 0,25 second.the siguiente parte de código muestra la variable "count" se incrementa cada vez que es un flanco descendente , "la cuenta" t es un int sin signo y es claro cuando pasan 0,25 segundos, después de esto la cuenta se multiplica por 240 para obtener la velocidad de en minutos, (0.25s * 240 = 60s) entonces ("cuenta" * 240 = rpm), se pudo ver en el archivo.
rutina de interrupción del puerto
#pragma vector = PORT1_VECTOR
__interrupt void PUERTO_P1 (void) {}
cuenta = cuenta + 1;
P1IFG = 0 X 00; claro la bandera de interrupción
}
Ejemplo de código.