Presentacion diciembre

Post on 29-Jul-2015

501 views 0 download

Transcript of Presentacion diciembre

ALIMENTACIÓN POR ULTRACONDENSADORES

ÍNDICE

1. Nuestro Proyecto.

1. Alcance Actual.

1. Explicación Técnica (Circuito).o Circuito (Proteus).1. Explicación por bloques.

2. Explicación Técnica (Programa)o Programa (Prueba).o Programa (Final).

• Demostración.

NUESTRO PROYECTO

• Alimentado por una placa solar.

• Carga y descarga de ultra-condensadores, a traves de 2 circuitos “buck-boost”.

• Para alimentar pequeñas cargas.

ALCANCE ACTUAL (DICIEMBRE)

• Es teórico: Programa en “C” y Proteus.

• El circuito y programa para el control de una tensión fija (12V).

EXPLICACIÓN TÉCNICA (Circuito)

• Alimentación externa por fuente de alimentación con un condensador de prueba.

• Control por circuito “Buck-Boost”.

• Control de impulsos PWM con “µC”.

• Salida fija (12V).

CIRCUITO (Proteus)

EXPLICACIÓN POR BLOQUES

Pruebas de investigación:

• Variando el % y frecuencia del impulso y R2, hasta llegar a un valor de tensión válido

1.- 60% | 100KHz | 100Ω Vp = 40V

2.- 50% | 50 KHz | 1KΩ Vp = 27V

3.- 40 % | 100KHz | 1KΩ Vp = 23´75V

4.- 30 % | 50KHz | 100 Ω Vp = 20 V

VARIACIÓN MANUAL DEL PWM

VARIACIÓN AUTOMATICA DEL PWM

EXPLICACIÓN TÉCNICA (Programa)

• Usamos un PIC 16f876a.

• Control por una entrada analógica.

• Control por una señal PWM.

• Monitorización de datos.

PROGRAMA (Pruebas)

• while(1)• • restart_wdt();• a=getc();• switch(a)• case '8': c=c+10;• break;• case '2': c=c-10;• break;• case '6': c=c+25;• break;• case '4': c=c-25;• break;• case '5': c=c+5;•

• if(c)• • set_pwm1_duty(c);• b=read_adc();• printf("configuracion duty %d \r",c);• printf("lectura V = %1.2f \r",b/51);• restart_wdt();• • •

PROGRAMA (Final)• #include <16f876a.h>• #byte port_a=5• #byte port_b=6• #byte port_c=7• #use delay(clock=4000000)• #use

rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,bits=8)• float b;• int c;• main()• • set_tris_a(0b00000001);• set_tris_c(0b10000000);• setup_timer_2(t2_div_by_1,127,1);• setup_ccp1(ccp_pwm);• setup_adc(ADC_CLOCK_INTERNAL);• setup_adc_ports(all_analog);• set_adc_channel(0);• c=20;

• while(1)• • delay_ms(20);• b=read_adc();• b=b/51;• if(b>2.52) set_pwm1_duty(c=c-5);• if(b<2.49) set_pwm1_duty(c=c+5);• if(b>2.49 && b<2.52) delay_ms(20);• if(c)• • printf("configuracion duty %d \r",c);• printf("lectura V = %1.2f \r",b);• restart_wdt();• • •

• Transformar el valor en binario, en valores de tensión.

• Control para la estabilización de salida de tensión (12V) por PWM.

• delay_ms(20);

• b=read_adc();

• b=b/51;

• if(b>2.52) set_pwm1_duty(c=c-5);• if(b<2.49) set_pwm1_duty(c=c+5);• if(b>2.49 && b<2.52) delay_ms(20);

DEMOSTRACIÓN

GRACIAS POR SU ATENCIÓN