Está en la página 1de 3

27/09/2017

Modulador de Ancho de Pulsos

Programacin en lenguaje C Ton


Toff

para 10%

T
Microcontroladores
PIC18FXXXX T=Ton+Toff
50%
Tcnica para controlar circuitos analgicos con
PWM Y MOTORES salidas de procesadores digitales.
Puede usarse para controlar la velocidad de un motor,
la intensidad de una lmpara, etc.
Ing. Germn Jess Pereira Muoz La base de PWM es la variacin del ciclo til
(DutyCycle) de una seal cuadrada.
90%

07/20/10 Ing. German Pereira Muoz 2


20/08/10 Ing. Germn Jess Pereira Muoz 1

PWM (funciones)
PWMx_Init
PWMx_Set_Duty
PWMx_Start
PWMx_Stop

X Representa el PWM puede tomar datos de 1 o 2


dependiendo el modelo

Ing. German
07/20/10 Pereira Muoz 27/09/2017 4 Ing. Germn Jess Pereira Muoz

PWM1_Init PWM1_Set_Duty
Descripcin: Inicializa el modulo PWM. El parmetro Descripcin: Setea el duty del PWM, el parmetro duty
freq es la frecuencia en Hz del PWM deseado toma valores desde 0 255, donde 0 es 0%, 127 es 50% y 255
es 100%. Otros valores especficos pueden ser calculados
como:
Prototipo: void PWM1_Init(const long freq);
duty = (Porcentaje*255)/100

Ejemplo: Prototipo:
void PWM1_Set_Duty(unsigned short duty);
Initializa el modulo PWM a 5KHz:
PWM1_Init(5000); Ejemplo:
Setea el duty a un 75%:
PWM1_Set_Duty(192);

27/09/2017 5 Ing. Germn Jess Pereira Muoz 27/09/2017 6 Ing. Germn Jess Pereira Muoz

1
27/09/2017

PWM1_Start PWM1_Stop
Descripcin: Para el PWM
Descripcin: Inicializa el PWM
Prototipo:
Prototipo:
void PWM1_Stop(void);
void PWM1_Start(void);
Ejemplo:
Ejemplo:
PWM1_Stop();
PWM1_Start();

27/09/2017 7 Ing. Germn Jess Pereira Muoz 27/09/2017 8 Ing. Germn Jess Pereira Muoz

PWM(esquemtico) RA0 2
U1
15
PWM
RA0/AN0 RC0/T1OSO/T1CKI

(programa part I )
RA1 3 16
RA1/AN1 RC1/T1OSI/CCP2/UOE
X1 RA2 4 17 RC2
RA2/AN2/VREF-/CVREF RC2/CCP1/P1A A
RA3 5 23
RA3/AN3/VREF+ RC4/D-/VM
6 24 RC1
RA4/T0CKI/C1OUT/RCV RC5/D+/VP B
7 25
RA5/AN4/SS/LVDIN/C2OUT RC6/TX/CK
14 26
CRYSTAL RA6/OSC2/CLKO RC7/RX/DT/SDO C
13
OSC1/CLKI
D
RB0 33 19 RD0
RA0
R2 RB1 34
RB0/AN12/INT0/FLT0/SDI/SDA RD0/SPP0
20 RD1
RB1/AN10/INT1/SCK/SCL RD1/SPP1
RB2 35 21 RD2
10k RB2/AN8/INT2/VMO RD2/SPP2
RB3 36 22 RD3
RB3/AN9/CCP2/VPO RD3/SPP3
RB4 37 27 RD4
RA1
R3 RB5 38
RB4/AN11/KBI0/CSSPP RD4/SPP4
28 RD5
RB5/KBI1/PGM RD5/SPP5/P1B
RB6 39 29 RD6
10k RB6/KBI2/PGC RD6/SPP6/P1C
RB7 40 30 RD7
RB7/KBI3/PGD RD7/SPP7/P1D
RA2
R9 8
RE0/AN5/CK1SPP
9
10k RE1/AN6/CK2SPP
10 R1
RE2/AN7/OESPP
R11 18 1
VUSB RE3/MCLR/VPP
RA3
10k
10k PIC18F4550

RB0
R4
10k 16 8 U2
RB1
R5 RD0 2 3
IN1 VSS VS OUT1
RD1 7 6
10k IN2 OUT2
RC2 1 +88.8
EN1
RB2
R6
RB3 9
10k EN2
RD2 10 11
RB3
R7 RD3 15
IN3 OUT3
14
IN4 GND GND OUT4
10k
+88.8
L293D

20/08/10
20/08/10
20/0/10 Ing. Germn Jess Pereira Muoz 9 20/08/10
20/8/10 Ing. Germn Jess Pereira Muoz 10

PWM
(programa part II )

20/08/10
20/8/10 Ing. Germn Jess Pereira Muoz 11 20/08/10 Ing. Germn Jess Pereira Muoz 12

2
27/09/2017

Ejercicio propuesto I Ejercicio propuesto II


Implementar el ejercicio del circuito con cuatro Implementar en el ejercicio anterior sensores de
motores. fin de carrera.

20/08/10 Ing. Germn Jess Pereira Muoz 13 20/08/10 Ing. Germn Jess Pereira Muoz 14

Ejercicio propuesto III


Implementar en el ejercicio I, con sensores de fin de
carrera, y desplegar la informacin en un LCD de
20*4, Informacin a desplegar:
1. Estado de los motores
2. Teclas presionadas
3. Mensajes de sensores

20/08/10 Ing. Germn Jess Pereira Muoz 15 20/08/10 16 Ing. Germn Jess Pereira Muoz

También podría gustarte