将电机连接此板利用 ExpansionDCMotor() 函数在相应特定端口的实例创建。
ExpansionDCMotor dcmotor(sid, port);
通过 setPeriod() 函数设定PWM的周期。
dcmotor.setPeriod(period);
通过 setWidth() 函数设定有效控制电机控制的时间。
dcmotor.setWidth(width);
有效时间是输出PWM的HIGH信号的时间。通过此时间与PWM的周期决定占空比。
Duty Cycle(%) = HIGH duration / period * 100
此函数实行的瞬间根据占空比启动电机。
#include <PhpocExpansion.h>
#include <Phpoc.h>
byte spcId = 1;
ExpansionDCMotor dcmotor(spcId, 1);
int width = 3000;
void setup() {
Serial.begin(9600);
while(!Serial)
;
Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
Expansion.begin();
Serial.println(dcmotor.getPID());
Serial.println(dcmotor.getName());
dcmotor.setPeriod(10000);
dcmotor.setWidth(width);
}
void loop() {
if(width > 0) {
width -= 100;
dcmotor.setWidth(width);
delay(100);
}
}
通过利用 setPolarity() 课设定PWM信号的极性。
dcmotor.setPolarity(pol);
pol : PWM 极性
pol | polarity |
---|---|
0 or greater than 0 | normal polarity(default) |
less than 0 | reverse polarity |
利用 setDirection() 函数课设定电机的旋转方向。
dcmotor.setDirection(dir);
dir : 旋转方向
pol | polarity |
---|---|
0 or greater than 0 | forward(default) |
less than 0 | reverse |
※ 参考 : 实际电机的旋转方向受PWM极性设定与旋转方向设定受影响。
PWM 极性设定 | 旋转方向设定 | 实际旋转方向 |
---|---|---|
normal | forward | clockwise |
normal | reverse | counterclockwise |
reverse | forward | counterclockwise |
reverse | reverse | clockwise |
通过 setDecay() 函数可设定衰减模式。
dcmotor.setDecay(decay)
decay : 衰减模式
decay | polarity |
---|---|
0 | slow decay |
otherwise | fast decay |