TODOPIC
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
26 de Noviembre de 2014, 08:00:30

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
351628 Mensajes en 39458 Temas por 41212 Usuarios
Último usuario: Daikataro
* Inicio Ayuda Buscar Calendario Ingresar Registrarse
Buscar en TodoPIC
+  TODOPIC
|-+  Microcontroladores PIC
| |-+  * PROYECTOS * (Moderadores: J1M, jfh900, MGLSOFT, Modulay, Sasián, LABmouse)
| | |-+  Mi primer proyecto: Tacómetro para automóvil. [Act:6/5/2010]
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] 2 Marcar como favorito Imprimir
Autor Tema: Mi primer proyecto: Tacómetro para automóvil. [Act:6/5/2010]  (Leído 6570 veces)
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« : 11 de Abril de 2010, 20:21:23 »

Hola nuevamente, después de practicar operaciones sencillas en un PIC por unos meses, me dieron ganas de realizar un proyecto propio de principio a fin, algo que no sea extremadamente complicado pero que me permita utilizar el ingenio para resolver los problemas que puedan aparecer.
Se me ocurrió la idea de realizar un "tacómetro" para automovil, basicamente medir las RPM del motor y mostrar el valor en un par de display's de 7 segmentos, adicionalmente una barra de leds que se encenderá progresivamente hasta llegar hasta un valor prefijado, y 3 botones de configuracion para poder setear el valor en el que se encenderá la barra.

Ejemplo del funcionamiento de la barra:



Formato que tengo pensado para el tablero:



Para el manejo de los display's pienso utilizar 2 CD4511 conectados a las mismas 4 patas del micro y, mediante 2 salidas, activar y desactivar los LATCH de cada uno para poder mostrar 2 dígitos utilizando solo 6 pines. No se si este método funcionará ya que nunca lo utilicé, ustedes que dicen? (Ejemplo: muestro el primer digito, activo el latch del primer CD4511, muestro el segundo dígito, activo el latch del segundo CD4511)

La señal de RPM en el prototipo será una onda cuadrada de 5V, pero en la realidad tendría que tomarla del borne negativo de la bobina. Alguien alguna vez realizó esta medición? Como se aisla el circuito de la alta tensión de la bobina?

