Beruflich Dokumente
Kultur Dokumente
PROYECYO FINAL
AGUILAR JORGE
CHILIQUINGA SANTIAGO
GARCIA SULLY
MEDINA DAVID
NACIMBA JUAN
PAREDES DARWIN
RECALDE LUIS
VILLACIS DAVID
Revisado por:
CD contiene:
donde:
Estos variadores mantienen la razn Voltaje/ Frecuencia (V/Hz) constante entre los
valores mnimo y mximos de la frecuencia de operacin, con la finalidad de evitar la
saturacin magntica del ncleo del motor y adems porque el hecho de operar el
motor a un voltaje constante por encima de una frecuencia dada (reduciendo la
relacin V/Hz) disminuye el par del motor y la capacidad del mismo para proporcionar
potencia constante de salida.
En este mtodo la modulacin del ancho de los pulsos se obtienen por la comparacin
de dos ondas (modulante y portadora) de distinta frecuencia. La modulante define la
frecuencia de la inda del voltaje generado asi como la forma de onda de la corriente en
la carga, en cambio, la portadora determina la frecuencia de conmutacin, la relacin
de las amplitudes de ambas ondas (ndice de modulacin, Im) determinan el valor del
voltaje RMS de la onda fundamental de salida.
El voltaje fundamental RMS de salida vara en forma lineal con respecto al ndice de
modulacin mientras sea mayor que uno, cuando este ndice supera la unidad,
sobremodulacin, el incremento del voltaje deja de ser lineal obteniendo un voltaje
menor al esperado.
CONTENIDO ARMNICO
Los armnicos son generados tanto por la carga como por la fuente. Los armnicos de
la carga, por ejemplo los producidos por conversores de potencia, pueden causar
sobrecalentamiento del ncleo magntico de los transformadores y motores. Los
armnicos de las fuentes son generadas por ondas de voltaje no sinusoidales. Los
armnicos tanto de voltaje como de corriente implican: prdidas de potencia,
interferencias electromagnticas, torque pulsatorios en la mquina de AC.
DISEO DEL VARIADOR DE VELOCIDAD
Para la generacin del bus de DC se usa un conversor trifsico AC/DC no controlado de seis
pulsos cuya configuracin es la siguiente.
Corriente DC
Corriente pico
Puesto que los diodos conducen 120 (sin filtro capacitivo), se puede calcular la corriente
RMS en la ecuacin:
Al utilizar un filtro capacitivo la corriente que circula por los diodos es pulsatoria. El pico
mximo de la corriente se producir cuando el conversor trabaje a plena carga; bajo esta
condicin, el valor del capacitor se calcular para un cierto rizado de terminar el valor de
dicho pico de corriente.
Finalmente el voltaje pico inverso aplicado a cada diodo es igual al voltaje de salida de la
fuente de DC:
PUENTE INVERSOR
El mdulo de salida del variador de velocidad es un puente trifsico formado por seis
elementos electrnicos de conmutacin. La fuente de alimentacin es suministrada por el
bus de DC, el control manejar la conmutacin de estos elementos de tal forma de
entregar un voltaje alterno a la carga. Se escogieron MOSFETS como elemento de
conmutacin por las siguientes caracterstica que presentan:
Tienen una velocidad de respuesta muy alta comparada con los TBJ y los IGBT.
Para el dimensionamiento de los MOSFETS se tiene en cuenta corriente, voltaje y frecuencia de
conmutacin. En el presente proyecto se prevee trabajar con un motor de 0.5 HP y factor de
potencia aproximado de 0.85 con lo que tenemos una corriente por fase aproximada de 2,15
A.
Con la finalidad de evitar una alta corriente en el arranque es recomendable el uso de rampas
de aceleracin, en las que se procura u n crecimiento adecuado de la frecuencia del motor de
acuerdo al caso especfico en el que se use el variador, es asi el caso de este mdulo existen
tres tipos de rampas: la rampa lineal, la rampa tipo S al 50% y rampa S al 100%.
RAMPA LINEAL
El caso de la rampa lineal se entiende que la variacin de la frecuencia del motor aumenta en
forma proporcional al tiempo.
RAMPA TIPO S
Al igual que en la rampa lineal en la rampa tipo S la velocidad crece durante el tiempo indicado
como el tiempo de aceleracin hasta la velocidad deseada, con la diferencia que si se observa
la caracterstica de velocidad con respecto al tiempo esta describe un semiciclo cosenoidal
consiguiendo un incremento o decremento suave de la velocidad.
2. DIAGRAMAS DE FLUJO
Diagrama de Flujo para la Generacin del SPWM a travs del PIC 16F877A
INICIO
DECLARACIN
DE
VARIABLES
GENERA LA
CONFIGURACIN
INTERRUPCIN
DE
POR
TRANSMISIN
RECEPCIN
CONFIGURACIN SALIR DE LA
DE INTERRUPCIN
PUNTERO=0
CONTADOR=251
APAGAR FRECUENCIA
SI
MOSFET 0
NO
CARGAR VALOR
FRECUENCIA AL TIMER DE CONFIGURACIN
NO SI
0 ACUERDO A LA DEL TIMER
FRECUENCIA
NO
NO
SI
CONTADOR =0
Diagrama de Flujo de la Interface Hombre Maquina/Rampas de aceleracin y
desaceleracin a travs del PIC 16F877A
INICIO
DECLARACIN
DE
VARIABLES
CONFIGURACIN
DE
TRANSMISIN
INICIALIZACIN
DE
PARMETROS
6 PARMETRO =1
ESCRIBIR LOS
DATOS EN LCD
SI
NO SI PARMETRO= PARMETRO NO
PROG=0
PARMETRO + 1 >3
NO SI PARMETRO SI FRECUENCIA SI
SUBIR=0
=1 =100
NO NO
FRECUENCIA=
SI FRECUENCIA + 5
PARMETRO
1
=2
NO
SI PARMETRO NO
2
=3
NO SI PARMETRO FRECUENCIA SI
BAJAR=0 =1 =0
NO
NO
NO
ENCENDER=0
PARMETRO SI
3
SI =2 FRECUENCIA=
FRECUENCIA - 5
5 NO
NO
SI PARMETRO
4
=3
SEGUNDOS PARA LAS RAMPAS DE ACELERACIN
1 6 3 6
SEGUNDOS SI SEGUNDOS SI
=100 =0
NO NO
SEGUNDOS = SEGUNDOS =
SEGUNDOS + 1 SEGUNDOS - 1
2 6 4 6
SEGUNDOS SI SEGUNDOS SI
=100 =0
NO NO
SEGUNDOS = SEGUNDOS =
SEGUNDOS + 1 SEGUNDOS - 1
ENCENDER
SEGUNDOS=1 SI CORREGIR
Y 6
FRECUENCIA>10 DATOS
NO
SEGUNDOS=2 SI CORREGIR
Y 6
FRECUENCIA>20 DATOS
NO
7
7 8
SEGUNDOS>5 SI
SEGUNDOS=3 SI CORREGIR APAGAR
Y 6 Y 6
FRECUENCIA>30 DATOS FRECUENCIA=5 MOSFET
NO NO
SEGUNDOS>10 SI
SEGUNDOS=4 SI CORREGIR APAGAR
Y 6 Y 6
FRECUENCIA>40 DATOS FRECUENCIA=10 MOSFET
NO NO
SEGUNDOS>15 SI
SEGUNDOS=5 SI CORREGIR CORREGIR
Y 6 Y 6
FRECUENCIA>50 DATOS FRECUENCIA=15 DATOS
NO NO
SEGUNDOS>20 SI
SEGUNDOS=6 SI CORREGIR CORREGIR
Y 6 Y 6
FRECUENCIA>60 DATOS FRECUENCIA=20 DATOS
NO NO
SEGUNDOS>25 SI
SEGUNDOS=7 SI CORREGIR CORREGIR
Y 6 Y 6
FRECUENCIA>70 DATOS FRECUENCIA=25 DATOS
NO NO
SEGUNDOS>30 SI
SEGUNDOS=8 SI CORREGIR CORREGIR
Y 6 Y 6
FRECUENCIA>80 DATOS FRECUENCIA=30 DATOS
NO NO
SEGUNDOS>35 SI
SEGUNDOS=9 SI CORREGIR CORREGIR
Y 6 Y 6
FRECUENCIA>90 DATOS FRECUENCIA=35 DATOS
NO NO
8 9
9 10
NO NO
NO NO
NO NO
NO NO
NO NO
NO NO
SEGUNDOS>70 SI 11
CORREGIR
Y 6
FRECUENCIA=70 DATOS
NO
10
11 12
CALCULAR TIEMPO
DE ENVI PARA CALCULAR TIEMPO
CADA FRECUENCIA DE ENVI PARA
CADA FRECUENCIA
ENVIAR
FRECUENCIA ENVIAR
FRECUENCIA
ESPERAR
TIEMPO ESPERAR
CALCULADO TIEMPO
CALCULADO
FRECUENCIA=
FRECUENCIA + 5 FRECUENCIA=
FRECUENCIA - 5
NO
FRECUENCIA= NO
FRECUENCIA DE
FRECUENCIA
RAMPA
=0
SI
SI
FUNCIONAMIENTO
6
NORMAL
SI FRECUENCIA SI
SUBIR=0
=100
NO
NO
FRECUENCIA=
FRECUENCIA + 5
SI FRECUENCIA SI
BAJAR=0
=0
NO
APAGAR=0
FRECUENCIA=
FRECUENCIA - 5
12
3. ELEMENTOS USADOS EN EL PROYECTO
Caractersticas:
Semiconductor Material=Silicon
Package=DO-27
Caractersticas
10A, 400V
rDS(ON) = 0. 550
Related Li terature
Components to PC Boards
IRF740 UNITS
TC = 100oC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ID 6.3 A
6 Optoacopladores 6N137
2 PIC 16f877A
LCD1
LM044L
CIRCUITO DE CONTROL
4.
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
C6
U1 R8
R2 10k
22p 13 33 10k
OSC1/CLKIN RB0/INT
X1 14
OSC2/CLKOUT RB1
34
CRYSTAL 1 35
C7 MCLR/Vpp/THV RB2
36
RB3/PGM
2 37 1k
RA0/AN0 RB4
3 38 1k R7
22p 4
RA1/AN1 RB5
39 R1 C4
5
RA2/AN2/VREF- RB6/PGC
40 C1 ENCENDER 0.1uF
6
RA3/AN3/VREF+ RB7/PGD SUBIR 0.1uF
R11 7
RA4/T0CKI
15
RA5/AN4/SS RC0/T1OSO/T1CKI
16 R6
5k6 RC1/T1OSI/CCP2
8 17 10k
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RESET
C8 RC5/SDO
25
0.1uF RC6/TX/CK
26 1k
RC7/RX/DT
R5
19 PROGRAMAR C3 R9
RD0/PSP0 0.1uF
20 10k
RD1/PSP1
21 R4
RD2/PSP2 10k
22 R10
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5 1k
29
RD6/PSP6
30
RD7/PSP7
1k
PIC16F877 R3 C2 APAGAR C5
CABLE COMUNICACION
BAJAR 0.1uF 1nF
C9
22p
X2
CRYSTAL
C10 V4 12V+
V2 12V+
U2
22p 13 33
OSC1/CLKIN RB0/INT RB0
14 34
OSC2/CLKOUT RB1 RB1
35
RB2 RB2
2
RA0/AN0 RB3/PGM
36 U6
3
RA1/AN1 RB4
37 U3
4 38 1 8
RA2/AN2/VREF-/CVREF RB5
5 39 1 8
6
RA3/AN3/VREF+ RB6/PGC
40 R20
7
RA4/T0CKI/C1OUT RB7/PGD R14 RD3
2 7 10k
RA5/AN4/SS/C2OUT 2 7 10k
15 RBO
RC0/T1OSO/T1CKI
8 16
R12 RE0/AN5/RD RC1/T1OSI/CCP2 3 6
9 17
RE1/AN6/WR RC2/CCP1 3 6
10 18 CONTROL 4
RE2/AN7/CS RC3/SCK/SCL 4 5
5k6 23 CONTROL 1
1
RC4/SDI/SDA
24
4 5 R19
MCLR/Vpp/THV RC5/SDO
25 R13 330R 6N137
RC6/TX/CK 330R
26 6N137
RC7/RX/DT
RESET
C11
0.1uF 19 GND 4
RD0/PSP0
20 GND 1
RD1/PSP1
21
RD2/PSP2
22 V4 12V+
RD3/PSP3 RD3
27 V2 12V+
RD4/PSP4 RD4
28
RD5/PSP5 RD5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877A U7
U4
1 8
1 8
R22
R16 RD4
2 7 10k
2 7 10k
RB1
3 6
3 6
CONTROL 5
4 5
CONTROL 2
4 5 R21
R15 330R 6N137
330R 6N137
GND 4
FUENTES PARA EL 6N137 U9 GND 2
V4 12V+
V1 12+
1 3
VI VO V3 12V+
GND
TR1
2
120 VAC
C12 U8
1000u
U5
1 8
1 8
R24
R18 RD5
2 7 10k
2 7 10k
RB3
3 6
3 6
CONTROL 6
4 5
CONTROL 3
4 5 R23
R17 330R 6N137
GND 1 330R 6N137
GND 4
GND 3
5.
CIRCUITO DE POTENCIA
100R
SW1
switch Q1 Q2 Q3 MOTOR
IRF740 IRF740 IRF740
CONTROL 1 CONTROL 1 CONTROL 1 TRIFASICO
D1 D3 D5 INDUCCION
R
220 VAC
S
C11 +88.8
1000 u GND 1 GND 2
T
GND 3
Q4 Q5 Q6
D2 D4 D6 IRF740 IRF740 IRF740
CONTROL 1 CONTROL 1
GND 4
6. PROBLEMAS RESUELTOS DURANTE EL TRANSCURSO DE ARMADO Y
PRUEBAS
Se decidi trabajar con el PIC 16f877A debido a que estamos familiarizados con su
lenguaje de programacin y se lo puede programar tanto en lenguaje de alto nivel
(PIC BASIC) como en lenguaje de bajo nivel (Assembler). La manera de trabajar fue
combinar ambos tipos de programacin en dos dispositivos encapsulados los
cuales estaban comunicados por comunicacin serial asincrnico para transmitir
los datos. El primer encapsulado contiene el ingreso de los datos y el HMI
(Visualizacin Interfaz Hombre Mquina) y su programacin est desarrollada en
alto nivel debido a la facilidad de manejar el LCD de cuatro lneas. Este PIC se
encarga de recibir los datos por medio de pulsadores, una vez cargado los datos en
l ste enva va serial los datos de frecuencia, tiempo de aceleracin y
desaceleracin al segundo encapsulado el cual posee el programa principal del
variador con las tablas y las respectivas rampas de aceleracin y desaceleracin en
lenguaje ensamblador debido a la precisin al manejar tiempos pequeos usando
los timers que posee este microcontrolador.
Tambin se opt por cambiar al LCD de dos lneas por el de cuatro lneas debido a
que este ltimo proporciona al mismo tiempo la posibilidad de configurar y
visualizar todos los datos bajo los que funciona el variador por medio de un men
en el cual se configura la frecuencia (P01), el tiempo de aceleracin (P02) y el
tiempo de desaceleracin (P03) as como el arranque y el paro del inversor (P00).
Se restringieron condiciones como acelerar la mquina en tiempos muy pequeos
a frecuencias muy altas y frenar a la mquina desde un valor de frecuencia alta en
tiempos muy pequeos para evitar sobrecargas en el sistema.
Tuvimos un problema con los Optoacopladores 6N136 ya que estos tenan dos
problemas importantes que deban resolver: El primero fue que la seal de control
a la salida del opto en el nivel bajo no era cero sino tena un valor mayor a 1 voltio,
lo que fue solucionado colocando resistencias de menor valor a la entrada de cada
optoacoplador para proporcionar la corriente necesaria para que el dispositivo
trabaje en corte y saturacin desde luego sin sacar mucha corriente al PIC para
evitar que uno de sus pines se queme (La mxima corriente que se puede sacar es
25 mA por pin). Inicialmente el valor de la resistencia fue de 560 Ohmios. Entonces
colocamos resistencia de 330 Ohmios lo cual nos permita obtener la corriente
suficiente para que trabaje el optoacoplador. El otro problema fue que el retardo
que introducan estos dispositivos era muy grande lo que oblig primero a
aumentar el tiempo muerto en el programa, sin embargo esto no compens el
retardo por lo que se decidi a cambia los opto acopladores 6N136 por los 6N137
ya que su retardo era mucho menor.
7. Conclusiones y Recomendaciones
CONCLUSIONES
RECOMENDACIONES
8. Bibliografa
es.wikipedia.org/wiki/Accionamiento_de_Velocidad_Variable
ciecfie.epn.edu.ec/JIEE/historial/XIXJIEE/15Paper_variador.pdf
Diseo y Construccin de un variador de velocidad con el Microcontrolador
80C196MC.
XIX Jornadas en Ingeniera Elctrica y Electrnica.
Programa en assembler para el pic que genera los SPWM incluido solamente la tabla
para 5 HZ
LIST P=16F877A
#INCLUDE <P16F877A.IN C>
ORG 0X00
GOTO INICIO
ORG 0X04
MOVWF W_TEMP ;GUARDAR ESTADO
SWAPF STATUS,W ;DE W, PCLATH, STATUS;
CLRF STATUS
MOVWF STATUS_TEMP
MOVF PCLATH,W
MOVWF PCLATH_TEMP
CLRF PCLATH
GOTO RECEPTA_DATO
INICIO
;**************************************************************************************************
;**********CONFIGURACION DE LA TRANSMICION Y RECEPCION*********************************************
;**************************************************************************************************
BANKSEL INTCON
MOVLW B'11000000'
MOVWF INTCON
BANKSEL TRISC
BSF TRISC,7
BANKSEL PIE1
BSF PIE1,RCIE
BANKSEL RCSTA
MOVLW B'10010000'
MOVWF RCSTA
BANKSEL TXSTA
MOVLW B'00100100' ;CONFIGURO EL
USART
MOVWF TXSTA
MOVLW .129 ;9600
BAUDIOS
MOVWF SPBRG
;*****************************************************************************************************
;*****************************************************************************************************
;*****************************************************************************************************
BANKSEL TRISB
CLRF TRISB ; SALIDAS PWM
CLRF TRISD ; SALIDAS PWM
BANKSEL PORTB
; MOVLW .5 ;CARGO EL DATO DE LA FRECUENCIA, CON LA COMUNICACION
EN SERIE
; MOVWF FRECUENCIA
NUEVO_CICLO
FRECUENCIA_0
MOVLW .255
MOVWF PORTD
MOVWF PORTB
GOTO NUEVO_CICLO
FRECUENCIA_5
BANKSEL PR2
MOVLW .243
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000011'
MOVWF T2CON
CONTINUAR_F5
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X08
PAGESEL TABLA_SEN5
CALL TABLA_SEN5
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F5
GOTO NUEVO_CICLO
FRECUENCIA_10
BANKSEL PR2
MOVLW .118
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000011'
MOVWF T2CON
CONTINUAR_F10
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X09
PAGESEL TABLA_SEN10
CALL TABLA_SEN10
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F10
GOTO NUEVO_CICLO
FRECUENCIA_15
BANKSEL PR2
MOVLW .76
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000011'
MOVWF T2CON
CONTINUAR_F15
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X0A
PAGESEL TABLA_SEN15
CALL TABLA_SEN15
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F15
GOTO NUEVO_CICLO
FRECUENCIA_20
BANKSEL PR2
MOVLW .55
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000011'
MOVWF T2CON
CONTINUAR_F20
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X0B
PAGESEL TABLA_SEN20
CALL TABLA_SEN20
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F20
GOTO NUEVO_CICLO
FRECUENCIA_25
BANKSEL PR2
MOVLW .180
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
CONTINUAR_F25
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X0C
PAGESEL TABLA_SEN25
CALL TABLA_SEN25
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F25
GOTO NUEVO_CICLO
FRECUENCIA_30
BANKSEL PR2
MOVLW .145
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
CONTINUAR_F30
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X0D
PAGESEL TABLA_SEN30
CALL TABLA_SEN30
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F30
GOTO NUEVO_CICLO
FRECUENCIA_35
BANKSEL PR2
MOVLW .122
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
CONTINUAR_F35
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X0E
PAGESEL TABLA_SEN35
CALL TABLA_SEN35
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F35
GOTO NUEVO_CICLO
FRECUENCIA_40
BANKSEL PR2
MOVLW .104
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
CONTINUAR_F40
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X10
PAGESEL TABLA_SEN40
CALL TABLA_SEN40
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F40
GOTO NUEVO_CICLO
FRECUENCIA_45
BANKSEL PR2
MOVLW .90
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
CONTINUAR_F45
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X11
PAGESEL TABLA_SEN45
CALL TABLA_SEN45
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F45
GOTO NUEVO_CICLO
FRECUENCIA_50
BANKSEL PR2
MOVLW .79
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
CONTINUAR_F50
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X12
PAGESEL TABLA_SEN40
CALL TABLA_SEN40
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F50
GOTO NUEVO_CICLO
FRECUENCIA_55
BANKSEL PR2
MOVLW .70
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
CONTINUAR_F55
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X13
PAGESEL TABLA_SEN55
CALL TABLA_SEN55
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F
GOTO CONTINUAR_F55
GOTO NUEVO_CICLO
FRECUENCIA_60
BANKSEL PR2
MOVLW .62
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_65
BANKSEL PR2
MOVLW .56
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_70
BANKSEL PR2
MOVLW .51
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_75
BANKSEL PR2
MOVLW .46
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_80
BANKSEL PR2
MOVLW .42
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_85
BANKSEL PR2
MOVLW .38
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_90
BANKSEL PR2
MOVLW .35
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_95
BANKSEL PR2
MOVLW .32
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
FRECUENCIA_100
BANKSEL PR2
MOVLW .30
MOVWF PR2
BANKSEL T2CON
MOVLW B'00000001'
MOVWF T2CON
GOTO SOBREMODULACION
SOBREMODULACION
MOVF PUNTERO,W
MOVWF CONT
MOVLW 0X14
PAGESEL TABLA_SEN60
CALL TABLA_SEN60
PAGESEL INICIO
MOVWF SPWM
CALL ENVIO_SPWM
DECFSZ CONTADOR_MUESTRAS,F ; ACAB DE TRAER LOS 252 VALORES DE
LA TABLA? SI-- SALTE NO-- SIGA
GOTO SOBREMODULACION
GOTO NUEVO_CICLO
ENVIO_SPWM
BANKSEL T2CON
BSF T2CON,TMR2ON ; ENCENDER TMR2
BTFSS PIR1,TMR2IF ; DESBORDAMIENTO
GOTO $-1
BCF T2CON,TMR2ON ; APAGAR TMR2
BCF PIR1,TMR2IF ; LIM PIAR DESBORDAMIENTO
CLRF TMR2 ; LIM PIAR TIM ER
COMF SPWM
BTFSS SPWM,0
GOTO UNO
GOTO CERO
UNO
MOVF SPWM,W
MOVWF PORTD ; SALIDAS PWM
NOP ;0,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;0,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;0,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;0,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;12,0 MICROSEGUNDO TIEMPO MUERTO
MOVWF PORTB ; SALIDAS PWM
GOTO ACA
CERO
MOVF SPWM,W
MOVWF PORTB ; SALIDAS PWM
NOP ;0,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;0,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;0,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;0,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;1,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;2,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;3,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;4,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;5,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;6,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;7,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;8,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;9,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;10,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,0 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,2 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,4 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,6 MICROSEGUNDO TIEMPO MUERTO
NOP ;11,8 MICROSEGUNDO TIEMPO MUERTO
NOP ;12,0 MICROSEGUNDO TIEMPO MUERTO
MOVWF PORTD ; SALIDAS PWM
ACA
BSF T2CON,TMR2ON ; ENCENDER TMR2
INCF PUNTERO,F
RETURN
;***************************************************************************
;******************************IN TERRUPCION*********************************
;***************************************************************************
RECEPTA_DATO
BANKSEL PIR1
lazo2 BTFSS PIR1,RCIF
GOTO lazo2
BCF PIR1,RCIF
MOVF RCREG,W
MOVWF DATO_R
MOVF DATO_R,W
MOVWF FRECUENCIA
GOTO SAL
SAL
MOVF PCLATH_TEMP,W
MOVWF PCLATH
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE
;RETORNO DE INTERRUPCIONES;;;;;
;********************************************************************************
;********************************************************************************
;******************************************************************************
INICIO:
PARAMETRO=1
FRECUENCIA=0
AUX_4=0
read 5,AUX_1
READ 6,SEGUNDOS
READ 7,SEGUNDOS_DES
TRISC =255
LCDOUT $FE,1
;******************************************************************************
LCD:
LCDOUT $FE,$80,"VARIADOR OFF"," ","P0",DEC PARAMETRO
GOSUB VER_FRECUENCIA
GOSUB VER_RAMPAS
GOSUB VER_RAMPAS_DES
IF SUBIR=0 THEN PREGUNTAR
IF BAJAR=0 THEN PREGUNTAR
IF PROG=0 THEN INCREMENTAR_PROG
IF OK=0 THEN ENCENDER
GOTO LCD
;******************************************************************************
INCREMENTAR_PROG:
IF PROG=0 THEN INCREMENTAR_PROG
PARAMETRO=PARAMETRO+1
IF PARAMETRO=4 THEN PARAMETRO=1
GOTO LCD
;******************************************************************************
PREGUNTAR:
IF PARAMETRO=1 THEN FRECUENCIA_VARIADOR
IF PARAMETRO=2 THEN RAMPAS_ACELERACION
IF PARAMETRO=3 THEN RAMPAS_DESACELERACION
;*******************************************************************************
FRECUENCIA_VARIADOR:
IF BAJAR=0 THEN BAJAR_FREC
SUBIR_FREC:
IF SUBIR=0 THEN SUBIR_FREC
IF AUX_1=100 THEN LCD
AUX_1=AUX_1+5
WRITE 5,AUX_1
GOTO LCD
BAJAR_FREC:
IF BAJAR=0 THEN BAJAR_FREC
IF AUX_1=5 THEN LCD
AUX_1=AUX_1-5
WRITE 5,AUX_1
GOTO LCD
;******************************************************************************
VER_FRECUENCIA:
LCDOUT $FE,$C0,"FRECUENCIA=",DEC FRECUENCIA,"HZ"," "
RETURN
;******************************************************************************
RAMPAS_ACELERACION:
IF BAJAR=0 THEN BAJAR_RAMPAS
SUBIR_RAMPAS:
IF SUBIR=0 THEN SUBIR_RAMPAS
IF SEGUNDOS=100 THEN LCD
SEGUNDOS=SEGUNDOS+1
WRITE 6,SEGUNDOS
GOTO LCD
BAJAR_RAMPAS:
IF BAJAR=0 THEN BAJAR_RAMPAS
IF SEGUNDOS=1 THEN LCD
SEGUNDOS=SEGUNDOS-1
WRITE 6,SEGUNDOS
GOTO LCD
;******************************************************************************
VER_RAMPAS:
LCDOUT $FE,$94,"T_ACEL=",DEC SEGUNDOS,"SEG"," F=",DEC AUX_1,"HZ "
RETURN
;******************************************************************************
RAMPAS_DESACELERACION:
IF BAJAR=0 THEN BAJAR_DES
SUBIR_DES:
IF SUBIR=0 THEN SUBIR_DES
IF SEGUNDOS_DES=100 THEN LCD
SEGUNDOS_DES=SEGUNDOS_DES+1
WRITE 7,SEGUNDOS_DES
GOTO LCD
BAJAR_DES:
IF BAJAR=0 THEN BAJAR_DES
IF SEGUNDOS_DES=1 THEN lcd
SEGUNDOS_DES=SEGUNDOS_DES-1
WRITE 7,SEGUNDOS_DES
GOTO LCD
;******************************************************************************
VER_RAMPAS_DES:
LCDOUT $FE,$D4,"T_DESACEL=",DEC SEGUNDOS_DES,"SEG"," EPN"
RETURN
;******************************************************************************
ENCENDER:
FRECUENCIA=AUX_1
SEG=SEGUNDOS
GOTO COMPARAR:
APAGAR_FRECUENCIA:
SEG=SEGUNDOS_DES
COMPARAR:
IF (SEG=1 AND FRECUENCIA>10) THEN VISUALIZAR
IF (SEG=2 AND FRECUENCIA>20) THEN VISUALIZAR
IF (SEG=3 AND FRECUENCIA>30) THEN VISUALIZAR
IF (SEG=4 AND FRECUENCIA>40) THEN VISUALIZAR
IF (SEG=5 AND FRECUENCIA>50) THEN VISUALIZAR
IF (SEG=6 AND FRECUENCIA>60) THEN VISUALIZAR
IF (SEG=7 AND FRECUENCIA>70) THEN VISUALIZAR
IF (SEG=8 AND FRECUENCIA>80) THEN VISUALIZAR
IF (SEG=9 AND FRECUENCIA>90) THEN VISUALIZAR
IF (FRECUENCIA=5 AND SEG>5) THEN VISUALIZ AR
IF (FRECUENCIA=10 AND SEG>10) THEN VISUALIZAR
IF (FRECUENCIA=15 AND SEG>15) THEN VISUALIZAR
IF (FRECUENCIA=20 AND SEG>20) THEN VISUALIZAR
IF (FRECUENCIA=25 AND SEG>25) THEN VISUALIZAR
IF (FRECUENCIA=30 AND SEG>30) THEN VISUALIZAR
IF (FRECUENCIA=35 AND SEG>35) THEN VISUALIZAR
IF (FRECUENCIA=40 AND SEG>40) THEN VISUALIZAR
IF (FRECUENCIA=45 AND SEG>45) THEN VISUALIZAR
IF (FRECUENCIA=50 AND SEG>50) THEN VISUALIZAR
IF (FRECUENCIA=55 AND SEG>55) THEN VISUALIZAR
IF (FRECUENCIA=60 AND SEG>60) THEN VISUALIZAR
IF (FRECUENCIA=65 AND SEG>65) THEN VISUALIZAR
IF (FRECUENCIA=70 AND SEG>70) THEN VISUALIZAR
IF (FRECUENCIA=75 AND SEG>75) THEN VISUALIZAR
IF (FRECUENCIA=80 AND SEG>80) THEN VISUALIZAR
IF (FRECUENCIA=85 AND SEG>85) THEN VISUALIZAR
IF (FRECUENCIA=90 AND SEG>90) THEN VISUALIZAR
IF (FRECUENCIA=95 AND SEG>95) THEN VISUALIZAR
IF AUX_4=1 THEN APAGAR
GOTO CALCULO
VISUALIZAR:
LCDOUT $FE,$80,"ERROR PROGRAMACION"
PAUSE 2000
FRECUENCIA=0
IF AUX_4=1 THEN AUX_4=0:GOTO APAGAR_2
GOTO LCD
CALCULO:
PASOS=FRECUENCIA/5
TIEMPO=SEGUNDOS*1000
TIEMPO=TIEMPO/PASOS
AUX_2=FRECUENCIA
FRECUENCIA=0
LCDOUT $FE,$80,"VARIADOR ON "," ","P0",DEC PARAMETRO
ENVIAR_RAMPA:
GOSUB VER_FRECUENCIA
GOSUB ENVIAR_FRECUENCIA
IF FRECUENCIA=AUX_2 THEN TIEMPO=0:GOTO FUNCIONAMIENTO_NORMAL
FRECUENCIA=FRECUENCIA+5
IF NO=0 THEN APAGAR
PAUSE TIEMPO
GOTO ENVIAR_RAMPA
;******************************************************************************
FUNCIONAMIENTO_NORMAL:
GOSUB VER_FRECUENCIA
IF SUBIR =0 THEN SUBIR_FRECUEN
IF BAJAR=0 THEN BAJAR_FRECUEN
IF NO=0 THEN AUX_4=1: GOTO APAGAR_FRECUENCIA
goto FUNCIONAMIENTO_NORMAL
SUBIR_FRECUEN:
IF SUBIR =0 THEN SUBIR_FRECUEN
IF FRECUENCIA=100 THEN FUNCIONAMIENTO_NORMAL
FRECUENCIA=FRECUENCIA+5
GOSUB ENVIAR_FRECUENCIA
GOTO FUNCIONAMIENTO_NORMAL
BAJAR_FRECUEN:
IF BAJAR=0 THEN BAJAR_FRECUEN
IF FRECUENCIA=0 THEN FUNCIONAMIENTO_NORMAL
FRECUENCIA=FRECUENCIA-5
GOSUB ENVIAR_FRECUENCIA
GOTO FUNCIONAMIENTO_NORMAL
APAGAR:
AUX_4=0
PASOS=FRECUENCIA/5
PASOS=PASOS-1
TIEMPO=SEGUNDOS_DES*1000
TIEMPO=TIEMPO/PASOS
APAGAR_1:
IF FRECUENCIA=0 THEN LCD
FRECUENCIA=FRECUENCIA-5
GOSUB VER_FRECUENCIA
APAGAR_2
GOSUB ENVIAR_FRECUENCIA
PAUSE TIEMPO
IF FRECUENCIA=0 THEN TIEMPO=0:GOTO LCD
GOTO APAGAR_1
ENVIAR_FRECUENCIA:
SEROUT PORTC.6,T9600,[FRECuencia]
RETURN
END
Formas de Ondas Obtenidas del Variador
Circuito de Control
Circuito de Fuerza
Circuito total armado en el laboratorio
Foto del Grupo