Vous êtes sur la page 1sur 7

INSTITUTO TECNOLGICO DE ESTUDIOS SUPERIORES

DE LOS CABOS
NOMBRE DEL FORMATO: Practicas de laboratorio

CDIGO: F-DA-01-003

RESPONSABLE: Direccin acadmica y de investigacin

HOJA: 1 de 7
REVISIN: 4

Desarrollo de la Prctica
Unidad de aprendizaje: 5

Practica nmero: 4

Nombre de la prctica: PWM


Propsito: Que el estudiante conozca y utilice un PWM implementado desde el
PIC16F877A para el control de un motor de DC.
Escenario: Taller de Electromecnica

Materiales

1. PIC 16F877A
2. Tarjeta de desarrollo
3. Quemador de PICs
4. Cable USB

Duracin: 10 horas

Maquinaria y equipo

1. Computadora
2. Fuente de CD

Herramientas

1. Pinzas de corte

INSTITUTO TECNOLGICO DE ESTUDIOS


SUPERIORES DE LOS CABOS
NOMBRE DEL FORMATO: Practicas de laboratorio

CDIGO: F-DA-01003

RESPONSABLE: Direccin acadmica y de investigacin

HOJA: 2 de 7
REVISIN: 4

Procedimiento
El estudiante disear e implementar programas que utilicen el PWM disponible en el
PIC16F877A para el control de velocidad y posicin de un motor de DC.
Para ello investigar en qu consiste el PWM, cmo activarlo y cmo implementarlo
para el control del motor de DC.
Los programas y las aplicaciones sern a libre eleccin, pero el estudiante debe
evidenciar mediante vdeo la implementacin de las mismas, as como incluir en el
reporte de prctica los cdigos bien comentados y las conclusiones.

INSTITUTO TECNOLGICO DE ESTUDIOS


SUPERIORES DE LOS CABOS
NOMBRE DEL FORMATO: Practicas de laboratorio

CDIGO: F-DA-01003

RESPONSABLE: Direccin acadmica y de investigacin

HOJA: 3 de 7
REVISIN: 4

'Practica 4: Programa seguidor de luz para panel solar (Control de posicin)


'- hecho en BASIC - PICsimulator
'18/11/15
'Atayde Serrano David Emilio
'& Pimienta Berrelleza David Alonso
'7IE-01V
'--------------------------------------------------'Declaracion de variables necesarias para el programa
'variables de PWM
Dim duty As Byte
Dim duty1 As Single
Dim duty2 As Byte
'Variables para seleccion de direccion del motor
Dim x As Bit
Dim y As Word
TRISA = 0xff
PORTA = 0x00
TRISB = 0xff
PORTB = 0x00
TRISD = 0x00
PORTD = 0x00
TRISC = 0x00
PORTC = 0x00
PWMon 1, 9 'Seleccion de la modalidad de la salida RC2 (PWM)
x=0
main: 'programa principal
Gosub medicion
Goto main
End
medicion:
If x = 0 Then
For y = 0 To 20000 Step 1
RC0 = 0 'activa el relevador que acciona el motor a la derecha
Adcin 0, duty 'se mueve entre 72 (1.41 V)(sin luz) y 151 (2.95 V)bytes (saturado)
duty1 = ((-3.2278) * duty) + 487.41 'formula para invertir y corregir la seal de 72-151 a
255-0

INSTITUTO TECNOLGICO DE ESTUDIOS


SUPERIORES DE LOS CABOS
NOMBRE DEL FORMATO: Practicas de laboratorio

CDIGO: F-DA-01003

RESPONSABLE: Direccin acadmica y de investigacin

HOJA: 4 de 7
REVISIN: 4

If duty < 72 Then


duty1 = 255
Endif
If duty > 143 Then '(151 total)... 143 = correccion para que se mueva solo cuando el
transistor capta menos del 90%
duty1 = 0
Endif
duty2 = duty1
PWMduty 1, duty2 'toma el valor de duty2 para utilizarlo como pwm
WaitMs 1
Next y
x = 1 'cambia a la condicion de regreso
Else
RC0 = 1 'activa el relevador que acciona el motor a la izquierda
WaitMs 6000
x = 0 'regresa a la condicion de "busqueda de luz"
Endif
Return

INSTITUTO TECNOLGICO DE ESTUDIOS


SUPERIORES DE LOS CABOS
NOMBRE DEL FORMATO: Practicas de laboratorio

CDIGO: F-DA-01003

RESPONSABLE: Direccin acadmica y de investigacin

HOJA: 5 de 7
REVISIN: 4

'Nombre: Control de velocidad


