Você está na página 1de 10

UNIVERSIDAD DE ANTIOQUIA

FACULTAD DE INGENIERA
DEPARTAMENTO DE ELECTRNICA

CURSO: ELECTRNICA INDUSTRIAL

PROYECTO GRUPAL 1

PABLO SEBASTIAN ROBLES CARDONA


CARN: 1061714563
DANIEL DAVID MORENO BANDA
CARN: 1067857912

PROFESOR: PEDRO VICENTE LEAL

Medelln, junio de 2011


PROYECTO GRUPAL 1:

1- Control de potencia por fase, para carga Lmpara incandescente interfaz


grfica tipo labview con ingreso del ngulo de disparo desde el panel, con VI
de emulacin del tipo de control mostrando el ngulo.
2- Control por ZERO con ingreso de M ciclos si, N ciclos no, VI que muestre el
proceso, carga R para lmpara incandescente, alimentada desde la red AC de
110v RMS.
3- Paso de un ngulo de Teta1 a Teta2 en un tiempo T, por fase con ingreso de
estos valores sin incluir VI de proceso.

DESCRIPCION:
Con un circuito detector de cruce por cero se enva pulsos a un pin IRQ del micro
controlador que mediante programacin (texto anexo), realiza clculos y entrega en
un pin de salida, la seal de activacin al circuito de potencia denominado Lmpara
en el diagrama de bloques; que consta de un MOC, un TRIAC, junto con la lmpara
unidos a la red AC.
En el texto de programacin se realizan trabajos tales como:
1- Cada cruce por cero, se cuentan retardos equivalentes al ngulo de disparo
escogido.
2- Cada cruce por cero incrementa un contador para los ciclos activos, reinicia y
luego cuenta los ciclos inactivos del circuito de potencia.
3- Cada cruce por cero es verificado para saber de qu ngulo a qu ngulo va a
moverse el disparo, o dado el caso, contar el tiempo que se va a demorar en hacer
dicha actividad.

Cruce por cero


impulsos cada
120Hz
Comparador

Lmpar
a

Nivel
LOGICA:
Micro
controlador

SUSTENTACIN POR MDULOS:


Deteccin de cruce por cero:
Se realiza una rectificacin de onda completa y cada vez que esta pase por cero, es
decir cada 120Hz, enviar un pulso, determinando as el cruce por cero.

Etapa de potencia (Optocoplador-TRIAC):


El optoacoplador MOC, es quien enva la seal al TRIAC para su activacin, esta se
controla mediante el tren de pulsos y por ende la intensidad de la lmpara

/*******************************************************************

PRACTICA GRUPAL 1
DANIEL DAVID MORENO BANDA
PABLO SEBASTIAN ROBLES CARDONA

******************************************************************/
#include
#include
#include
#include
#define
#define
#define
#define
#define
#define
#define

<hidef.h> /* for EnableInterrupts macro */


"derivative.h" /* include peripheral declarations */
"serial.h"
"events.h"

ADCH0 0
ADCH2 2
ADCH4 4
MODE8BITS 0
MODE10BITS 2
MODE12BITS 1
WAIT asm WAIT

/* Declaracin de Variables Globales (deben declararse antes del main)*/


byte ValADC[10];
unsigned int In[8];
unsigned int str;
unsigned int inic;
unsigned int modo;
unsigned int Ang;
unsigned int msi;
unsigned int nno;
unsigned int time;
unsigned int a=0;
word Num2;
word Numon;
word Numoff;
word Numlim;
word Numont;
word Numofft;
word Nummov;
word Nummovt;
byte i=0;
byte j=1;
byte k=0;
byte flag_1=0;
byte flag_2=0;
byte flag_3=0;
byte flag_irq=0;
byte flag_sci=0;
word TempADC;
byte TeclaIngresada;
// Declaracin de funciones
void PLL_Init(void);
void Oscillator_Init(void);
void RTC_Init(void);
void IRQ_Init(void);

