Hola a todos !!! quería hacer un pequeño aporte al foro ,un proyecto en el que estoy hace un par de meses .Antes que nada quiero contarles que no me dedico a esto ,mi rubro es la electricidad naval, aunque siempre me gusto la electrónica, por esas cuestiones de la vida nunca pude estudiar ni dedicarme a ello, pero bueno hace 2 años aproximadamente me propuse tomármelo como hobbie , tome un curso rápido de 3 meses de electrónica básica y paralelamente me puse a aprender programación viendo tutoriales por internet , así conocí este maravilloso foro donde encontré gente espectacular con mucha vocación para enseñar y mucho respeto en sus comentarios ,a los cuales estoy enormemente agradecido. Ya que mis conocimientos son muy limitados como para poder ayudar a las personas que como yo buscan ayuda en el foro, eh decidido presentar este proyecto como aporte y ojalá pueda servirle a alguien.
Se trata de un cuenta vueltas con cuenta horas realizado con un pic 16f876a y una pantalla lcd 2x16. La idea de esta aplicación en mi caso , es para ser usada en motores diésel estacionarios que impulsan generadores de 380v, concretamente grupos electrógenos .El sensado de las vueltas se realiza desde el terminal W del alternador que utiliza el propio motor para cargar su batería .La cuenta de las horas se visualiza en el display en dos modos: total y parcial ambos cuentahoras se pueden resetear ingresando en el menú. También se podrá grabar un parámetro de cantidad de horas a las que queremos realizar un mantenimiento
El programa cuenta de 3 menús:
Menú principal:
Presionando el pulsador que se encuentra en el pin(C3) me desplazo por el menú principal el cual me mostrará:
1º Lectura de las vueltas del motor en números grandes
2º Cuenta horas parcial y total
3º Aviso de, a cuantas horas se realizará el próximo mantenimiento (el cual fue grabado en el menú de configuración)
4º Regulación de la luz del display
5º Entrada al menú de configuraciones
Menú de configuraciones:
A este menú se puede ingresar solo estando en el punto 5 del menú principal y presionando el pulsador que se encuentra en el pin (C6) y luego para desplazarme dentro de este menú continuo presionando el pin (C3) como en el menú principal
1º Nos muestra la programación de la cantidad de horas a las que queremos que nos muestre una alerta en la pantalla principal, avisándonos de un mantenimiento, con el pulsador que se encuentra en el pin (C4) incrementamos el número y con (C5) decrementamos , cuando tenemos la cantidad de horas deseadas ,presionamos el pulsador que se encuentra en el pin (C6)y este grabará en la memoria el parámetro seleccionado.
2º Ajuste del cuenta vueltas, debido a que las vueltas son sensadas desde el alternador ,la rpm del motor dependerán le la relación de poleas que este tenga, con lo cual se deberá ajustar .En este punto nos muestra dos lecturas el cuenta vueltas actual y el ajuste ,este último se refiere a la cantidad de pulsos que nos lee el pic por una variable que esta inicializada en 10 ,con el pulsador que se encuentra en el pin (C4) incrementamos esta variable y con (C5) decrementamos ,con un valor de 0,02 , cuando tenemos las RPM deseadas, presionamos el pulsador que se encuentra en el pin (C6)y este grabará en la memoria el valor de la variable ,mostrándonos de esta manera ,cuando regresemos al menú principal la lectura ya ajustada en números grandes
3º Reset del cuenta horas total presionando el pulsador que se encuentra en el pin (C6) se reestablecerá el cuentahoras total a cero
4º Reset del cuenta horas parcial presionando el pulsador que se encuentra en el pin (C6) se reestablecerá el cuentahoras parcial a cero
Volviendo a presionar (C3) saldrá de este menú mostrando el primer punto del menú principal
Menú oculto :
Solo estando dentro del punto 4 del menú de configuraciones y pulsando 2 veces (C5) ingreso en este menú, el cual me mostrará un ajuste de estabilidad del cuenta vueltas, aquí visualizó las RPM, el contador de pulsos, una variable (X) que es un promedio de la cantidad de pulsos y la variable (A) que es la cantidad de veces que quiero hacer el promedio. Cuanto más aumente (A) más estable será el cuenta vueltas pero más lenta será su respuesta y viceversa.
El hardware:
El circuito está diseñado de la siguiente manera , posee 4 conectores de entrada:
Negativo
Positivo 12v, directo de batería que debió haber pasado por su correspondiente fusible
Positivo 12v desde la llave de contacto que cortará la alimentación solo de la pantalla lcd
Entrada de pulsos desde la W del alternador
Este circuito está preparado para detectar la falta de alimentación general, para el caso en el que se deba cambiar la batería del motor, no perder los datos de la cuenta de las horas. Cuando se detecta un flanco de bajada por el pin Rb0 se activa la interrupción externa y esta graba los datos del cuenta horas antes de perder totalmente la alimentación.
También detecta cuando el motor salga fuera de servicio y se quite el contacto del mismo desactiva la transmisión de datos al lcd así también como apaga la luz del display.
De no ser por la falta de alimentación general, el pic siempre estará alimentado esto permitirá que no se tenga que estar grabando datos permanentemente en la memoria y asi cuidar la misma.
Quiero agradecer enormemente al foro y en especial a CHALY29 y a KILLERJC quienes fueron los dos pilares fundamentales que me llevaron a hacer posible este proyecto, sin ellos no lo hubiese podido concretar, ellos no solo me guiaron y aconsejaron en este proyecto sino que me enseñaron muchísimas cosas que me servirán a futuro para otros proyectos. A ellos MUCHAS GRACIAS !!!!!!!!!!!!!!!!!!!
Bueno les dejo un video para que vean el funcionamiento y los archivos correspondientes para poder realizar el proyecto y cuando lo tenga terminado en su correspondiente caja o no sé todavía donde subiré fotos del proyecto terminado
Saludos y Muchas Gracias !!!