Конфликтующие контакты между библиотекой PCM и динамиком и NRF24L01

arduino-nano pins speaker

Библиотека PCM использует вывод pin 11, а NRF24L01 также использует pin 11. Я использую Arduino nano и не знаю, есть ли способ изменить контакты динамика или приемопередатчика. https://github.com/damellis/PCM

, 👍0


1 ответ


1

Нет, вы не можете просто поменять контакты. Обе системы используют аппаратное обеспечение, специфичное для вывода 11.

Лучшее, чего вы могли бы достичь, - это использовать программную реализацию SPI на других выводах для управления nRF24L01, но это означало бы изменения в библиотеке, которую вы используете, чтобы удалить использование библиотеки SPI и заменить ее вашей собственной программной реализацией SPI.

,

Значит ли это, что это в принципе невозможно?, @Epicmania

Нет ничего невозможного, просто много работы, и результаты будут не такими быстрыми, как при аппаратном SPI., @Majenko

О:(. Нет ли способа отредактировать библиотеку PCM, чтобы использовать другой вывод? Что делает вывод 11 таким особенным?, @Epicmania

Он жестко подключен к определенному таймеру для генерации ШИМ-сигнала. Вы * могли бы * переписать библиотеку PCM, чтобы использовать разные таймеры и связанные с ними контакты, но это было бы * больше * работы и гораздо труднее понять., @Majenko

Возможно, я ошибаюсь, но разве вывод 11 в библиотеке PCM не был также контактом 3? Так можно ли его изменить на это?, @Epicmania

Я недостаточно знаю об AVR PWM. Это может быть возможно, если вы сможете разработать настройки регистра, для чего вам придется обратиться к спецификации чипа AVR. Лично я бы даже не стал рассматривать возможность создания звука на маленьком 8-битном Arduino. Выберите 32-битный MCU с I2S, если вам нужно сделать что-то большее, чем звуковой сигнал., @Majenko

Я просто играю короткий 2-секундный аудиофайл., @Epicmania

@Epicmania, вы можете попробовать заменить OCR1A на OCR1B в PCM.cpp (и OCIE1A с OCIE1B) использовать вывод 3. не меняйте другие 1A /1B, @Juraj

спасибо, я пытался изменить его, но я изменил гораздо больше (TCR2A на TCR2B), я попробую это только с этими изменениями., @Epicmania

Это не сработало :(, @Epicmania