void tDelay(word);
void tDelayLarge(word);
word StartADC(byte MODE,byte Chanel);
void main(void) {
SOPT1 = 0x02;
// disable COP, PTA5/IRQ/TCLK/RESET pin functions as IRQ.
PTA4/ACMPO/BKGD/MS pin functions as BKGD/MS.
PTADD_PTADD3=1; //Salida
PTADD_PTADD4=0; //Entrada
PTADD_PTADD2=1; //Salida
PTADD_PTADD1=1; //Salida
Oscillator_Init();
SciInit();
RTC_Init();
IRQ_Init();
EnableInterrupts; /* enable interrupts */
PTAD_PTAD2=1;
tDelayLarge(1000);
PTAD_PTAD2=0;
for(;;){
if(INT_EVENTS==0)
WAIT;
if(flag_sci){
flag_sci=0;
if(inic==255){
if(modo==1){
PTAD_PTAD1=~PTAD_PTAD1;
if(Ang>=180){
Ang=180;
}
Num2=(180-Ang);
Numon=(92*Ang);
Numoff=(92*Num2);
flag_2=1;
while(flag_2){
if((flag_irq)&&(PTAD_PTAD4==1)){
flag_irq=0;
PTAD_PTAD3=0;
tDelay(Numon);
PTAD_PTAD3=1;
tDelay(Numoff);
PTAD_PTAD3=0;
}else if((PTAD_PTAD4==0)){
flag_2=0;
}
}
}else if(modo==2){
flag_2=1;
while(flag_2){
if((flag_3==0)){

if((flag_irq)&&(i<msi)&&(PTAD_PTAD4==1)){
flag_irq=0;
i++;
PTAD_PTAD3=1;
}else if((flag_irq)&&(i>=msi)&&(PTAD_PTAD4==1)){
flag_irq=0;
flag_3=1;
i=1;
}else if((flag_irq)&&(PTAD_PTAD4==0)){
flag_irq=0;
flag_3=2;
}
}else if((flag_3==1)){
if((flag_irq)&&(i<nno)&&(PTAD_PTAD4==1)){
flag_irq=0;
i++;
PTAD_PTAD3=0;
}else if((flag_irq)&&(i==nno)&&(PTAD_PTAD4==1)){
flag_irq=0;
flag_3=0;
i=1;
}else if((PTAD_PTAD4==0)){
flag_3=2;
}
}else if(flag_3==2){
flag_2=0;
flag_3=0;
}
}
}else if(modo==3){
flag_2=1;
if(time>=11){
time=10;
}
//

//

time=time*1000; //Pasar tiempo a milisegundos


Numon=(2760); //2760 microsegundos equivale a 30 grados
Numoff=(11040); //10120 microsegundos equivale a 120 grados
Nummov=30*time;//
Nummov=(10*(time/167));
Numlim=((Numoff-Numon)/Nummov);
Numont=Numon;
Numofft=Numoff;
Nummovt=Nummov;
while(flag_2){
if((flag_irq)&&(PTAD_PTAD4==1)){
flag_irq=0;
if(j<=Nummov){
j++;
PTAD_PTAD3=1;
tDelay(Numofft);
PTAD_PTAD3=0;
tDelay(Numont);
Numofft=(Numofft-Numlim);
Numont=Numont+Numlim;

}else{
Numont=Numon;
Numofft=Numoff;
j=1;
flag_1=0;
}
}else if((PTAD_PTAD4==0)){
flag_2=0;
}
}
}
}
}
}
}
// Funcin para generar retrasos claculada para Fbus=3MHz
void tDelay(word us)
{
TPM2SC_PS = 0;
//Fbus = CGMOUT/2 = 6/2 = 3Mhz
TPM2CNT = 0;
// Reiniciar TIMER
TPM2MOD = (word)((3*(word)us));
// Preparar el nmero del mdulo para generar pausa de
us
TPM2SC_CLKSx = 1;
// Iniciar el TIMER
while (!(TPM2SC_TOF)); // Esperar el tiempo necesario
TPM2SC_TOF = 0;
// Reiniciar bandera
TPM2SC_CLKSx = 0;
// Detener el TIMER
}
// Funcin para generar retrasos largos (ms entre 1 y 2730)
void tDelayLarge(word ms)
{
TPM2SC_PS = 7; //preescaler x 128
TPM2CNT = 0;
// Reiniciar TIMER
TPM2MOD = (word)(24*(dword)ms);
// 1/[(3MHz/128)]*24= 1024ms
TPM2SC_CLKSx = 1;
// Iniciar el TIMER
while (!(TPM2SC_TOF)); // Esperar el tiempo necesario
TPM2SC_TOF = 0;
// Reiniciar bandera
TPM2SC_CLKSx = 0;
// Detener el TIMER
}
word StartADC(byte MODE,byte Chanel) { //FUNCION PARA ADC0 PIN PTB0
ADCCFG_ADICLK =0; //Selected Clock Source => 00 = Bus clock
ADCCFG_MODE
=MODE; //12-bit conversion
ADCCFG_ADIV
=1; //Input clock 2
ADCSC1_ADCH = Chanel;
while (!ADCSC1_COCO) {}
return ADCR;
}
void SciInit(void){
SCI2C2_RIE = 1;
SCI2C2_TE=1;
// Habilita Tx
SCI2C2_RE=1;
// Habilita Rx
//
SCI2BDH_SBR = 0;
SCI2BDL = REG_BAUDIOS;
}
interrupt VectorNumber_Vsci2rx void SCI_Isr(void){
unsigned int temp;
temp = SCI2S1;
a = SCI2D;
//Toma int del registro de datos
In[k]=a;
//Almacenamiento en vector de la informacin
k++;

//Contador para posicin del vector


if (k==8) {
//Cuando la cuenta sea 8, asignamos el valor para cada variable
inic=In[0];
modo=In[1];
Ang=In[2];
msi=In[3];
nno=In[4];
time=In[6];
k=0;
}
flag_sci = 1;
}
void IRQ_Init(void){
IRQSC_IRQEDG=0;
IRQSC_IRQPE=1;
IRQSC_IRQIE=1;
IRQSC_IRQACK=1;
IRQSC_IRQMOD=0;
}
interrupt VectorNumber_Virq void IRQ_Isr(void){
IRQSC_IRQACK=1;
flag_irq = 1;
}
void RTC_Init(void){
RTCMOD = 0; //un valor de 0x00 hace RTIF=1 en cada flanco de subida de la salida del preescaler.
RTCSC_RTIE=1;
// habilita iterrupcin de RTI
RTCSC_RTCPS =0b1111; // Base tiempo 1s (ya que LPO=1Khz es seleccionadopor defecto).
}
interrupt VectorNumber_Vrtc void RTC_Isr(void){
RTCSC_RTIF=1;
EV_INT_RTC=REQ_EVENT;
}
// Tomando como referencia un oscilador externo de 12MHz
// la rutina fija una frecuencia de CPU de 6Mhz => Fbus= 3Mhz
void Oscillator_Init(void){
MCGC2_RANGE=1;
// High frequency range selected for the external oscillator
// of 1 MHz to 16 MHz (1 MHz to 40 MHz for external clock source)
MCGC2_HGO=1;
// Configure external oscillator for high gain operation
MCGC2_EREFS=1;
// Oscillator requested
MCGC2_ERCLKEN=1; // MCGERCLK active
MCGC2_BDIV=0b01; // Divides selected clock by 2 MCGOUT = 12MHz/2 = 6MHz
MCGC1_CLKS =0b10; // CLKS= 10 External reference clock is selected.
while(MCGSC_CLKST != 0b10){}; //Espera mientras la frecuencia se estabiliza y se haya seleccionado
correctamente la fuente de reloj.

ELEMENTOS USADOS:
-

Micro-Controlador JM60.
1 Puente de diodos 1 A.
1 Transistor 2n2222 NPN.
1 Amplificador Operacional lm339.
1 Optoacoplador MOC3011.
1 Triac BTA12 600B.
1 Resistencia de 5K.
1 Resistencia de 10K.
1 Resistencias de 470.
1 Resistencias de 4.7K.
1 Resistencia de 2.2K.
1 Resistencia de 91 a 5 Vatios.

ELEMENTOS DEL LABORATORIO:


-

Transformador 509.
Fuente BK (2 salidas 5V).
Plafn y lmpara.
Caimanes para interconexiones.
Cables de 110v 1fase.
Osciloscopio FLUKE.

Você também pode gostar