TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: empanada99 en 07 de Octubre de 2003, 00:00:00

Título: CONTROL PI
Publicado por: empanada99 en 07 de Octubre de 2003, 00:00:00
HOLA SOY NUEVO Y NECESITO UN PROGRAMA EN C PARA PIC QUE ME CONTROLE UNA PLANTA DE AMPLIFICADORES OIPERACIONALES CON UNA ENTRADA ANALOGA Y UNA SALIDA ANALOGA POR PWM
GRACIAS
Título: RE: CONTROL PI
Publicado por: pacalaconcurso en 16 de Octubre de 2003, 07:43:00
con este programilla controlo la velocidad de rotacion del motor del rotor 250 W con pwm espero que te ayude




#include "C:Archivos de programaPICC876rotor876rotor.h"
#use delay(clock=20000000)
#define dcha PIN_B1
#define izda PIN_B2
#define inversor PIN_C2
#define velocidad PIN_A4
#define led PIN_C3
long int duty;
int1 led1;
output(led);
void main() {
   set_tris_b (0xFF);
  // port_b_pullups(TRUE);
   setup_adc_ports(ALL_ANALOG);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(FALSE);
   setup_ccp2(CCP_PWM);   // Configure CCP1 as a PWM
   setup_timer_2(T2_DIV_BY_16, 127, 1);
while(1){
//calcular el duty del PWM
  set_adc_channel( 4 );
    duty=read_adc();
    duty*=2;
    delay_ms(20);
    set_pwm2_duty(duty);
/////
         led1=~led1;
         output_bit(led,led1);

meta1:
         if (input(dcha)){
               output_low(inversor);
               delay_ms(10);
               duty=read_adc();
               duty*=2;
                delay_ms(5);
                set_pwm2_duty(duty);
               goto meta1;
               }
            if (input(izda)){
               output_high(inversor);
               delay_ms(10);
               duty=read_adc();
               duty*=2;
                delay_ms(5);
                set_pwm2_duty(duty);
               goto meta1;
               }

    set_pwm2_duty(0);

output_low(inversor);
}

}
Título: RE: CONTROL PI
Publicado por: pocher en 16 de Octubre de 2003, 10:05:00
... je, je, ya está aquí el jefe para hecharnos una mano.