Autor Tema: alguien me ayuda con este proyecto?¿?¿  (Leído 4376 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado german2

  • PIC10
  • *
  • Mensajes: 5
alguien me ayuda con este proyecto?¿?¿
« en: 21 de Abril de 2004, 18:34:00 »
Hola quisiera saber si alguien me da una mano con algo que quiero hacer ya que de electronica algo hago pero poco de pìcs o de programacion.

La idea es hacer un medidor portatil si asi se puede decir que va en un coche y lo que nos da es la informacion de la sonda lambda del mismo en su valor.
Pense en hacerlo con cualquier indicador digital a leds o lcd pero el problema es que como la sonda en su salida no es lineal todos hasta ahora me han dicho que con un pic seria ideal.
Bue por ahora mis dudas son de que no tengo idea que pic usar?¿
Deberia poder controlar ya sea 3 display de led o algun display lcd en su defecto.
El rango de la sonda es de 1.40 a 2.90 volt de cc.
Les agrego la tabla de lo que deberia marcar el indicador segun su voltage de entrada asi comprenden mejor.
Vout   Petrol
1.40   10.08
1.45   10.23
1.50   10.38
1.55   10.53
1.60   10.69
1.65   10.86
1.70   11.03
1.75   11.20
1.80   11.38
1.85   11.57
1.90   11.76
1.95   11.96
2.00   12.17
2.05   12.38
2.10   12.60
2.15   12.83
2.20   13.07
2.25   13.31
2.30   13.57
2.35   13.84
2.40   14.11
2.45   14.40
2.50   14.70
2.55   15.25
2.60   15.84
2.65   16.48
2.70   17.18
2.75   17.93
2.80   18.76
2.85   19.66
2.90   20.66

bue eso es mas o menos lo que pretendo hacer si alguien puede darme algunas pistas de como encararlo o alguien le interesa el proyecto para hacerlo en conjunto sea bienbenido ya que por mi cuenta lo que es diseño de los esquematicos o de las placas no problem en eso ando bien, el resto jeje como veran estoy algo perdido.
Si alguien necesita algun diseño de esquematico de lo que sea o del pcb a las ordenes.
P.D. A los que usan eagle tengo unas cuantas librerias y bastantes de los pics

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #1 en: 21 de Abril de 2004, 21:50:00 »
Hola, eso seria simple con un micro que posea entrada A/D, y el valor leido, pasa a una tabla,donde retorna con el valor de salida...

ademas, podrias controlar un display LCD del tipo inteligente...


Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #2 en: 22 de Abril de 2004, 07:13:00 »
Te hago una pregunta como ignorante que soy de mecánica y electrónica de automovil.

Qué es y para qué sirve la sonda lambda?

Como te ha dicho Norberto el programa se hace en tres patadas, vete agenciandote un 876 (por ejemplo), que te ayudamos.

Desconectado german2

  • PIC10
  • *
  • Mensajes: 5
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #3 en: 22 de Abril de 2004, 13:07:00 »
ok a ver si entiendo?
el pic deberia ser si mal no entendi el 16F876 no?¿
Ya averigue aqui en uruguay y si ahi de ese modelo solo que me parecio un poco caro sale unos 23 dolares mas o menos.
Lo otro que deberia tener en cuenta es el que como alguien dijo en otro subforo que tenia problemas con el pic conectado en el auto por que se reseteaba y alguien le contestaba de que debia ser por los cables de bujia y el ruido presente en el coche, quizas creo sea solo un tema de filtrar la fuente no?¿
Tengamos en cuenta que el uso de este medidor seria en coches de carrera y que los ruidos y las interferencias estan a la oreden del dia ya que no se usan cables con supresores de ruido como los autos estandar pues se usan cables de competicion.
En cuanto a lo que comentaba todopic estaria muy bien un lcd del tipo inteligente pero creo que la dificultad de conseguirlos aqui en plaza asi como su costo yo me inclinaria por display de led de catodo comun mas o menos en ese estilo sino podrian ser de los pisplay de 3 1/2 que no son tan caros si se consiguen.
Como han podido ver en la tabla el primer digito estaria siempre en uno asi que el circuito solo deberia manejar 2 digitos ya que el uno se dejaria fijo.
En cuanto a la pregunta de pocher de que es y para que sirve la sonda lambda te cuento mas o menos que es un sensor que mide la relacion de aire y nafta de un motor en los gases de escape de todas maneras te anexo esta direccion ahi tienes bien detallado que es y como se usa una sonda lambda o estoicometrica
http://www.automotriz.net/tecnica/sensor-de-oxigeno.html
Desde ya gracias por vuestra ayuda.
Ahi algun circuito mas o menos base de como deberia armar este medidor , en cuento a fuente y entradas y salidas del pic?? pues a decir verdad baje la hoja de datos del 16F876 y no entendi mucho la estructura de este micro.

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #4 en: 22 de Abril de 2004, 14:06:00 »
OK, voy a ver si lo hago en C, pero de momento para una LCD: es más sencillo.

Desconectado german2

  • PIC10
  • *
  • Mensajes: 5
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #5 en: 22 de Abril de 2004, 14:58:00 »
A cual lcd te refieres?? a la que decia todopic a los lcd inteligentes?? tendria qeu ver si aqui se consiguen y que coste tienen por el momento de los lcd que si ahi son los comunes de 3 1/2 digitos
Saludos desde Uruguay

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #6 en: 22 de Abril de 2004, 23:50:00 »
Me refería a una pantalla de cristal líquido LCD con microcontrolador. Por ejemplo una de las más comunes, la LCD con microcontrolador 44780 de Hitachi: es una LCD que puede visualizar dos líneas de 16 caracteres cada una.

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #7 en: 23 de Abril de 2004, 02:35:00 »
Bueno ya casi lo tengo, me falta un pequeño detalle que no me sale ... pero saldrá.

También te escribo para decirte que al compilador de C lo mismo le dá PICs de la gama alta, media o baja, es decir si quieres agenciarte un PIC de la serie enana (12Fxxx) que tenga una entrada como mínimo de conversor A/D pués también servirá. A bote pronto me parece recordar que el 12F675 tenía. El problema con estos pequeños será la memoria, en fin si quieres te esperas y te digo cuanto ocupa el programa, desde luego en un 876 cabrá de sobra.

Un saludo

Desconectado ma-tec

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 76
    • www.matec.es.tl
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #8 en: 23 de Abril de 2004, 07:11:00 »
hola

mira yo haria lo sig:
la señal del sensor la paso por un operacional para
ajustar offset y gain.
esta señal la ingreso al 16f628 (economico)
una vez dentro del micro la muestro en pantalla

opcion 1 display lcd alfanumerico ademas de mostral el dato puedes escribir texto o mensajes (hora actual o falla del sistema ETC)

opcion 2 tres display tipo led 7 segmento mostrando el dato.

todo cerrado y blindado.

saludos desde chile.

LA CLAVE DEL EXITO ES SABER
PARA DONDE VA LA GENTE Y
LLEGAR PRIMERO.

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #9 en: 23 de Abril de 2004, 13:02:00 »
El .hex ocupa 7.53K, con lo que con el 628 támpoco se podría. Lo he hecho para un PIC16F876.

Lo he hecho de la siguiente manera:

Para 1.40<=Voltios<1.45 ---> Petrol=10.08

Para 1.45<=Voltios<1.50 ---> Petrol=10.23

etc

El programa es este:

Codigo:
#include <16F876.h>

#device adc=10      // Conversión con 10 bits

#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, WRT

#use delay (clock=4000000)  

#include <LCD.c>

void main( void )
{
  long  valor;    
  float const resoluc= 5.0/1024.0;      // Conversión es con 10 bits  
  float voltios;
  int n;
 
  float const tablavoltios[32]={1.40,1.45,1.50,1.55,1.60,1.65,1.70,1.75,1.80,1.85,1.90,1.95,
                          2.00,2.05,2.10,2.15,2.20,2.25,2.30,2.35,2.40,2.45,2.50,2.55,
                          2.60,2.65,2.70,2.75,2.80,2.85,2.90};
                          
  float const tablaPetrol[32]={10.08,10.23,10.38,10.53,10.69,10.86,11.03,11.20,11.38,11.57,
                          11.76,11.96,12.17,12.38,12.60,12.83,13.07,13.31,13.57,13.84,
                          14.11,14.40,14.70,15.25,15.84,16.48,17.18,17.93,18.76,19.66,
                          20.66};

  setup_adc_ports ( RA0_ANALOG );        // Entrada analógica por RA0
  setup_adc ( ADC_CLOCK_INTERNAL );    // Reloj interno para el ADC
  set_adc_channel ( 0 );             // Canal 0 para convertir

  lcd_init();
 
  while ( 1 )                    
  {
      valor = read_adc();              
     
      lcd_gotoxy(1,1);
          
      voltios= valor * resoluc;
     
      for(n=0;n<32;n++)
      {         
         if(voltios>=tablavoltios[n]&&voltios<tablavoltios[n+1])
         {
            lcd_gotoxy(1,1);               
            printf ( lcd_putc, "Voltios = %1.2f",voltios);
            lcd_gotoxy(1,2);               
            printf ( lcd_putc, "Petrol  = %1.2f", tablaPetrol[n] );
         }                              
      }
     
      delay_ms(200);            // Convierte cada 200ms
  }
}  




Pruébalo y ya me dirás.

Un saludo

Desconectado german2

  • PIC10
  • *
  • Mensajes: 5
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #10 en: 23 de Abril de 2004, 16:55:00 »
Bue no se que decir pocher la verdad me tomo por sorpresa pense llevaria mas tiempo lo del prog
desde ya muchisimas gracias por la molestia
Gracias al amigo ma-tec tambien por su opinion a decir verdad lo de la opcion de display de led de 7 segmentos es lo que mas me gustaria pero no de caprichoso solo que averigue y aqui no se consige ese lcd pocher, tendria que traerlo desde argentina donde me dijeron seguro debe haber.
Claro que despues de leerme  mas o menos algo de las 218 paginas de la hoja de datos del 16f876 ademas de marearme un poco mas con esto de los pics jaja creo que el tema de conectarle display de 7 segmentos al pic demandaria mucho trabajo mas pues por lo que veo ahi que configurar las salidas por soft no? si asi es seguro se llevaria mas memoria  me imagino.
en cuanto pueda pruebo el soft claro que primero debo terminar el grabador de pics pues me baje el ic-prog que funciona con el propic2 del cual ya tengo el circuito y bue creo para empezar alcanzaria no? a ustedes que tienen mas experiencia que les parece?

Otra pregunta por lo que vi en los datos y en otros circuitos el 16f876 tiene una salida serial no?? eso quiere decir que con un max232 conectado al pic podria ver los datos via serial a la vez de que me los muestre en el display???

Otra pregunta = el at89c2051 no serviria?? pues de esos tengo y no me salen tan caros ( pregunto nomas perdonen si es un disparate jeje)

En cuanto al circuito encontre una placa base del 16f876 y su circuito en la web de pacalaconcurso y creo andaria bien para empezar no??

Bue perdonen una vez mas por mi bajo conocimiento acerca de  los pics.
Muchisimas gracias desde ya

P.S. abisen si en algo les puedo dsar una mano como dije antes en el diseño de los pcb ando basteante bien (creo) jaja

Desconectado jorgeansuini

  • PIC18
  • ****
  • Mensajes: 340
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #11 en: 25 de Abril de 2004, 09:55:00 »
Buenas:
Yo instale en mi auto un medidor similar al planteado,solo que mide la presion de gas del tanque (mi auto es a GNC) y la toma directamente del indicador que trae el equipo, a su vez ya que me sobraban entradas analogicas, mide bateria y temperatura a traves de un lm35 montado la tapa de cilindros cuyo cable pasa hasta el tablero, todo se muestra en 3 displays de 7 segmentos ,rotando la medicion a mostrar.-
La fuente basicamente es un 7805 con los correspondientes capacitores ,en especial uno de 100micros entre las patas de alimentacion del 16f873.-
Hasta el momento no ha presentado inconvenientes de ningun tipo y lleva andando unos 3000Kms.-
Modificar el soft para medir la sonda no me parece complicado,asi que les adjunto el programa para que vean si les sirve.-
Saludos
Jorge

"****************************************************************
"*  Name    : tem_volt_auto.BAS                                 *
"*  Author  : Jorge ansuini                                     *
"*  Notice  : Copyright (c) 2004 jorge ansuini                  *
"*          : All Rights Reserved                               *
"*  Date    : 27/02/2004                                        *
"*  Version : 1.0                                               *
"*  Notes   : voltimetro y termometro para auto                 *
"*          : hasta aqui funciona,con medidor de gas            *
"*          : funciona                                          *
"****************************************************************
         define osc 8
    Define   ADC_BITS     10   " conversor a 10 bits
    Define   ADC_CLOCK     3       "
    Define   ADC_SAMPLEUS  100   " tiempo de muestreo

    digit1 VAR Byte
    digit2 VAR Byte
    digit3 VAR Byte
    veces  var byte
    cuenta var word
    cuenta2 var word
    volt var word
    temper var word
    presion var word
    intermedia VAR word
    intermedia2 var word
    cuenta3 var word
    symbol digi1=portc.0
    symbol digi2=portc.1
    symbol digi3=portc.2
    symbol digito=portb
    symbol en_volt =portc.3
    symbol en_temp =portc.4
    symbol en_presion=portc.5
    symbol alarma=portc.6
      TRISA = %11111111     
   ADCON1 = %10000010   " resultado justificado a la derecha
   ;ADCON0 = %11000101   
    TRISB = %00000000
    TRISC = %00000000
   
    ;-------------------------------------------------
   
            portc=0
          high en_volt
          pause 600
          high en_temp
          pause 600
          high en_presion
          pause 600
          low en_volt
          pause 600
          low en_temp
          pause 600
          low en_presion
          pause 1000
          goto inicio_temp
         
 inicio_volt:
   
     
     cuenta=0
     for veces= 0 to 49
    ADCON0.2 = 1

no_termino:
    gosub display
    IF ADCON0.2 = 1 Then no_termino
   adcin 0,intermedia   
     cuenta=intermedia+cuenta
     next veces
     cuenta2=cuenta
      high en_volt
      low en_presion
      for volt=0 to 100
      if cuenta2<12000 or cuenta2>14000 then high portc.7
      high portc.6
      gosub display
      next volt
      low portc.7
     
inicio_temp:
 
     cuenta=0
     for veces= 0 to 50
    ADCON0.2 = 1      " arranca Conversion

termino:        
    gosub display
   IF ADCON0.2 = 1 Then termino
   adcin 1,intermedia
    cuenta=intermedia+cuenta
     next veces
     cuenta2=cuenta
     high en_temp
     low en_volt
     if cuenta>9000 then high portc.7
    for volt=0 to 100
    gosub display2  
    next volt
   
inicio_gas:
     cuenta=0
     for veces= 0 to 9
    ADCON0.2 = 1      " arranca Conversion

termino_gas:        
    gosub display2
    low portc.6
   IF ADCON0.2 = 1 Then termino_gas
   adcin 2,intermedia
    cuenta=intermedia+cuenta
     next veces
     cuenta2=(cuenta-3400)*10
     if cuenta<3405 then cuenta2=0
     high en_presion
     low en_temp
    for volt=0 to 100
    gosub display  
    next volt
    goto inicio_volt    
display:
    digit3 = cuenta2 dig 4
   digit2 = cuenta2 dig 3
   digit1 = cuenta2 dig 2
   
    LOOKUP2 DIGIt3,[63,6,91,79,102,109,125,7,127, 111],digito
    high digi3
    pause 5
    low digi3
   
    LOOKUP2 DIGIt2,[63,6,91,79,102,109,125,7,127, 111],digito
    high digi2
    pause 5
    low digi2
   
    LOOKUP2 DIGIt1,[63,6,91,79,102,109,125,7,127, 111],digito
    high digi1
    pause 5
    low digi1

return

display2:
    digit3 = cuenta2 dig 3
   digit2 = cuenta2 dig 2
   digit1 = cuenta2 dig 1
   
    LOOKUP2 DIGIt3,[63,6,91,79,102,109,125,7,127, 111],digito
    high digi3
    pause 5
    low digi3
   
    LOOKUP2 DIGIt2,[63,6,91,79,102,109,125,7,127, 111],digito
    high digi2
    pause 5
    low digi2
   
    LOOKUP2 DIGIt1,[63,6,91,79,102,109,125,7,127, 111],digito
    high digi1
    pause 5
    low digi1

return

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #12 en: 25 de Abril de 2004, 13:43:00 »
A ver si no se me olvida nada.

- El propic2 te alcanza para programar este y otros muchos PICs.

- En cuanto al soft de programación puedes usar el icprog, aunque mejor vete al subforo de Programadores y bájate el WP800, es más rápido.

- Puedes usar simultáneamente tanto la LCD (o displays 7 segmentos multiplexados) como el envio de datos via serie al "ordenata".

- El at89c2051 ¿es una LCD? Si lo es agenciate su datasheet, mira a ver donde tiene las entradas de control y donde las de datos, mira también en el fichero LCD.c de CCS en qué pines estan esas entradas ... espera te lo miro:

E=B0
RS=B1
RW=B2

D4=B4
D5=B5
D6=B6
D7=B7

- La placa base de Pacala te sirve para hacer pruebas.

Un saludo

Desconectado german2

  • PIC10
  • *
  • Mensajes: 5
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #13 en: 29 de Abril de 2004, 00:23:00 »
Gracias al amigo jorge ansuini por todos los datos estoy seguro serbiran y mucho.

Bueno pocher te cuento como ando en esto
Estoy esperando me entregen las placas que mande a hacer para el propic2 y para la placa base.
Estoy deseando empezar asi pruebo y experimento mejor asi quizas le agarre un poco mas la mano a esto de los pics jeje.

Te cuento ya consegui una lcd pero es de 16 caracteres por una sola linea y el probema es que no tengo dato alguno de esta lcd por mas que busque y busque dos dias en internet no encontre nada creo es algo viejita ya.
Trae el chip hitachi 44780a00 y ademas trae otro un lc7930.
Preguntas=
Uno cuales son los pines que se tienen que conectar el pic? y a donde
Dos con que voltaje funciona la lcd?? con los 5 v de la alimentacion del hd44780???
Yo revele segun el chip mas o menos que es cada pin a ver si con esto se puede saber que es cada pata de la lcd.

      
      
9   GND
8   DB7
7   DB6
6   DB5
5   DB4
4   DB3
3   DB2
2   DB1
1   DB0
      
            
      
19   BACK LICHT
18   BACK LIGHT
17   GND
16   GND
15   E
14   R/W
13   RS
12   V5
11   VCC
10   GND

      
Quizas con esto se den cuenta cual lcd es y el modelo solo dice en dos lados dm005z y en otro cmk-128x pero no pude encontrar nada con esos datos.
Con respecto a el prog que hiciste te pregunto dos cosas tambien
Como lo compilo para poder grabarlo en el pic?
Y despues de haberte mandado la tabla me di cuenta mirando los mensajes    que esa tabla esta mal
Seria solo corregirla y ponerle los valores correctos no?? ( cosa que si puedo hacer jeje)
Bueno por ahora no molesto mas ya que tengo bastante trabajo por delante.
Desde ya gracias a todos y un saludo desde Uruguay!!

German

P.D. perdon pero cuando decia acerca del at89c2051 me referia a un micro de atmel que es con uno de los que trabajan aca pero ya me explicaron que si bien serviria es bastante distinta la aplicacion del mismo
   

Desconectado pocher

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: alguien me ayuda con este proyecto?¿?¿
« Respuesta #14 en: 29 de Abril de 2004, 06:34:00 »
- Los pines que van al PIC los tienes en el mensaje anterior (los 3 de control a B0, B1 y B2 y los 4 de datos a B4, B5, B6 y B7)

- La LCD va con 5V

- Los pines que mandas no se corresponden con las LCD que yo tengo:  

1, 2, 3 = VSS, VDD y VEE respectivamente

4, 5, 6 = RS, RW y E respect.

7, 8, 9, ..., 13, 14 = D0 ... D7

- Para compilar agenciate el compilador de CCS

- Mira aquí: http://miarroba.com/foros/ver.php?temaid=1725528&foroid=256746  es un programa en C que dejó otro forista para voltímetro de 3 displays de 7 segmentos. No lo he probado, quizá adaptándolo también te serviría. De momento yo lo haría con la LCD.

Un saludo


 

anything