Вызывает ли SoftwareSerial и сервобиблиотека конфликты прерываний?

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

, 👍0


2 ответа


1

Я слышал, что это может вызвать конфликты прерываний.

Действительно. Arduino может одновременно запускать только одну процедуру прерывания и:

  • Сервоприводы используют быстрые прерывания
  • SoftwareSerial отключает прерывания при отправке (на относительно длительные периоды времени)
  • SoftwareSerial использует прерывание для приема, которое длится в течение длительного периода.

Так что на самом деле вы не можете использовать оба варианта вместе.

Варианты?

  1. Использовать аппаратный ШИМ для управления сервоприводами (где-то для этого есть библиотека)
  2. Используйте внешнюю плату управления ШИМ сервопривода (Adafruit делает одну IIRC)
  3. Не используйте SoftwareSerial. IIRC AltSoftSerial лучше, хотя никакая последовательная программная реализация никогда не будет особенно хорошей.

Основная проблема заключается в том, что младшие модели Arduino имеют только последовательный порт. Если вам нужно использовать более одного последовательного порта, вам действительно нужно рассмотреть возможность использования другого Arduino — с несколькими последовательными портами.

,

0

У меня была похожая проблема. Я смог решить ее с помощью библиотеки AltSoftSerial и библиотеки ServoTimer2... Надеюсь, это поможет, если вы все еще работаете над этим проектом/над другим проектом...

,