Настройка и мониторинг энкодеров


Командой для настройки и мониторинга энкодеров является enc.

Используемые вместе команды устанавливают направление отсчета, значения счетчика, значения и периоды счетчика мониторинга.

Настройка направления счета

Командой для установки напрвления счета является set pol.

"dc1 enc set pol (polarity)"

Укажите направление счетчика (+ или -) для polarity. Значением по умолчанию является +.

Для энкодера с одним сенсором задайте 0 для polarity. В этом случае значение pos всегда увеличивается.

Направление Направление вращения Значения счетчика
+ вперед увеличение
+ назад уменьшение
- вперед уменьшение
- назад увеличение
0 вперед увеличение
0 назад увеличение
spc_request_dev($sid, "dc1 enc set pol +");
spc_request_dev($sid, "dc1 enc set pol -");

Установка значений счетчика

Команда для установки значения счетчика энкодера задается при помощи set pos.

"dc1 enc set pos (value)"

Укажите значение счетчика для value.

Вы можете установить значение счетчика от -1000000000 (-1 миллиард) до +1000000000 (1 миллиард).

spc_request_dev($sid, "dc1 enc set pos -5000");
spc_request_dev($sid, "dc1 enc set pos 3000");

Настройка счетного образца

Командой для установки счетного образца энкодера является set psr.

"dc1 enc set psr (value)"

Укажите количество счетного образца для value.

Счетный образец энкодера представляет собой количество импульсов, используемых для измерения вызодного импульса энкодера. Чем больше количество счетного образца, чем меньше ошибка. Счетный образец энкодера может быть установлен в диапазоне от 1 до 64.

spc_request_dev($sid, "dc1 enc set psr 16");

Контрольные значения счетчика энкодеров

Команда для контроля значений счетчика энкодера - это get pos.

"dc1 enc get pos"

<?php
include "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(115200);
$sid = 1;

spc_request_dev($sid, "dc1 pwm set period 10000");
spc_request_dev($sid, "dc1 pwm set width 1000");

while(1)
{
    $count = spc_request_dev($sid, "dc1 enc get pos");
    echo "$count\r\n";
}
?>

Мониторинг периодов вывода энкодера.

Командой для мониторинга периодов вывода энкодера является get period.

"dc1 enc get period"

Еденцей измерения возвращаемых значений является микросекунда(us).

Чтобы уменьшить ошибку при мониторинге периодов вывода энкодера, установите значение счетного образца энкодера на большее значение.

<?php
include "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(115200);
$sid = 1;

spc_request_dev($sid, "dc1 pwm set period 10000");
spc_request_dev($sid, "dc1 pwm set width 1000");
spc_request_dev($sid, "dc1 enc set psr 4");

while(1)
{
    $count = spc_request_dev($sid, "dc1 enc get period");
    echo "$count\r\n";
}
?>