Как иметь несколько цифровых выходов для одного и того же вывода на Arduino Uno и Simulink?

Я пытаюсь разработать PID-контроллер с Simulink, как показано в образе PID. Я использую PID-контроллер для управления двигателем через Arduino Uno и драйвер двигателя.

У меня есть выход PID, подключенный к оператору if.

  • Если u1 больше 0, то выход 1 для цифрового вывода pin 2 и выход 0 для цифрового вывода pin 4.
  • Если u1 меньше 0, то выход 0 для цифрового вывода pin 2 и выход 1 для цифрового вывода pin 4.

Это изменяет направление двигателя так, что если PID промахнется, он изменит направление. И так далее для u1 меньше 0.

У меня также есть ШИМ - сигнал для скорости привода от 0, который является самым медленным и 255-самым быстрым[]. Я забыл закрепить этикетку.

Я постоянно получаю ошибку, когда пытаюсь запустить его. Ошибка говорит, что я не могу запустить его из-за наличия нескольких блоков цифрового выхода с тем же выводом, как показано в этой ошибке изображения в Simulink.

Есть ли решение для этого?

, 👍1

Обсуждение

Почему вы даже *пытаетесь* использовать тот же самый вывод для направления, что и для скорости?!?!, @Majenko

Я не использую один и тот же контакт для определения направления и скорости. Для направления я использую контакты 2 и 4. Скорость-это использование контакта 3 с использованием ШИМ - сигнала., @Allan

Тогда ваша проблема заключается в использовании simulink, что бы это ни было. Спросите на форуме simulink или покажите нам какой-нибудь реальный код., @Majenko

Изображение показывает код. Он использует подход графического программирования., @Allan


1 ответ


0

Вы не можете пытаться заставить две вещи управлять одним выходом двумя разными способами. Это просто не имеет смысла. Это все равно что пытаться заставить двух человек управлять машиной, чтобы один ехал налево, а другой направо.

Я не совсем понимаю, что вы пытаетесь сделать, но при обычном использовании для использования драйвера двигателя требуется 3 контакта (например, обычный L239D). Два определяют направление, а третий (вывод EN на L239D) управляет скоростью с помощью ШИМ.

,

Я пытаюсь разработать PID-контроллер, чтобы, если выход контроллера превышает 0, двигатель двигался в положительном направлении. Или, если выход контроллера меньше 0, двигатель движется в отрицательном направлении. И у меня есть 3 вывода, ШИМ, который управляет скоростью, и два цифровых вывода 2 и 4 для направления., @Allan