Как иметь несколько цифровых выходов для одного и того же вывода на 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.
Есть ли решение для этого?
@Allan, 👍1
Обсуждение1 ответ
Вы не можете пытаться заставить две вещи управлять одним выходом двумя разными способами. Это просто не имеет смысла. Это все равно что пытаться заставить двух человек управлять машиной, чтобы один ехал налево, а другой направо.
Я не совсем понимаю, что вы пытаетесь сделать, но при обычном использовании для использования драйвера двигателя требуется 3 контакта (например, обычный L239D). Два определяют направление, а третий (вывод EN на L239D) управляет скоростью с помощью ШИМ.
Я пытаюсь разработать PID-контроллер, чтобы, если выход контроллера превышает 0, двигатель двигался в положительном направлении. Или, если выход контроллера меньше 0, двигатель движется в отрицательном направлении. И у меня есть 3 вывода, ШИМ, который управляет скоростью, и два цифровых вывода 2 и 4 для направления., @Allan
- Использовать все контакты как цифровые входы/выходы
- Что такое ICSP pin (разъём)?
- Сколько датчиков может поддерживать один модуль Arduino?
- Как выбрать вывод передачи в библиотеке IRremote для Arduino Uno?
- Миграция проекта Arduino Uno R3 в Wemos D1 R2 — проблемы с распиновкой
- Штекерные контакты на Arduino Uno
- Как питать Arduino Uno от терминала 5v драйвера двигателя L298N?
- Какие входные контакты я могу использовать на ESP8266 NodeMCU
Почему вы даже *пытаетесь* использовать тот же самый вывод для направления, что и для скорости?!?!, @Majenko
Я не использую один и тот же контакт для определения направления и скорости. Для направления я использую контакты 2 и 4. Скорость-это использование контакта 3 с использованием ШИМ - сигнала., @Allan
Тогда ваша проблема заключается в использовании simulink, что бы это ни было. Спросите на форуме simulink или покажите нам какой-нибудь реальный код., @Majenko
Изображение показывает код. Он использует подход графического программирования., @Allan