Crea tu propio velocímetro - Parte 3

Ok, ya tenemos el display que nos muestra los números y tenemos el control que controla el display, pero...¿Cómo medimos la velocidad? Bueno, hay varias opciones...Podriamos ocupar un acelerómetro (chip que mide la aceleración a la que se ve expuesta), fotoresistencias adosadas a la rueda trasera y unos cuantos leds, pero lo más económico y efectivo es ocupar un efecto de sensor Hall, es muy barato y además es muy estable y fácil de usar. Lo más dificil es conseguirlo, en Chile no hay muchos lugares donde lo vendan... en Olimex no lo tienen y en Riab lo tienen ocacionalmente asique te recomiendo que en caso de encontrarlo en stock compres varias unidades ya que para cualquier proyecto que involucre ruedas y velocidad, este sensor es indispensable.


El sensor funciona de la siguiente manera...




  • El pin de más a la izquierda va conectado a Vcc, este en general puede variar entre 5 volts y 15 volts según recuerdo, aunque dependerá del fabricante, revisa el datasheet (pin 1)
  • El pin de al medio va conectado a tierra (pin 2)
  • El pin de más a la derecha va conectado a la entrada (input) de nuestro attiny2313 (pin 3)
  • Debes agregar una resistencia de 1 k o mayor entre el pin de más a la izquierda y el pin de más a la derecha

Perfecto, una vez conectado, debes saber esto. Cuando el sensor no se ve expuesto a campo magnético, el pin 3 entrega un estado HIGH, es decir, si no hay imán cerca, el pin 3 valdrá Vcc. En cambio, si el sensor se ve expuesto a campo magnético, el pin 3 se encuentra en estado LOW, o sea, 0 volts

Entonces, hagamos un pequeño experimento... Hagamos que los dígitos del display cambien al pasar un imán cerca del sensor. El código es libre (invéntalo tú),pero te daré unas pistas...

En mikroC, para declarar un pin como input debes hacer

DDRX.BY=0; // X es el tipo de puerto, que puede ser A,B,D, e Y es el número

y para leer el status del pin debes hacer

status = PINB.XY

Y el resultado debería ser algo como esto



Ok, ya estamos casi listos, si ya tienes listo funcionando lo último, ahora es sólo cosa de código para que tu medidor de velocidad este funcionando perfectamente, era fácil, no?

El wiring a seguir es el siguiente




Pues bien, el código final está aquí
y el archivo .hex está aquí (en Github)

Y el resultado de todo este trabajo es esto




¿Nada mal he? Se pueden hacer muchas mejoras aún, pero quizás a la vuelta de vacaciones, por lo menos ahora sabemos a que velocidad vamos.
Saludos.

Acá un pequeño Bonus!
P.D: Si hay cosas como soldar o programar chips que no sabes, mandame un e-mail y haré un video tutorial explicando lo que me piden. Mi correo es sisalina@uc.cl