Если вы осуществляете связь между Arduino и Simulink, могут быть некоторые проблемы в вашем соединении. Я предполагаю, что для связи вы используете блок Serial Send и Serial Receive .
Я сделал полное руководство , как соединить обе платформы на моей странице Github.
По вашему описанию я могу думать об этих проблемах:
Simulink не обновляется?
Если ваш Simulink не обновляется , вероятно, потому, что он ожидает, что Arduino отправит некоторые последовательные данные, но ничего не получает. Возможные причины этой проблемы:
- Неверная скорость последовательной передачи
- Неверный тип данных (т. Е. Если вы отправляете Arduino
float
, вы должны получить single
в Simulink.)
- Неверный размер данных
- Разное время шага (Не забывайте использовать одинаковое время шага в Simulink и Arduino)
Simulink получает нечетные значения?
Если Simulink обновляет , но показывает нечетные значения, связь между ними может быть нарушена.
- Десинхронизация связи - Попробуйте использовать заголовок и терминатор в блоке последовательного отправления и последовательного получения и не забудьте установить это в своем коде Arduino.
- Разное время шага - Убедитесь, что оба приложения отправляют и получают с одинаковой скоростью.
- Проверьте, что вы отправляете - Вы можете проверить, что именно вы отправляете на серийный номер с областью видимости, помните, что в блоке Serial Send входной сигнал должен быть
byte
. Если вы используете single
или double
, не забудьте привести его к byte
с помощью блока байтов .