Go Down

Topic: CUADRO DE INSTRUMENTOS DE UN VEHICULO A DISPLAYS (Read 19779 times) previous topic - next topic

surbyte

Demasiado demasiado muchachos... ubiquemos las cosas. Pincho esta empezando de modo que su entusiasmo hace que pifie algunos penales.

A ver..
Como todos te decimos, no necesitas interrupciones o tantas como pretendes, Menos que menos para el menú. Asi que esas 3 descartadas y upaaa te quedan solo 2. Dos tiene el UNO asi mirá como cambia la cosa.
Asi que vamos a pensar todos en como leer las rpm, los Kmt x hora.

VUELVO A PREGUNTAR y lo hago con energía? Que vehiculo tienes? Tiene ODB II, investiga que es lo que te digo pero, basicamente todo auto mas o menos moderno tiene un conector ODB que permite diagnosticar y también comunicarse con la computadora del vehículo y entonces leer RPM, Kmts, consumo de combustible y muchas cosas mas.. Se ve?
Asi que dinos si tu auto tiene o no ODB,  marca modelo de tu vehículo o del que vas a montarle el display

ElEspanol

#16
Oct 31, 2014, 10:29 am Last Edit: Oct 31, 2014, 10:31 am by ElEspanol
que os parece usar pulseIn() y hacer un pro medio de 10 valores con un ringbuffer?  no cuesta ningún interrupt

No tengo experiencia con esto en la práctica,  pero creo que merezca la pena estudiarlo.


pincho41700

maxsaeta.
Yo creo que se pueden perder datos con la suma de los km y entonces seria desastroso.
no con las rpm , que me varie algo pues no pasa nada dentro de un margen , pero que me cambie los km uhh entonces puede ser un problema.

noter:
a los contadores te refieres a los timer no?
las interrupciones las tenemos con los timer2 ahora, ya que timer0 con  millis y demas de arduino, timer1 con I2C y solo me queda timer2 en el caso de arduino uno.
Si se utiliza el mega pues tendriamos mas timer y de 16 bits.
Explicate mejor que no te entiendo lo de los desbordes.

Ehrja:
se podria hacer pero nunca he trabajado con los attiny( tampoco seria un problema), pero creo que tambien es factible.

surbyte (ofuuu vaya prenda, jajajaj):

si el boton no hacemos una interrupcion como lo hacemos?, ahi me pierdo ya.
Te he dicho en el post anterior que no tiene OBD ni nada de nada es solo mecanico,
El coche es un mercedes 190 2.5D donde no hay una centralita( que alegria),
ya se que a traves de OBD se pueden sacar muchos valores pero este no lo tiene, con lo que hay que empeazar desde cero, por eso te dije que era un proyecto grande a mi parecer, todo a cero y a empezar.

elespanol:

Se lo que es un pulsein(), pero lo que dicen es que las interupciones se paran todo, y no se lo que es un ringbuffer y no te puedo contestar a eso.



surbyte

Entonces ya que no tienes ODB vamos por partes.
Elije una medicion y la resolvemos, y asi vamos sumando okay.
Resolvemos mécanica, electrónica y software. Todo!!!

Ejemplo RPM.
Que vas a usar como sensor?
Hay chances de conectarte al tablero? Lo evaluaste? Sería una solución personalizada, o sea solo para tu vehiculo pero es lo que buscas no?.

pincho41700

Para las RPM, tiene un resorte en la polea de cigueñal y le he colocado un iman de neodimio para colocarle un sensor hall. He estado viendo viendo algunos industriales , tienen que ser redondos, de 14mm( es el sitio exacto del alojamiento del sensor), pero no lo encuentro superior a 85 grados, debe ser como minimo 120 grados, ya que el motor trabaja a 90 grados, sino tendre que hacerlo yo.( tampo es un grna problema).

que significa chances?, no te entiendo.

Para la velocidad lo mejor es cojer un buje de la rueda delantera con su sensor y filtrarlo a arduino (tampoco es un problema).


ElEspanol

#20
Oct 31, 2014, 04:24 pm Last Edit: Oct 31, 2014, 04:26 pm by ElEspanol
un ringbuffer es un array de p.e. 10,  en este guardas los valores. una vez llegado a 10, se vuelve al index 0. es decir,  siempre estan los últimos 10 valores en el array. de este calculas el pro medio para suavizar las mediciones del pulseIn.

Otra idea para ahorrar interrupts.  conectas los sensores a entradas normales,  y con diodos todos tambien al pin 2. cuando hay un interrupt,  miras que otro pin esta en High y tomas las medidas correspondientes.

Espero haberme expresado bien,  el castellano no es mi idioma materna. 


pincho41700

Te has explicado mejor que la wikipedia, porque en ella no lo he comprendido muy bien.

surbyte

Bueno yo me pierdo pincho.. tal vez mi impaciencia o mi docencia (perdón por mi vanidad al respecto).
Tiro una tarea y resulta que la tienes lista pero no lo dices. Entonces?
Cual es el problema?
Te dejaré que lleves las cosas a tu gusto como corresponde, es tu proyecto porque no entiendes lo que te pido que hagas.
Y ya lo pedi como 3 o 4 veces y bue.. seguimos.

Te repito que no necesitas interrupciones.
Las teclas del menú no necesitan interrupciones y ya te dieron ejemplos y alternativas a no usar interrupciones para las RPM o KmH

Chances: Si existe la posibilidad de alcanzar la tripa del velocímetro y ahi en el tablero ver de tomar esa lectura. Lo mismo con las RPM si es que tienes indicador en el tablero de tu automovil.


pincho41700

