Vous êtes sur la page 1sur 12

1

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

Ventilador de tiempo programable.


26/09/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

Circuito Luces Navideas


Temporizador

El 555 es un circuito integrado cuya funcin principal es


producir pulsos de temporizacin con precisin, entre sus
funciones secundarias estn la de oscilador, divisor de

Ilustracin 1 555

frecuencia, modulador o generador.


Este circuito integrado incorpora dentro de s, dos comparadores de voltaje, un flip flop, una
etapa de salida de corriente, un divisor de voltaje por resistor y un transistor de descarga.
Dependiendo de cmo se interconecten estas funciones utilizando componentes externos es
posible conseguir que dicho circuito realice un gran nmero de funciones tales como la del multi
vibrador astable y la del circuito monoestable.
El 555 tiene diversas aplicaciones, como: Control de sistemas secuenciales, divisor de
frecuencias, modulacin por ancho de pulso, generacin de tiempos de retraso, repeticin de
pulsos, etc.
2

Ventilador de tiempo programable.


26/09/2014

Ventilador de tiempo programable.


26/09/2014

Contador

4017

Se

trata

de

un

contador/divisor

decodificador con 10 salidas.


Estructuralmente est formado por
Ilustracin 3

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

encuentra a nivel alto y todas las dems a nivel bajo. Con la

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

completa con todas las salidas, algo as


como lo que se ve en la siguiente imagen.

Ilustracin 6

Ventilador de tiempo programable.


26/09/2014

Potenciometro

Un potencimetro es un resistor cuyo valor de resistencia es variable. De


esta manera, indirectamente, se puede controlar la intensidad de
corriente que fluye por un circuito si se conecta en paralelo, o la diferencia
de potencial al conectarlo en serie.

Ilustracin 7
POTENCIOMETR
O

Circuito temporizador-ventilador

Pic 18F4550

Un microcontrolador es un circuito integrado programable que contiene todos los


componentes de un computador, aunque de limitadas prestaciones. Se emplea para controlar el
funcionamiento de una tarea determinada.
Funcionamiento: En su memoria slo decide un programa destinado a controlar una
aplicacin determinada; sus lneas de entrada/salida soportan el conexionado de sensores y
actuadores del dispositivo a gobernar y todos los recursos complementarios disponibles tienen
como nica finalidad atender sus requerimientos.
Permite asignar niveles de prioridad a sus interrupciones de salida. Cuando el dispositivo
tiene mltiples interrupciones de salida para hacer, las realiza en un orden dependiendo de una
relativa prioridad.
Una vez programado y configurado
el microcontrolador solamente sirve
para ejecutar la tarea asignada.

Ilustracin 8

Ventilador de tiempo programable.


26/09/2014

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

ambiente que puedan afectarle con facilidad.

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

Ventilador de tiempo programable.


26/09/2014

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

Ilustracin 11 Diagrama de flujo

entrada en G el triac permite una conduccin por sus

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.

Ventilador de tiempo programable.


26/09/2014

IV.

Diseo del programa

Programa hecho con interfaz Matlab- PIC18F4550


function varargout = PotenciaPraxis1(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @PotenciaPraxis1_OpeningFcn, ...
'gui_OutputFcn', @PotenciaPraxis1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before PotenciaPraxis1 is made visible.
function PotenciaPraxis1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
handles.output = hObject;
global nelegio
nelegio = 0;
movegui('center');
InitUsb();
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes PotenciaPraxis1 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = PotenciaPraxis1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
%
str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.

Ventilador de tiempo programable.


26/09/2014
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit2 as text
%
str2double(get(hObject,'String')) returns contents of edit2 as a double
% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in radiobutton1.
function radiobutton1_Callback(hObject, eventdata, handles)
% hObject handle to radiobutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of radiobutton1
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
set(handles.pushbutton1,'backgroundcolor','g');
pause(.001);
WorkFan(handles,0,0);
set(handles.pushbutton1,'backgroundcolor','m');
pause(.001);
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on key press with focus on figure1 or any of its controls.
function figure1_WindowKeyPressFcn(hObject, eventdata, handles)
global nelegio
nelegio = isequal(eventdata.Key,'escape');
global aux
aux = isequal(eventdata.Key,'tab');
% --- Executes during object deletion, before destroying properties.
function figure1_DeleteFcn(hObject, eventdata, handles)
CloseUsb();
% hObject handle to figure1 (see GCBO)

PROGRAMA PRINCIPAL EN PIC-C


9

Ventilador de tiempo programable.


26/09/2014
Este es el programa principal, tambin se crearon subprogramas para crear funciones para iniciar usb y
cerrar, para hacer la funcin de contar los tiempos, y de recibir y mandar paquetes.
El programa del pic es el siguiente, el cual solo recibe datos de la cantidad de segundos, y enva al
programa si hay una interrupcin por parte del sensor.
#include <18F4550.h>
//#device adc=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN
#use delay(clock=48,000,000)
////////////////////////////////////////////////////////////////////////////////
#define USB_HID_DEVICE
FALSE
//deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for IN bulk/interrupt
transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for OUT bulk/interrupt
transfers
#define USB_EP1_TX_SIZE 10
//size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE 10
//size to allocate for the rx endpoint 1 buffer
////////////////////////////////////////////////////////////////////////////////
#include <pic18_usb.h>
//Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <PicUSB.h>
//Configuracin del USB y los descriptores para este dispositivo
#include <usb.c>
//handles usb setup tokens and get descriptor reports
#include <math.h>
/////////////////////////////////////////////////////////////////////////////

///////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

Ventilador de tiempo programable.


26/09/2014
}
else
{
output_b(0x00);
}
}
}
}

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);
}

// se apaga el led al existir comunicacin usb

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);

//Selecciona el puerto a realizar la conversion


//Selecciona el reloj de conversion

//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

Ventilador de tiempo programable.


26/09/2014
}

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

Vous aimerez peut-être aussi