Командой для контроля двигателей и настройки PWM является pwm.
Соответствующие команды устанавливают полярность, задают направление вращения, период установки и высоту (HIGH duration) 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
Командой настройки HIGH duration для двигателя является set width.
Продолжительность HIGH - это время, в течении которого сигнал HIGH выводится в течении одного цикла сигнала PWM. Установка длительности HIGH определяет рабочий цикл сигнала PWM.
Рабочий цикл(%) = HIGH duration / период * 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);
}
?>
Команда для настройки режима decay - set decay.
"dc1 pwm set decay (mode)"
Укажите параметры decay для mode.
Режим | Описание |
---|---|
быстрый | быстрый decay |
медленный | медленный decay |
spc_request_dev($sid, "dc1 pwm set decay fast"); // fast decay
spc_request_dev($sid, "dc1 pwm set decay slow"); // slow decay