surbyte, que tu te pierdes?
pues anda que yo, estoi en un camino, y con la informacion que me habeis dado han salido 30 caminos y ninguno con el final visto.
El problema por parte mecanica ninguna ( porque soy mecanico), y por eso no he hecho ninguna pregunta de mecanica o sensores.
El problema esta en parte por software y hardware. y quizas despues por parte de las placas de baquelitas que haya que hacer( que seguramente seran de 4 a 5 placas).
No lo se que me has pedido como 3 o 4 veces, no lo veo.
En cuanto a las interrupciones, muy bien no hace falta. ¿como lo hago, poruqe no tengo ni idea de hacerlo sin interrupciones?, quiero Ejemplos o algo asi que pueda verlos.
como tu dices chances, el velocimetro le llega un cable , como los de toda la vida( un cable de acero), y RPM no los tiene.
Estoi peor que cuando empece , ajajaja.




surbyte

Yo no pierdo nada y si molesto no aporto mas.
Lo que veo es que estas en los 30 caminos a la vez y te estoy pidiendo que resolvamos 1 a 1 pero no lo comprendes.
SI ya esta RPM entonces tildas y pasas a otra cosa.
Y asi
Pero quiere armar todo.. bueno.
Menues hay muchos, pero no dices que quieres hacer... yo no puede leer tu mente o te pido demasiado, tal vez sea eso.
En fin.. me calmo y te dejo hacer como quieras.

Prueba los 30 caminos a la vez entonces.

ehrja

JOJO... pero por favor señores,  si estaba muy interesante esto, no solo el proyecto en si, también el experimento social que sugirió Surbyte, pedir concentrar todo en un solo lugar para tener algo así como una bitácora del proyecto, y bueno exploto?

Quisiera hacer de mediador para hacerles entender que somos diferentes todos y que a veces por los pocos o muchos recursos que cada quien tenga es difícil comunicar una idea o seguir un solo camino.

En el foro estamos para echarnos la mano, aunque aveces estemos mal pero aprendemos del error..

En fin compañeros respiren profundo, y sigamos a delante.
Hola buenos días!

ehrja

#26
Nov 01, 2014, 04:44 am Last Edit: Feb 27, 2018, 04:43 pm by surbyte Reason: Las imagenes deben verse usndo etiquetas.
Quisiera sugerir que podrías usar un optoswitch para medir las RPM. este sensor abajo del capo tendrá cero interferencia con la luz del sol, ademas tendrás mas tiempo entre cada interrupción.

un sensor como este:


Estas son las partes de la imagen adjunta:

1.- marca blanca
2.- banda del motor
3.- alternador
4.- sensor optoswitch
5.- soporte para sujetar el sensor

solo es una idea.

Moderador: Editado adjunto para ver la imagen

Hola buenos días!

pincho41700

Surbyte nadie ha dicho que molestes, ni tu ni ninguno de los que habeis aportado alguna informacion.

En el menu que quiero hacer es el siguiente.
cuando arranca arduino el menu es 0
0 es la visualizacion de los km que faltan para cambiar el aceite.
a los 10 segundos el menu es 1;
1 es la visualizacion de los km totales del vehiculo.
y se queda ahi hasta que se le pulse el boton.
si se pulsa pasa a 2.
2 es los km parciales1,
si se pulsa  otra vez pasa 3,
3 es los km parciales2,
si se vuelve a pulsar pasa a 0
y se vuelve al principio.
Cuando estoy en cualquiera de ellos(en el menu), si pulso seguidos unos 10 segundos, quiero que la visualizacion  se ponga a cero.
Asi funcionan muchos cohes de aqui en europa.

Gracias erhja por la informacion,
pero he visto las cojidas que tiene y ha mi coche es complicado colocarle eso.


pincho41700

#28
Nov 01, 2014, 08:01 am Last Edit: Nov 01, 2014, 08:05 am by pincho41700
Y otra cosa mas,
Estoi trabajando con la velocidad , aparte y esto no funviona bien,

Code: [Select]

#define VUELTARUEDA 1392.079481//longuitud que da la rueda por vuelta 195/60 r15 en mm
unsigned long TicksVel;
unsigned long OverVel;
unsigned long OverflowVel;
float Vel;
float prueba;

void setup(){
  Serial.begin(9600);

  // setup velocimetro
 EIMSK=1<<INT0;              // elijo la interrupcion externa 0 es el pin2
  EICRA=1<<ISC01 |1<<ISC00;  // elijo en rising ( en flanco de subida)
  TCNT2=0;                   //contador a cero del timer1
 
  //registros del Timer2 a 8bits
  TCCR2A=0;
  TCCR2B=0;
  TIMSK2=(1<<TOIE2);         // se activa los registros por overflow
  TCCR2B |= (1<<CS10);       // sin prescaler
  TIFR2=(0<<TOV2);           //el flag a 0
  OverflowVel=1;             //contador de flag a 1
     
}

void loop(){
 
  Vel = VUELTARUEDA/((TicksVel+(OverVel*256))*62,5/3600000);
  prueba = VUELTARUEDA/(1000000000/3600000);
  Serial.print("Velocidad: ");
  Serial.print(Vel);
  Serial.print(" TicksVel: ");
  Serial.print(TicksVel);
  Serial.print(" OverVel: ");
  Serial.print(OverVel);
  Serial.print(" Prueba: ");
  Serial.println(prueba);
  delay(100);
}


ISR(INT0_vect)
{
       
    OverVel = OverflowVel;
    TicksVel = TCNT2;
    TCNT2=0;
    OverflowVel = 1;
  }

ISR (TIMER2_OVF_vect)
{
  OverflowVel++;
}



Con la calculadora funciona perfectamente pero con el arduino, la formula de Vel es 0,
alguien sabe porque?
la formula prueba si funciona!

ehrja



Code: [Select]
62,5/3600000);    // mira bien, hay una coma como punto decimal
Hola buenos días!

Go Up