PWM设定及控制命令是pwm。
相关命令有极性设定、旋转方向设定、PWM周期及有效期设定等。
设定PWM极性的命令是set pol。
"dc1 pwm set pol (polarity)"
在polarity上指定极性(“+” 或“-”)。 基本值为“+”,设定为“-”的情况极性向相反输出。
spc_request_dev($sid, "dc1 pwm set pol +"); // normal polarity
spc_request_dev($sid, "dc1 pwm set pol -"); // reverse plarity
设定旋转方向的命令是set dir。
"dc1 pwm set dir (direction)"
spc_request_dev($sid, "dc1 pwm set dir +"); // forward
spc_request_dev($sid, "dc1 pwm set dir -"); // reverse
在direction上指定旋转方向(“+” 或 “-”)。 基本值为“+”。 设定为“-”时,旋转方向为相反。 旋转方向受set pol和set dir的影响。
set pol的值 | set dir的值 | 旋转方向 |
---|---|---|
+ | + | 顺时方向 |
+ | - | 逆时方向 |
- | + | 逆时方向 |
- | - | 顺时方向 |
设定PWM周期的命令是set period。
"dc1 pwm set period (period_us)"
在period_us上指定周期。设定单位是毫秒。
spc_request_dev($sid, "dc1 pwm set period 10000"); // period: 10 ms
为了电机控制的有效时间设定命令是set width。
有效时间是指在PWM信号周期内,输出HIGH信号的时间。 设定有效时间后将,将根据此决定PWM信号的占空比(duty cycle)。
Duty Cycle(%) = HIGH duration / period * 100
根据此设定开始PWM输出,所以此命令作为启动电机的角色。
<?php
include "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(115200);
$sid = 1;
$width = 3000;
spc_request_dev($sid, "dc1 pwm set pol +");
spc_request_dev($sid, "dc1 pwm set dir +");
spc_request_dev($sid, "dc1 pwm set period 10000");
spc_request_dev($sid, "dc1 pwm set width $width");
while(1)
{
$width -= 100;
if($width <= 0)
break;
spc_request_dev($sid, "dc1 pwm set width $width");
usleep(100000);
}
?>
设置衰减模式的命令是set decay。
"dc1 pwm set decay (mode)"
在mode上指定衰减模式。
模式 | 说明 |
---|---|
fast | fast decay |
slow | slow decay |
spc_request_dev($sid, "dc1 pwm set decay fast"); // fast decay
spc_request_dev($sid, "dc1 pwm set decay slow"); // slow decay