Мне нужно иметь возможность изменять направление и скорость маленького мотора d c, используя PSo C LP5 и L293D. Мотор, который был использован, является одним из следующих: https://www.elecrow.com/dc-toy-hobby-motor-130-size-p-265.html. Я смог изменить направление без ШИМ, изменив входы, это дало мне следующую таблицу:
![Direction table](https://i.stack.imgur.com/ddDuI.png)
Но затем мне также пришлось изменить скорость. Схемы для этого проекта можно найти ниже. Период ШИМ был установлен на 1000.
![Project schematics](https://i.stack.imgur.com/E7BX9.png)
Мой код выглядит следующим образом:
int main(void)
{
PWM_1_Start();
for(;;)
{
DIRECTION_Write(0);
PWM_1_WriteCompare(400);
CyDelay(2000);
// 2 seconds clockwise low speed
PWM_1_WriteCompare(0);
CyDelay(2000);
// 1 second nothing
DIRECTION_Write(1);
PWM_1_WriteCompare(400);
CyDelay(2000);
// 2 seconds counter-clockwise low speed
PWM_1_WriteCompare(0);
CyDelay(2000);
// 1 second nothing
}
}
Двигатель теперь только вращается против часовой стрелки, затем останавливается на 5i sh секунд и снова делает то же самое. Я пробовал другие комбинации, такие как SPEED_Write, но не получил желаемого результата.
Любая помощь приветствуется, заранее спасибо:)