Sie sind auf Seite 1von 12

TEMA:

CONTROL DE VELOCIDAD DE UN MOTOR CON PWM

1. TEMA:

Control De Velocidad De Un Motor Con PWM


2. MARCO TERICO

Motor elctrico
Es un dispositivo que transforma la energa elctrica en energa
mecnica por medio de la accin de los campos magnticos
generados en sus bobinas. Son mquinas elctricas rotatorias
compuestas por un esttor y un rotor.
Algunos de los motores elctricos son reversibles, ya que pueden
transformar energa mecnica en energa elctrica funcionando como
generadores o dinamo. Los motores elctricos de traccin usados en
locomotoras o en automviles hbridos realizan a menudo ambas
tareas, si se los equipa adecuadamente o con frenos regenerativos.
Son utilizados en infinidad de sectores; instalaciones industriales,
comerciales, particulares; como ventiladores, telfonos, bombas,
mquinas herramientas, aparatos electrodomsticos, herramientas
elctricas y unidades de disco. Los motores elctricos pueden ser
impulsados por fuentes de corriente continua (DC), tal como bateras
de automviles y por fuentes de corriente alterna (AC) bien sea
directamente de la red elctrica bifasica o trifasica.
Ventajas

A igual potencia, su tamao y peso son ms reducidos.

Se pueden construir de cualquier tamao y forma, siempre que


el voltaje lo permita.

Tiene un par de giro elevado y, segn el tipo de motor,


prcticamente constante.

Su rendimiento es muy elevado (tpicamente en torno al 75%,


aumentando a medida que se incrementa la potencia de la
mquina).

Este tipo de motores no emite contaminantes, aunque en la


generacin de energa elctrica de la mayora de las redes de
suministro s emiten contaminantes.

No necesita de refrigeracin ni ventilacin forzada, estn


autoventilados.

No necesita de transmisin/marchas.

Encoder:
Un encoder se usa por lo general para dar impulsos por vueltas y
medir una longitud estn hechos, en principio, a base de barreras
infrarrojas, se les llaman encoders pticos.

Disco de 20 huecos
La mejor opcin es usar cartn rgido o chapa de una lata, ambos se
pueden "mecanizar" con unas simples tijeras. El cartn rgido lo puedes
conseguir de alguna vieja libreta de "tapa dura". Usa un pin de
plstico o pequeo engranaje que encaje con el eje del motor y pegar el
disco dentado con pegamento instantneo al pin o engranaje para
hacer de base al disco del encoder. De esta forma evitars que el disco
se mueva fuera de donde debe y se mantenga siempre plano.

Microcontrolador atmega164p

Microcontrolador atmel de 8 bits con 16-32-64 kbytes de memoria flash


programable, arquitectura risc, 40 pines pdip, 512 bytes/1k/2k de
eeprom, 8-channel, 10-bit adc 2.7 - 5.5vdc de operacion, 10000 ciclos de
borrado y grabado, destinado para aplicacin

3. DIAGRAMA DE BLOQUES

4. Configuraciones principales para la programacin


'******************CONFIGURACIONES Y
DIMENSIONAMIENTOS******************
$regfile = "m164Pdef.dat " 'ATMEGA 164P
$crystal = 8000000
'frecuencia del cristal 8 Mhz
$initmicro
'******************* CONFIGURACIN LCD
ALFANUMRICO********************
Config Lcdpin = Pin, Rs = Porta.0 , E = Porta.2 , D
b4 = Porta.3 , Db5 = Porta.4 ,
Db6 = Porta.5 , Db7 = Porta.6

Config Lcd = 20 * 4

'*********DEFINICIONES INICIALES PARA CONFIGURAR EL TECLADO


**********
Ddrb 0# = 0
Portb 0# = 1
Ddrb 0.1 = 0
Portb 0.1 = 1
Ddrb 0.2 = 0
Portb 0.2 = 1
Ddrb 0.3 = 0
Portb 0.3 = 1
Ddrb 0.4 = 1
Portb 0.4 = 1
Ddrb 0.5 = 1
Portb 0.5 = 1
Ddrb 0.6 = 1
Portb 0.6 = 1
Ddrb 0.7 = 1
Portb 0.7 = 1
'nombres para los pines de las filas
X1 Alias Portb.4
X2 Alias Portb.5
X3 Alias Portb.6
X4 Alias Portb.7
'nombres para los pines de las columnas
Y1 Alias Pinb.0
Y2 Alias Pinb.1
Y3 Alias Pinb.2
Y4 Alias Pinb.3

****************CONTROL DE VELOCIDAD***************
If Tecla < 16 Then
Contador = Contador + 1
If Contador = 1 Then
Aux1 = Tecla
Numero = Aux1
End If
If Contador = 2 Then
Aux2 = Tecla
Aux1 = Aux1 * 10
Numero = Aux1 + Aux2
End If
If Contador = 3 Then
Locate 2 , 7
Lcd "ERROR" ; " "
Waitms 1000
Locate 2 , 7
Lcd "
"
Contador = 0
End If
Locate 1 , 1
Lcd Numero ; " "
End If
If Tecalmas = 15 Then
Cont = Cont + 1
Locate 1 , 7
Lcd "OK" ; " "
Waitms 500
Locate 1 , 7
Lcd " "
If Numero > 60 Then
Locate 1 , 5
Lcd "V.max = 60"
Waitms 1000
Locate 1 , 5
Lcd "
"
Else
Setpoint = Numero
If Cont = 1 Then
Pwm2a = 100
Waitms 1500
V = F / 36
End If
End If

Contador = 0
Aux1 = 0
Aux2 = 0
Tecalmas = 0
End If
Loop
End

