Контроль двигателей и настройка PWM


Основные функции двигателя

Создание экземпляра моторного порта

Подключите двигатель к моторному порту данной платы и создайте экземпляр порта с помощью функции ExpansionDCMotor().

ExpansionDCMotor dcmotor(sid, port);

Установка периода PWM

Установите период PWM, используя функцию setPeriod().

dcmotor.setPeriod(period);

Управление двигателем

Установите продолжительность HIGH для контроля двигателем путем использования функции setWidth().

dcmotor.setWidth(width);

Продолжительность HIGH - это время, в течение которого сигнал HIGH выводится в течение одного цикла сигнала PWM. Установка длительности HIGH определяет рабочий цикл сигнала PWM.

Duty Cycle(%) = HIGH duration / period * 100

Вывод PWM запускается одновременно с данной настройкой, поэтому данная команда управляет двигателем.

Пример

#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);
    }
}

Другие функции

Настройка полярности PWM

Настройте полярность PWM, используя функцию setPolarity().

dcmotor.setPolarity(pol);

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

Установите направление вращения, используя функцию setDirection().

dcmotor.setDirection(dir);

※ Примечание : Направление вращения зависит от направления вращения и полярности PWM.

значение полярности PWM направление значения поворота фактическое направление вращения
normal (нормальное) forward (вперед) по часовой стрелке
normal (нормальное) reverse (назад) против часовой стрелки
reverse (назад) forward (вперед) против часовой стрелки
reverse (назад) reverse (назад) по часовой стрелке

Настройка режима остановки/затухания (decay mode)

Настройте режим остановки путем использования функции setDecay().

dcmotor.setDecay(decay)