Académique Documents
Professionnel Documents
Culture Documents
Benemrita Universidad
Autnoma de Puebla
FACULTAD DE CIENCIAS DE LA
ELECTRNICA
PRCTICA 2: Ventilador de tiempo programable.
Nombre de la Asignatura:
Sistemas electrnicos de Potencia
Profesor:
Dr. Antonio Micha Camarillo
Alumnos:
Arrieta Fierro Carlos Enrique
Hernndez Aguilar Luis Adrin
Herrera Medina Martin R.
Martnez Orozco Jos Javier
Trevio Ziga Nayar
26-09-14
Otoo 2014
Objetivo
Adquirir los conocimientos necesarios para que el estudiante pueda implementar y analizar un
temporizador de tiempo programable, que pueda controlar un ventilador utilizando su circuito
asociado Luces navideas, utilizando conocimientos bsicos de electrnica, tales como
configuraciones del oscilador 555, sensores, y principios bsicos de dispositivos
semiconductores.
I.
Introduccin
A lo largo de las siguientes pginas expondremos las caractersticas y el mtodo de implementacin usado
para el desarrollo de una aplicacin que nos permita controlar la potencia de un ventilador con el fin DE
controlar su velocidad y tener interrupciones. Para ello sern utilizados un sensor que mande una seal al
PIC y se haga la interrupcin en forma binaria.
II.
Material
Ilustracin 1 555
Contador
4017
Se
trata
de
un
contador/divisor
un
contador
Ilustracin 2
Johnson de 5 etapas que puede dividir o contar por cualquier valor entre 2 y 9, con
recursos para continuar o detenerse al final del ciclo.
El Diagrama de funciones: Para comprender mejor su funcionamiento lo haremos utilizando el
diagrama de funciones.
Con las entradas "Habil. Reloj" y "Reset" a tierra, el contador
avanza una etapa a cada transicin positiva de la seal de entrada
(Reloj). Partiendo entonces de la situacin inicial en que "S0" se
Ilustracin 4
llegada del primer pulso de entrada tenemos la primera transicin. "S0" pasa a nivel bajo y
"S1" a nivel alto, todas las dems permanecen en cero.
Con el segundo pulso, "S1" pasa a nivel bajo y "S2" a nivel alto, y as sucesivamente hasta la
ltima.
En modo positivo: Solo el LED que tiene el nivel alto permanece encendido.
Tambin puedes realizar una secuencia
Ilustracin 5
Ilustracin 6
Potenciometro
Ilustracin 7
POTENCIOMETR
O
Circuito temporizador-ventilador
Pic 18F4550
Ilustracin 8
Sensor
Para la parte de la interrupcin (Pausa) fue
necesaria la introduccin de un dispositivo
sensitivo. En nuestro caso optamos por un
sensor ptico infrarrojo, el cual ya viene en un
empaque el cual est diseado para la
introduccin de algn material, no mayor a los
3.1mm.
Encontramos ventaja en este sensor ya que por
su forma y construccin no hay elementos del
Ilustracin 9
Como todo sensor viene con un transmisor y un emisor, que en este caso es un led infrarrojo y un
fototransistor.
La comunicacin de dicho sensor viene dada por el siguiente circuito.
Ilustracin 10
III.
Diseo
Se inicia con una interfaz creada en matlab cuya
funcin es el de configurar el tiempo de encendido y
apagado de nuestro ventilador. Adems cuenta con
un indicador del sensor de interrupcin, seguido esto
mandara el tiempo acordado al PIC 18f4550 y este
lo procesara y mandara la seal de salida a la etapa
de potencia. Esta etapa de potencia cuenta con un
opto-acoplador (MOC3031) el cual al recibir una
seal analgica de 5 volts se hace un switcheo
interno el cual permite polarizar la terminal G (gate)
de nuestro trial (MAC12M), al recibir una seal de
terminales interna de alta potencia y con esto logramos energizar la carga que en nuestro caso es
un ventilador. En todo momento hay una terminal del sensor (ITR8102), conectado al pic para la
interrupcin. Es decir, si el sensor detecta un estado diferente al preestablecido mandara una seal
y el PIC mandar una pausa al temporizador de encendido y apagado. Este proceso se repite hasta
que exista una variacin de los valores de tiempo en MATLAB.
IV.
///////Functions
void ParvusRutina();
void InitPIC();
BYTE GetTransferUSB();
void SetTransferUSB();
int Legio();
int interrupcion = 1;
int giro = 0;
void main()
{
InitPIC();
while(TRUE)
{
if(Legio())
{
SetTransferUSB();
while(Legio());
interrupcion = 0;
SetTransferUSB();
interrupcion = 1;
delay_ms(5);
continue;
}
if(GetTransferUSB())
{
if(giro == 1)
{
output_b(0x0f);
10
void ParvusRutina()
{
int q;
for(q=0; q<6; q++)
{
output_low(PIN_E2);
delay_ms(200);
output_high(PIN_E2);
delay_ms(200);
}
output_low(PIN_E2);
}
void InitPIC()
{
//Inicializacion de puertos
SET_TRIS_E(0x03);
SET_TRIS_B(0x00);
output_b(0x00);
//Inicializacion de puerto USB
usb_init();
//inicializamos el USB
usb_task();
//habilita periferico usb e interrupciones
usb_wait_for_enumeration();
//esperamos hasta que el PicUSB sea configurado por el host
//Canal Analogico//
setup_adc_ports(an0);
setup_adc(adc_clock_internal);
set_adc_channel(0);
delay_us(10);
//Inicializacion Funciones
ParvusRutina();
}
BYTE GetTransferUSB()
{
if(usb_enumerated())
//si el PicUSB est configurado
{
if (usb_kbhit(1))
//si el endpoint de salida contiene datos del host
{
usb_get_packet(1, &giro, 1);
return 1;
}
}
return 0;
11
void SetTransferUSB()
{
usb_put_packet(1, &interrupcion , 1 , USB_DTS_TOGGLE);
}
int Legio()
{
if (read_ADC()>127)
{
return 1;
}
else
{
return 0;
}
}
V.
Diagrama elctrico
12