Подключите двигатель к моторному порту данной платы и создайте экземпляр порта с помощью функции ExpansionDCMotor().
ExpansionDCMotor dcmotor(sid, port);
Установите период 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, используя функцию setPolarity().
dcmotor.setPolarity(pol);
pol : полярность PWM
pol | полярность |
---|---|
0 или больше чем 0 | нормальная полярность (по умолчанию) |
меньше чем 0 | обратная полярность |
Установите направление вращения, используя функцию setDirection().
dcmotor.setDirection(dir);
dir : направление вращения
pol | полярность |
---|---|
0 или больше чем 0 | вперед (по умолчанию) |
меньше чем 0 | назад |
※ Примечание : Направление вращения зависит от направления вращения и полярности PWM.
значение полярности PWM | направление значения поворота | фактическое направление вращения |
---|---|---|
normal (нормальное) | forward (вперед) | по часовой стрелке |
normal (нормальное) | reverse (назад) | против часовой стрелки |
reverse (назад) | forward (вперед) | против часовой стрелки |
reverse (назад) | reverse (назад) | по часовой стрелке |
Настройте режим остановки путем использования функции setDecay().
dcmotor.setDecay(decay)
decay : режим остановки/затухания
decay | полянность |
---|---|
0 | slow decay |
otherwise | fast decay |