5. SIMULACIN

6. CODIGO DE PROGAMACION DEL MICROCONTROLADOR

$REGFILE = "m164pdef.dat"
microcontrolador utilizado
$CRYSTAL = 8000000
Config Timer1 = Counter , Prescale = 1 , Edge = Falling
Config Timer0 = Timer , Prescale = 8
Config Timer2 = Pwm , Pwm = On , Prescale = 8 ,
Compare A Pwm = Clear Up , Compare B Pwm = Clear Down
Ddrd.7 = 1
Ddra = &B11110000
entradas
Porta = &B11111111

configuracion de los prticos como salidas y

'Asignacin de nombres a distintos porticos


Y1 Alias Porta.7
Y2 Alias Porta.6
Y3 Alias Porta.5
Y4 Alias Porta.4
X1 Alias Pina.3
X2 Alias Pina.2
X3 Alias Pina.1
X4 Alias Pina.0
On Timer0 Segundo
Enable Timer0
Enable Interrupts
Dim F As Word
Dim S As Word
Dim V As Word
Dim Velocidad As String * 3
Dim Tecla As Byte
variable que representa la tecla presionada
Dim T As Byte
Dim Contador As Byte
Dim Aux1 As Byte
Dim Aux2 As Byte
Dim Numero As Byte
Dim Setpoint As Word
Dim Resta As Integer
Dim Cont As Word
Timer0 = 255 - 250
Ddrb.1 = 0
Portb.1 = 1
Cls : Cursor Of
INICIO DEL PROGRAMA PRINCIPAL
Pwm2a = 35
Do
Locate 1 , 1
Lcd Numero
V = F / 36
Locate 2 , 1
Lcd V ; "rps" ; " "
CONTROL DE VELOCIDAD
Gosub Controlvelocidad
Tecla = 16
Waitms 300
Reset Y1
If X1 = 0 Then T = 13
If X2 = 0 Then T = 14

If X3 = 0 Then Tecla = 0
If X4 = 0 Then T = 15
Set Y1
Reset Y2
If X1 = 0 Then
If X2 = 0 Then
If X3 = 0 Then
If X4 = 0 Then
Set Y2

T = 12
Tecla = 9
Tecla = 8
Tecla = 7

Reset Y3
If X1 = 0 Then
If X2 = 0 Then
If X3 = 0 Then
If X4 = 0 Then
Set Y3

T = 11
Tecla = 6
Tecla = 5
Tecla = 4

Reset Y4
If X1 = 0 Then
If X2 = 0 Then
If X3 = 0 Then
If X4 = 0 Then
Set Y4

T = 10
Tecla = 3
Tecla = 2
Tecla = 1

If Tecla < 16 Then


Contador = Contador + 1
If Contador = 1 Then
Aux1 = Tecla
Numero = Aux1
End If
If Contador = 2 Then
Aux2 = Tecla
Aux1 = Aux1 * 10
Numero = Aux1 + Aux2
End If
If Contador = 3 Then
Locate 2 , 7
Lcd "ERROR" ; " "
Waitms 1000
Locate 2 , 7
Lcd "
"
Contador = 0
End If
Locate 1 , 1
Lcd Numero ; " "
End If
If Tecalmas = 15 Then
Cont = Cont + 1
Locate 1 , 7
Lcd "OK" ; " "
Waitms 500
Locate 1 , 7
Lcd " "
If Numero > 60 Then
Locate 1 , 5
Lcd "V.max = 60"
Waitms 1000
Locate 1 , 5
Lcd "
"
Else

Setpoint = Numero
If Cont = 1 Then
Pwm2a = 100
Waitms 1500
V = F / 36
End If
End If
Contador = 0
Aux1 = 0
Aux2 = 0
Tecalmas = 0
End If
Loop
End
fin del programa principal
subrutina
Controlvelocidad:
Resta = V - Setpoint
Resta = Abs(resta)
If V > Setpoint Then
If Resta > 20 Then Pwm2a = Pwm2a - 5
If Resta > 10 Then Pwm2a = Pwm2a - 3
If Resta =< 10 Then Pwm2a = Pwm2a - 1
If Pwm2a < 30 Then Pwm2a = 30
End If
If V < Setpoint Then
If Resta > 20 Then Pwm2a = Pwm2a + 5
If Resta > 10 Then Pwm2a = Pwm2a + 2
If Resta > 1 Then Pwm2a = Pwm2a + 1
If Resta <= 1 Then Pwm2a = Pwm2a
If Pwm2a > 250 Then Pwm2a = 250
End If
If V = 0 Then
If Setpoint <> 0 Then
Locate 1 , 5
Lcd "ERROR SEN"
Pwm2a = 0
End If
End If
Return
Subrutina
Segundo:
Timer0 = 255 - 242
Incr S
If S = 3999 Then
S=0
F = Counter1
Counter1 = 0
End If
Return

7. CONCLUSIONES Y RECOMENDACIONES

Se logr controlar la velocidad de giro del motor (RPM) con PWM,


siendo esta modificable a travs del teclado y en el lcd se
muestra los RPM , el PWM actual,y la frecuencia

La seal PWM es una forma de onda digital binaria de una


determinada frecuencia y ciclo de trabajo (duty cycle) variable.
Se recomienda tomar en cuenta la velocidad del microcontrolador
en la programacin puesto que la informacin entregada por los
sensores puede tomar algo de tiempo, especialmente en lo que es
las simulaciones.
Bascom AVR fue una herramienta til que nos permiti trabajar
con facilidad en la programacin de los AVRs.

Das könnte Ihnen auch gefallen