El esquemático que tengo en mente para el circuito es el siguiente (me faltó agregar las resistencias correspondientes a los display's) :



Lo ven correcto? Que debería modificar?

La salida indicada como "CORTE" solo debe presentar un estado alto al llegar a cierto numero de RPM, esto se puede dejar para mas adelante.

La idea es comenzar de a poco con lo básico e ir agregando funciones.

El funcionamiento del circuito por si no me expliqué bien sería el siguiente:

- Leer valor de RPM
- Mostrar valor en display de 7 segmentos
- Si se ha llegado a un cierto valor encender el 1º led de la barra
- Si se ha llegado a un cierto valor encender el 2º led de la barra, etc.

Una vez resuelto eso le daré uso a los botones para, mediante un simple "menu", poder setear los valores de CORTE y encendido de la barra mientras esté el dispositivo en funcionamiento.

Disculpen si me excedí en la introducción pero quería ser lo mas explicativo posible. Gracias de antemano!
« Última modificación: 06 de Mayo de 2010, 11:18:06 por Cossworth » En línea
mtristan
Colaborador
PIC18
*****
Desconectado Desconectado

Argentina Argentina

Mensajes: 395



« Respuesta #1 : 11 de Abril de 2010, 21:45:19 »

.


Me parece un muy buen proyecto, aunque no pueda ayudarte mucho, porque de electricidad automotriz no se nada  tongue
Lo único que puedo decir es que podrías ahorrarte un CD4511 conectando las 7 salidas a ambos displays en paralelo.
(A ver si se entiende mi pseudo-esquemita para cada segmento del display):


                      _____ Salida CD4511
   Display1          |                                  Display2
   __|/|_____________|____________________________________|\|___
  |  |\|                                                  |/|   |
  |                                                             |
  |                                                              \|____/\/\/\_____ Selección Display2
   \|____/\/\/\_____ Selección Display1                          /|
   /|                                                           |
  |                                                             |
  |_____________________________________________________________|
  |
  |
 ---
///


Para seleccionar el display, usas un transistor conectado al cátodo común para cada uno (en el dibujito la línea "Seleccion del display" tiene conectada una resistencia y el transistor).
Saludos.

En línea

When you see a good move, look for a better one (Emanuel Lasker)
MLO__
Colaborador
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 4504

MLO


« Respuesta #2 : 11 de Abril de 2010, 21:46:49 »

Hola.

Bienvenido al foro.

Creo que con solo un registro es suficiente y puedes usar unos transistores para multiplexar los catodos de los display's. Para que carro es el RPM-meter? una forma de aislar es con optoacopladores.

Saludos

PD/ Me demore al escribir jeje. Es la misma idea que te plantea mtristan
En línea

El papel lo aguanta todo
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #3 : 11 de Abril de 2010, 22:25:47 »

Antes que nada gracias por las respuestas Smile

Me parece un muy buen proyecto, aunque no pueda ayudarte mucho, porque de electricidad automotriz no se nada  tongue
Lo único que puedo decir es que podrías ahorrarte un CD4511 conectando las 7 salidas a ambos displays en paralelo.
(A ver si se entiende mi pseudo-esquemita para cada segmento del display):

Para seleccionar el display, usas un transistor conectado al cátodo común para cada uno (en el dibujito la línea "Seleccion del display" tiene conectada una resistencia y el transistor).
Saludos.

Habia visto esa forma de implementarlo, pero se me ocurrio que, si el proceso de medir RPM me demoraba mucho tiempo, los display's podrian llegar a titilar o quedarse apagados, no se si me explico, utilizando los 2 latch puedo dejar los digitos "congelados" en cada display sin importar cuanto demore entre ciclos.

Dicen que esto no seria perceptible por el ojo humano? Me ahorraría muchísimo espacio de la forma que ustedes plantean.

Hola.

Bienvenido al foro.

Creo que con solo un registro es suficiente y puedes usar unos transistores para multiplexar los catodos de los display's. Para que carro es el RPM-meter? una forma de aislar es con optoacopladores.

Saludos

PD/ Me demore al escribir jeje. Es la misma idea que te plantea mtristan

El aparato se montara en un Fiat 600 con encendido a platinos. Lo que dije del borne negativo de la bobina es porque vi que en varios circuitos lo hacen de esa forma, lo que no se es el voltaje que puede haber en cada pulso y con un multimetro no creo que lo pueda medir.
En línea
mtristan
Colaborador
PIC18
*****
Desconectado Desconectado

Argentina Argentina

Mensajes: 395



« Respuesta #4 : 11 de Abril de 2010, 22:59:02 »

.

Citar
Habia visto esa forma de implementarlo, pero se me ocurrio que, si el proceso de medir RPM me demoraba mucho tiempo, los display's podrian llegar a titilar o quedarse apagados, no se si me explico, utilizando los 2 latch puedo dejar los digitos "congelados" en cada display sin importar cuanto demore entre ciclos.

Depende del programa que tengas pensado. Para que el ojo no note el parpadeo, hay que refrescar los displays a menos 20 veces por segundo (una vez cada 0,05s). Si el uC está andando a 1MHz, realiza una operación cada 1us. Si las cuentas no me fallan, la cantidad de instrucciones máximas entre cada refresco es de 50.000. Si todo el procesamiento de las RMP entra en esa cantidad, no hay problemas con los displays.
Saludos.


En línea

When you see a good move, look for a better one (Emanuel Lasker)
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #5 : 11 de Abril de 2010, 23:43:42 »

.

Citar
Habia visto esa forma de implementarlo, pero se me ocurrio que, si el proceso de medir RPM me demoraba mucho tiempo, los display's podrian llegar a titilar o quedarse apagados, no se si me explico, utilizando los 2 latch puedo dejar los digitos "congelados" en cada display sin importar cuanto demore entre ciclos.

Depende del programa que tengas pensado. Para que el ojo no note el parpadeo, hay que refrescar los displays a menos 20 veces por segundo (una vez cada 0,05s). Si el uC está andando a 1MHz, realiza una operación cada 1us. Si las cuentas no me fallan, la cantidad de instrucciones máximas entre cada refresco es de 50.000. Si todo el procesamiento de las RMP entra en esa cantidad, no hay problemas con los displays.
Saludos.

Estuve sacando cuentas y como mínimo voy a refrescar los displays cada 0.03s, entonces no se va a percibir el refresco. Voy a ir por esa opción y elimino un 4511. Gracias!

En línea
tinchosalamero
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 53


« Respuesta #6 : 12 de Abril de 2010, 09:23:05 »

Muy buena la idea para la aplicacion, solo me queda la duda de como vas a medir fisicamente las RPM
En línea
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #7 : 12 de Abril de 2010, 13:22:16 »

Muy buena la idea para la aplicacion, solo me queda la duda de como vas a medir fisicamente las RPM

Con un optoacoplador (4N35 está bien?) conectado al borne negativo de la bobina, tendría que recibir 2 pulsos por cada vuelta del motor (motor 4 cilindros), luego mediré el tiempo entre pulsos para así obtener la frecuencia de giro. A eso te referías?
En línea
MLO__
Colaborador
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 4504

MLO


« Respuesta #8 : 12 de Abril de 2010, 14:11:23 »

Tienes que medir que voltaje saca ese borne de la bobina, para calcular la resistencia del optoacoplador.

Saludos
En línea

El papel lo aguanta todo
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #9 : 12 de Abril de 2010, 14:39:06 »

Tienes que medir que voltaje saca ese borne de la bobina, para calcular la resistencia del optoacoplador.

Saludos

No cuento con un osciloscopio para poder realizar la medición, y creo que un multímetro no va a dar abasto.
Siguiendo el siguiente esquema todo indica que la tensión será de 12 o mas bien 14 volt, es correcto?

En línea
groundman
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 1555



WWW
« Respuesta #10 : 12 de Abril de 2010, 16:17:50 »

el circuito del esquema esta mal.ya que el positivo va a la bobina primaria.y la conmutacion con platinos a masa.
pero entiendo que solo es un ejemplo.
hoy en dia ya no se usan platinos.todo es electronico.los primeros encendidos electronicos tenian 3 hilos que iban al modulo electronico y de este a la bobina.
pero heran los que tenian distribuidor.
luego salio la inyeccion electronica.y salian dos hilos de una señal cuadrada de la centralita al modulo de conmutacion para alimentar dos bobinas.

no te aconsejo que cojas la señal del primario del las  o la bobina de encendido.ya que hay un pico de alta tension en la conmutacion.
te aconsejo que cojas la señal de la entrada del modulo de encendido.puede ser de 12V o 5V de onda cuadrada.aunque hay centralitas
que la conmutacion ya la hace desde dentro de la centralita.es este caso no podriamos tener esa señal cuadrada.
y ya si que habria que hacer un circuto de proteccion para evitar esos picos de alta tension.
En línea

Montando mi primera impresora 3D (Raprep Prusa i3)
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #11 : 12 de Abril de 2010, 17:21:59 »

el circuito del esquema esta mal.ya que el positivo va a la bobina primaria.y la conmutacion con platinos a masa.
pero entiendo que solo es un ejemplo.
hoy en dia ya no se usan platinos.todo es electronico.los primeros encendidos electronicos tenian 3 hilos que iban al modulo electronico y de este a la bobina.
pero heran los que tenian distribuidor.
luego salio la inyeccion electronica.y salian dos hilos de una señal cuadrada de la centralita al modulo de conmutacion para alimentar dos bobinas.

no te aconsejo que cojas la señal del primario del las  o la bobina de encendido.ya que hay un pico de alta tension en la conmutacion.
te aconsejo que cojas la señal de la entrada del modulo de encendido.puede ser de 12V o 5V de onda cuadrada.aunque hay centralitas
que la conmutacion ya la hace desde dentro de la centralita.es este caso no podriamos tener esa señal cuadrada.
y ya si que habria que hacer un circuto de proteccion para evitar esos picos de alta tension.

El problema es que el automovil en el que lo tengo que montar tiene encendido por platinos y eso no lo puedo cambiar (Reglamento de la Categoría). Todos los tacómetros comerciales toman la señal del borne negativo de la bobina, no puede ser que sea algo tan complicado, por lo que estuve investigando, el pico de tensión puede ser de hasta 150v pero por un lapso muy corto, alcanzará para quemar el opto? podría hacer un circuito simple en un protoboard y probar unos minutos a ver si lo soporta  Confused
En línea
groundman
Colaborador
PIC24H
*****
Desconectado Desconectado

Sexo: Masculino
España España

Mensajes: 1555



WWW
« Respuesta #12 : 12 de Abril de 2010, 17:30:55 »

prueva a practicar primero con un led una resistencia y un diodo zener de 5.1V. puede que obtengas la señal que deseas.

hay otra forma que quizas no te haga falta conectar al borne de la bobina.y es poniendo un cable enrroyado alrededor del cable de alta tension.
de esta forma se inducira un voltage.que depende de las vueltas que le des.
En línea

Montando mi primera impresora 3D (Raprep Prusa i3)
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #13 : 12 de Abril de 2010, 22:47:28 »

prueva a practicar primero con un led una resistencia y un diodo zener de 5.1V. puede que obtengas la señal que deseas.

hay otra forma que quizas no te haga falta conectar al borne de la bobina.y es poniendo un cable enrroyado alrededor del cable de alta tension.
de esta forma se inducira un voltage.que depende de las vueltas que le des.

Voy a probar de estas 2 formas a ver qué sucede, gracias por la ayuda Smile

Ya que estoy pregunto, esta forma de mostrar los datos en los displays de 7 segmentos es correcta?

Código:
void 7disp(int num) {
Dec = num/10;
Uni = num%10;
Decena = 1;
switch(Dec){
case 0:{
BCD_A=0;
BCD_B=0;
BCD_C=0;
BCD_D=0;
};
case 1:{
BCD_A=1;
BCD_B=0;
BCD_C=0;
BCD_D=0;
};
case 2: ****;
case 3: ****;
case 4: ****;
case 5: ****;
case 6: ****;
case 7: ****;
case 8: ****;
case 9: ****;
}
delay_ms(tiempo);
Decena = 0;

Unidad = 1;
switch(Uni){
case 0:{
BCD_A=0;
BCD_B=0;
BCD_C=0;
BCD_D=0;
};
case 1:{
BCD_A=1;
BCD_B=0;
BCD_C=0;
BCD_D=0;
};
case 2: ****;
case 3: ****;
case 4: ****;
case 5: ****;
case 6: ****;
case 7: ****;
case 8: ****;
case 9: ****;
}
delay_ms(tiempo);
Unidad = 0;

Los asteriscos son para que no se haga muy largo, pero se entiende la secuencia. Las variables DEC y UNI son integer. De cuanto tendria que ser el TIEMPO que mantengo el display prendido para que la visualización sea correcta?

Unidad y Decena son las salidas que manejan los transistores correspondientes al ánodo de cada display.
En línea
MLO__
Colaborador
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 4504

MLO


« Respuesta #14 : 12 de Abril de 2010, 23:43:13 »

Hola.

Esto te puede servir.

Saludos
En línea

El papel lo aguanta todo
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #15 : 13 de Abril de 2010, 12:39:46 »

Hola.

Esto te puede servir.

Saludos

Gracias por la respuesta, el problema de ese método es que creo que no me quedan Timers disponibles, para medir las RPM tengo que utilizar 2 Confused no?
En línea
MLO__
Colaborador
DsPIC33
*****
Desconectado Desconectado

Sexo: Masculino
Colombia Colombia

Mensajes: 4504

MLO


« Respuesta #16 : 13 de Abril de 2010, 22:22:00 »

Hola.

Pues, no sería  mejor una interrupción con el CCPx? y que la base de tiempo del Timer1 sea con un cristal de 32k768? Solo se usaría un así. De que manera lo tienes planeado Cossworth?

Saludos
En línea

El papel lo aguanta todo
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #17 : 13 de Abril de 2010, 22:50:34 »

Hola.

Pues, no sería  mejor una interrupción con el CCPx? y que la base de tiempo del Timer1 sea con un cristal de 32k768? Solo se usaría un así. De que manera lo tienes planeado Cossworth?

Saludos

Ahora que revisé bien los apuntes, no sé por qué dije que utilizaba los 2 timers Mr. Green, la idea que tenia planeada consistía en utilizar el TMR0 para contar el tiempo, y con INT_RB contar cada flanco de subida, calculando la cantidad de desbordes del TMR0 que tengo entre flanco y flanco poder calcular la frecuencia, lo que desconozco es como calcular el valor que asignaré a TMR0 para tener una lectura precisa y no entorpecer el resto del programa. (es la primera vez que voy a medir una frecuencia)

Por lo pronto ya compre el 4511, los display's, optoacopladores, zener, etc. para comenzar con las pruebas.  rebotando

Edito: Me había olvidado eso que mencionaste del CCP, busqué sobre el tema y encontré los siguientes enlaces:
http://www.todopic.com.ar/foros/index.php?topic=26417.0
http://www.todopic.com.ar/foros/index.php?topic=21960.0 (este se parece mucho a lo que estoy intentando hacer)
Pero no logro comprender del todo el funcionamiento de esa interrupción, mientras escribo esto estoy buscando info, pero cualquier ayuda extra me sirve muchísimo.
« Última modificación: 13 de Abril de 2010, 22:55:06 por Cossworth » En línea
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #18 : 22 de Abril de 2010, 20:11:32 »

Gente, en estos días estuve avanzando un poco con el tema de los display, voy a utilizar el TMR0 para mostrarlos, y hacer la medición de RPM por CCP1. Mañana si puedo armaré el circuito con el zener para probar medir la frecuencia en el negativo de la bobina.

Algo que de casualidad encontré y (creo) que me cae como anillo al dedo, es utilizar un par de CD4026 en lugar del CD4511, me permitiría manejar los 2 displays con tan solo 2 o 3 patas del PIC como mucho, dejándome opciones para poder ampliar el proyecto en un futuro sensando alguna variable más. Que les parece eso? Alguno ha implementado este método? en el buscador del foro solo encuentro un post muy viejo con 2 respuestas cuyos links no andan jaja
En línea
Cossworth
PIC12
**
Desconectado Desconectado

Argentina Argentina

Mensajes: 56


« Respuesta #19 : 24 de Abril de 2010, 16:54:11 »

Actualizo un poco, por un problema de conexión no había podido hacer andar el 4511, ahora solucionado el inconveniente comencé con la programación. Solo escribí el manejo del display y la barra de led's como se ve en el siguiente video Smile



En este momento utilizo un solo display ya que en la casa de electrónica se confundieron y me vendieron 1 catodo común y 1 ánodo comun redhot

Sobre lo que puse mas arriba alguien sabría darme una opinión? 4511 con multiplexado vs. 4026, ese es el dilema, con el 4026 ahorro 4 pines y no tengo la necesidad de utilizar el TMR0 ya que podría incluir la rutina del display dentro de la interrupción CCP1.

Saludos!
En línea
TODOPIC
   

 En línea
Páginas: [1] 2 Imprimir 
« anterior próximo »
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.20 | SMF © 2006-2008, Simple Machines XHTML 1.0 válido! CSS válido!
Página creada en 0.07 segundos con 23 consultas.