Autor Tema: Ayuda con int AD, lenguaje C  (Leído 5591 veces)

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

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda con int AD, lenguaje C
« Respuesta #15 en: 23 de Febrero de 2010, 01:00:20 »
Utiliza el buscador, hay información al respecto.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Edwin_pe

  • PIC12
  • **
  • Mensajes: 82
Re: Ayuda con int AD, lenguaje C
« Respuesta #16 en: 27 de Febrero de 2010, 00:58:56 »
Gracias por el dato esta muy bueno.

Hoy consegui un transductor de presion  de la empresa, recibe una variacion de aire por un conector y tiene una salida de 4mA hasta 20 mA quiero procesar esa señal con un pic, ahi tengo una señal de corriente que es analoga.
Generalmente procesamos señales de volatje con un pic y podemos hacer muchas cosas en este caso no se como empezar haber si me dan algunas luces, gracias y saludos. 

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda con int AD, lenguaje C
« Respuesta #17 en: 27 de Febrero de 2010, 01:29:58 »
jejeje! Utiliza el buscador, la conversión de corriente a tensión ya está tratado!  :mrgreen:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Ayuda con int AD, lenguaje C
« Respuesta #18 en: 27 de Febrero de 2010, 11:06:55 »
Puedes colocarle una resistencia de 250 ohm en el lazo de corriente y así tienes una salida de 1 a 5V

Desconectado Edwin_pe

  • PIC12
  • **
  • Mensajes: 82
Re: Ayuda con int AD, lenguaje C
« Respuesta #19 en: 04 de Marzo de 2010, 00:33:41 »
Hola a todos

Gracias por el dato encontre buena informacion en el foro, ahora tengo este problema hice este programa, consta de 4 leds lo uso para ver el nivel segun el voltaje k entra por RA0 el pin RC0 se pone en alto cuando pasa el nivel de 50.0  ahora en proteus esta todo bien me esta simulando tal como yo quiero pero cuando lo grabo el pic y lo pongo en mi entrenador no muestra nada en mi LCD pero los leds si funcionan bien, que puede ser amigos me falta configurar algo, o es un problema de hardware  el programa al parecer esta bien ya llevo 4 dias con este problema, gracias de antemano y saludos.



#include <16f876.h>
#fuses   HS,NOWDT,NOPUT
# DEVICE ADC=10
#use     delay(clock=20000000)
#use     fast_io(a)
#use     fast_io(c)
#define  LCD_RS    PIN_B1
#define  LCD_RW    PIN_B2
#define  LCD_E     PIN_B3
#define  LCD_DB4   PIN_B4
#define  LCD_DB5   PIN_B5
#define  LCD_DB6   PIN_B6
#define  LCD_DB7   PIN_B7
#include "flex_lcd.c"
   
/******************************************************************************/
/***********************   PROGRAMA PRINCIPAL    ******************************/
 void main(){

   int16 i=0;
   float j=0;

   set_tris_a(0x01);    /* el pin RA0 como entrada */
   set_tris_b(0);       /* el portb como salida */
   set_tris_c(0x00);

   SETUP_ADC(ADC_CLOCK_INTERNAL);   /* configuracion para que el a/d funcione con reloj interno del uC */
   SETUP_ADC_PORTS(RA0_ANALOG);     /* RA0 será analógico */
   lcd_init();                                            /* inicializo en LCD */

   lcd_gotoxy(1,1);                 
   printf(lcd_putc,"EALSA");        /* muestra en el LCD */
   
   while(TRUE){
   
      SET_ADC_CHANNEL(0);           /* vamos a usar el canal RA0 */
      delay_us(20);
      i = read_adc();
      j = 100.0*i/1024.0;
     
      lcd_gotoxy(1,2);           
      printf(lcd_putc,"Nivel = %01.2f",j);   /* muestra en el LCD */
      delay_ms(100);
     
      if(25.0<=j){
         output_high(pin_A2);       
         if(50.0<=j){
            output_high(pin_A3);
            output_high(pin_C0);           
            if(75.0<=j){
               output_high(pin_A4);             
               if(95.0<=j)
                  output_high(pin_A5);
               else
                  output_low(pin_A5);           
            }
            else
               output_low(pin_A4);               
         }
         else{
            output_low(pin_A3);
            output_low(pin_C0);}
      }     
      else
         output_low(pin_A2);
     
   }
 }

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Ayuda con int AD, lenguaje C
« Respuesta #20 en: 04 de Marzo de 2010, 10:05:13 »
¿Controlaste la alimentación de contraste del LCD, pin VEE -si no me equivoco-?
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado rroque

  • PIC12
  • **
  • Mensajes: 68
Re: Ayuda con int AD, lenguaje C
« Respuesta #21 en: 04 de Marzo de 2010, 18:06:25 »
Bueno, aparte de haber puesto una resistencia o un potenciometro para regualar el contraste, espero q no hayas dejado al aire la patillas 15 y 16. Si lo hiciste la pata 15 conectala a VCC y la 16 mandala a tierra con una resistencia baja.

Saludos

Desconectado Edwin_pe

  • PIC12
  • **
  • Mensajes: 82
Re: Ayuda con int AD, lenguaje C
« Respuesta #22 en: 05 de Marzo de 2010, 00:33:32 »
Gracias por sus respuestas.

Mi lcd ya esta funcionando solamente era un poblema de hardware, el bendito flat estaba mal, ahora voy a dar el sgte paso, habilitar otra entrada analoga  y las interrupciones.
Saludos a todos.

Desconectado micronet3

  • PIC18
  • ****
  • Mensajes: 288
Re: Ayuda con int AD, lenguaje C
« Respuesta #23 en: 05 de Marzo de 2010, 11:59:59 »
Que interesante tu programa amigo, nunca habia utilizado interrupciones para obtener el valor  de una entrada analogica

Saludos y Felicitaciones


 

anything