Professional Documents
Culture Documents
D1
D2
3
1N4007
Q1
1N4007
2N7008
D4
D3
CARGA
1N4007
1N4007
Seal de control
desde el micro
CDIGO IMPLEMENTADO
angulo =
#define F_CPU 8000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include "lcd.h"
#include "avr_compiler.h"
#include <avr/delay.h>
unsigned char angulo;
unsigned char auxiliarmodo;
unsigned char ang, numerociclos;
unsigned char contadorciclos;
unsigned char porcentaje,contador;
unsigned char text[16];
int main(void)
{
configurar();
lcd_init();
lcd_gotorc(1,1);
lcd_puts("INTRUMENTACION");
lcd_gotorc(2,1);
lcd_puts("INDUSTRIAL");
_delay_ms(1500);
lcd_clear();
lcd_gotorc(1,1);
lcd_puts("PRACTICA 5");
lcd_gotorc(2,1);
lcd_puts("DIAZ Y PILLAJO");
_delay_ms(1500);
while(1)
{
lcd_clear();
ADCH*36/255;
Directo");
lcd_gotorc(1,1);
lcd_puts("Fase
lcd_gotorc(2,1);
sprintf(text,"Angulo:
%d",angulo*5);
lcd_puts(text);
break;
case 1:
lcd_gotorc(1,1);
lcd_puts("Chopper");
lcd_gotorc(2,1);
sprintf(text,"Porcentaje:
%d",porcentaje*100/125);
lcd_puts(text);
break;
case 2:
lcd_gotorc(1,1);
lcd_puts("Ciclo
Integral");
lcd_gotorc(2,1);
sprintf(text,"Ciclos:
%d",numerociclos);
lcd_puts(text);
break;
switch(auxiliarmodo)
}
{
_delay_ms(100);
case 0:
}
ADCSRA |=
} potencia a ser
Figura 1. Circuito de
(1<<ADSC);
while((ADCSRA &implementado
void configurar(void)
(1<<ADIF)) == 0);
{
/*Configuracin: Puertos
entradas - salidas*/
DDRA = 0b00000001;
DDRB=0b00010000;
PORTA=255;
PORTB=0b11101111;
PORTD=255;
contadorciclos++;
}
/*Configuracin: Interrupciones*/
EICRA=0b00101010;
EIMSK=0b00000111;
PCICR=0b00000001;
PCMSK0=0b00000001;
/*Configuracin: Conversor
Anlogo/Digital*/
ADCSRA = 0x87;
ADMUX = 0xE1;
}
ISR(INT0_vect)
{
switch(auxiliarmodo)
{
case 0:
ang=ang+1;
if(ang>12)
{
ang=12;
}
break;
case 1:
porcentaje=porcentaje+25;
if(porcentaje>125)
{
porcentaje=125;
}
OCR0B=porcentaje;
break;
PORTB=0b11101111;
}
else
{
case 2:
PORTB=0b11101111;
while(contador<=(angulo-1))
{
_delay_us(220);
contador+
+;
}
break;
if(contadorciclos>16)
{
contadorciclos=0;
}
break;
}
contador=0;
PORTB=255;
case 2:
ISR(INT1_vect)
{
switch(auxiliarmodo)
{
case 0:
ang=ang-1;
if(ang<0)
{
ang=0;
}
break;
if(contadorciclos>numerociclos)
{
PORTB=0b11101111;;
}
else
{
PORTB=255;
}
numerociclos=numerociclos+1;
if(numerociclos>10)
{
numerociclos=10;
}
break;
}
case 1:
porcentaje=porcentaje25;
if(porcentaje<0)
{
porcentaje=0;
}
OCR0B=porcentaje;
break;
case 2:
numerociclos=numerociclos-2;
if(numerociclos<0)
{
numerociclos=0;
}
break;
}
ISR(PCINT0_vect)
{
unsigned char auxi;
auxi= PINA & 0b00000001;
if(auxi==0)
{
auxiliarmodo=auxiliarmodo+1;
if(auxiliarmodo==3)
{
auxiliarmodo=0;
}
switch(auxiliarmodo)
{
case 1:
PORTB=0b11101111;
TCCR0A=0b00100011;
TCCR0B=0b0001011;
OCR0A=125;
break;
case 2:
TCCR0B=0b00000000;
TCCR0A=0;
}
}
PORTB=255;
break;
SIMULACIN DEL
CIRCUITO
ANEXO 1
DIAGRAMA DE FLUJO
ANEXO 2
3.3.
Presentar
la
simulacin del circuito
con las formas de
onda en la carga, para
el control de fase
directo, control tipo
chopper y control de
ciclo integral.
ANEXO 3
3.4.
REFERENCIAS