TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: iamdari en 14 de Enero de 2011, 15:48:01

Título: activar una salida dependiendo de un valor de una señal analógica.
Publicado por: iamdari en 14 de Enero de 2011, 15:48:01
Hola a todos!!!

Me ha surgido una dudilla.

Tengo un potenciómetro que me regula la tensión del una entrada para ADC, la tensión va d 0 a 5 V. Lo que quiero es que a partir de un valor determinado de tensión se active una salida del pic. Creo que no se puede hacer una compración en un IF con un float, no? entonces comparo el valor d "q" que es un entero despejando de la ecuación del adc con una "q" de 3v y m da un valor de 614, pero ni por esas me deja, os dejo el código para ver si m podeis dar una solucion ok??


#include <16f877.h>
#device adc=10
#fuses xt,nowdt
#use delay(clock=4000000)
#include <lcd.c>
#use standard_io(b)
#use standard_io(d)

void main(){
int16 q;
int16 j;
int l;
float p;
port_b_pullups(true);
setup_adc_ports(an0);
setup_adc(adc_clock_internal);
set_tris_b(0x00);
lcd_init();
for(;;){
set_adc_channel(0);
delay_us(20);
q=read_adc();//Valor ADC
p=5.0*q/1024.0;//Voltage


printf(lcd_putc,"\fADC= %6ld",q);
printf(lcd_putc,"\nVoltage= %01.2fV",p);
delay_ms(100);

if(q>>614)
output_high(pin_d0);
else
output_low(pin_d0);


}}
Título: Re: activar una salida dependiendo de un valor de una señal analógica.
Publicado por: MLO__ en 14 de Enero de 2011, 15:50:01
Hola.

Para comparar, usa: > o >= dentro del if.

>> es una función de corrimiento.

Saludos
Título: Re: activar una salida dependiendo de un valor de una señal analógica.
Publicado por: iamdari en 14 de Enero de 2011, 15:53:48
Jaja. Es verdad!!! Que haría yo sin ustedes... muchísimas gracias!!!