NuMaker PWM1 drive +5V DC servo motor

Committer:
shliu1
Date:
Mon Oct 02 14:29:09 2017 +0800
Revision:
7:cd68421d2a50
Parent:
4:cae45e2ca73a
Child:
8:03564884cf96
modify main.cpp for M487

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rkuo2000 0:68283046ceea 1 // NuMaker-PFM-NUC472 : PWM1 output to drive DC servo motor
rkuo2000 0:68283046ceea 2 #include "mbed.h"
rkuo2000 0:68283046ceea 3
shliu1 4:cae45e2ca73a 4 #if defined(TARGET_NUMAKER_PFM_NUC472)
rkuo2000 0:68283046ceea 5 PwmOut pwm1(PF_10); // PWM1 pinname
shliu1 4:cae45e2ca73a 6 #elif defined(TARGET_NUMAKER_PFM_M453)
shliu1 4:cae45e2ca73a 7 PwmOut pwm1(PC_7);
shliu1 7:cd68421d2a50 8 #elif defined(TARGET_NUMAKER_PFM_M487)
shliu1 7:cd68421d2a50 9 PwmOut pwm1(PA_4); // PWM1 pinname
shliu1 4:cae45e2ca73a 10 #endif
rkuo2000 0:68283046ceea 11
rkuo2000 0:68283046ceea 12 int main() {
rkuo2000 0:68283046ceea 13
rkuo2000 0:68283046ceea 14 int i=0;
rkuo2000 0:68283046ceea 15 printf("...DCserv Start...\n\r");
rkuo2000 0:68283046ceea 16 pwm1.period_us(20000); // set PWM period to 20ms (50Hz)
rkuo2000 0:68283046ceea 17
rkuo2000 0:68283046ceea 18 for (i=500; i<=2500; i=i+200) { // from 0.5ms to 2.5ms
rkuo2000 0:68283046ceea 19 pwm1.pulsewidth_us(i); // set PWM pulse width to rotate motor
rkuo2000 0:68283046ceea 20 Thread::wait(1000); // delay
rkuo2000 0:68283046ceea 21 printf("DCservo pulse width = %d\n\r", i);
rkuo2000 0:68283046ceea 22 }
rkuo2000 0:68283046ceea 23 printf("...DCserv End.....\n\r");
rkuo2000 0:68283046ceea 24 }