'Fecha: 16/11/2015
'Autores: Atayde David y Pimienta David
'Grupo: 7IE-01V
'****************************************
'Notas:
'Se pretende controlar la velocidad de un ventilador pequeo mediante la modulacin de
ancho de pulso y un sensor hc-sr04
'****************************************
'****** Declaracin de variables globales *******
Dim distancia As Word
Dim tiempo As Single
Dim timer As Long
Dim time As Word
Dim time2 As Word
Dim duty As Byte
Dim duty1 As Single
Dim duty3 As Single
Dim duty4 As Word
'************* Se definen los registros para el control de la pantalla lcd **************
Define LCD_BITS = 8 'Lcd configurado para 8 bits
Define LCD_DREG = PORTB 'El puerto B para datos de salida
Define LCD_DBIT = 0
Define LCD_RSREG = PORTD
Define LCD_RSBIT = 5 'Registro Rs en el puerto RD5
Define LCD_EREG = PORTD
Define LCD_EBIT = 7 'Registro E en el puerto RD7
Define LCD_RWREG = PORTD
Define LCD_RWBIT = 6 'Registro RW en el puerto RD6
Lcdinit LcdCurOff 'Inicializa el lcd
'**********************Otras configuraciones*****************************
PWMon 1, 9 'Se define el registro pwm, el primer argumento es el modulo pwm y el
segundo argumento es el modo a emplear (8-bit, 15625Hz)
Symbol trigger = PORTD.4 'PIN TRIGGER del sensor HC-SR04 en el puerto RD4
Symbol echo = PORTC.7 'Variable ECHO del sensor HC-SR04 en el puerto RC7
TRISD.4 = 0 'Se configura trigger como salida
TRISC.7 = 1 'Se configura echo como entrada
OPTION_REG = %10000111 'Configuacin del registro timer0, con preescaler 1:256

INSTITUTO TECNOLGICO DE ESTUDIOS


SUPERIORES DE LOS CABOS
NOMBRE DEL FORMATO: Practicas de laboratorio

CDIGO: F-DA-01003

RESPONSABLE: Direccin acadmica y de investigacin

HOJA: 6 de 7
REVISIN: 4

'************* Programa principal **************


main:
time = 50
time2 = 1000
Gosub envio 'Ve al subprograma "envio"
Gosub recibo 'Ve al subprograma "recibo"
Goto main 'Retorna al programa principal
End
envio:
trigger = 1 'trigger en estado alto
WaitUs 10 'espera 10 microsegundos
trigger = 0 'Trigger en estado bajo
Return
recibo:
While echo = 0 'mientras echo sea 0 no hagas nada
Wend
TMR0 = 0 'En el instante que echo cambia a 1, comienza la cuenta del timer0
While echo = 1 'Miestras echo siga en 1, cuenta.
Wend
Gosub calculo 'Una vez que echo regresa a 0, ve al subprograma calculo
Return
calculo:
timer = TMR0
tiempo = (timer * 256 * 0.0000002) 'calculo del tiempo en segundos
distancia = tiempo * 17000 'calculo de la distancia en cm
WaitMs 1000
Gosub pwm
Return
pwm:
duty1 = ((-1.1697) * distancia) + 257.34 'Formula para obtener el ciclo de trabajo a
partir de la distancia medida por el HC-SR04
duty = duty1
If distancia < 2 Then
duty = 255
Endif
If distancia > 220 Then
duty = 0
Endif

INSTITUTO TECNOLGICO DE ESTUDIOS


SUPERIORES DE LOS CABOS
NOMBRE DEL FORMATO: Practicas de laboratorio

CDIGO: F-DA-01003

RESPONSABLE: Direccin acadmica y de investigacin

HOJA: 7 de 7
REVISIN: 4

PWMduty 1, duty
duty3 = 0.3922 * duty 'Se convierte el valor de duty(0-256) a porcentaje(0-100%)
duty4 = duty3
Gosub display
Return
display:
Lcdcmdout LcdClear 'Limpia el lcd
Lcdcmdout LcdLine1Home 'Configura la primer linea del lcd
Lcdout "distancia=", #distancia, "cm" 'Imprime en la primer linea, "distancia=", el valor
de distancia y "cm"
Lcdcmdout LcdLine2Home 'Configura la segunda linea del lcd
Lcdout "pwm=", #duty4, "%" 'Imprimer en la segunda linea "pwm=", valor de duty4 y
simbolo porcentaje
WaitMs time2
Return

Link del video 1/2 (Youtube) practica 4 Seguidor de luz con motor dc:
https://www.youtube.com/watch?v=EnYny2WFQwU
Link del video 2/2 (Youtube) practica 4 control de velocidad mediante pwm utilizando
sensor ultrasnico:
https://www.youtube.com/watch?v=vem4bE17mSo

Vous aimerez peut-être aussi