Проблемы с частотой в DIY Arduino и резонаторе
Я создал простую музыкальную программу, используя Arduino Uno и функцию tone()
. Это работает нормально.
Я решил построить свою собственную схему, используя простой AVR, и загрузить эту программу. Я не знал точно, какая частота используется ардуино, поэтому я использовал резонатор Мурата с частотой 8 МГц.
Когда я протестировал свою схему, сгенерированная мной музыка воспроизводилась на октаву ниже, а ее продолжительность увеличивалась вдвое (на завершение воспроизведения ноты ушло в два раза больше времени).
Я понял, что использовал неправильную частоту резонатора. Действительно, я узнал, что в Arduino Uno используется резонатор на 16 МГц. Поскольку в моих часах была половина этой частоты, тон будет более низкой частоты, и на окончание ноты уйдет вдвое больше времени. Это имело смысл.
Поэтому я пошел дальше и перестроил схему с частотой резонатора 16 МГц. Однако теперь у меня обратный эффект!
Все ноты на одну октаву выше по сравнению с исходным дизайном Arduino Uno, а продолжительность ноты в два раза короче, чем в исходном дизайне Arduino Uno... Это говорит о том, что теперь я удвоил частоту по сравнению с исходной конструкцией (и в четыре раза больше частоты по сравнению с моей первой попыткой создания нестандартной схемы).
Кажется, я не могу понять, почему это происходит, потому что сейчас у меня есть частота, которую использует оригинальный Arduino....
@user1584421, 👍0
1 ответ
Лучший ответ:
Если код выполняется в два раза быстрее ожидаемой скорости при тактовой частоте 16 МГц, это может быть только потому, что:
- вы исправили корректную работу программы при тактовой частоте 8 МГц.
- вы сообщили IDE, что используете тактовую частоту 8 МГц.
IDE поставляется с несколькими конфигурациями, подходящими для Часы 8 МГц. Если вы выберете в качестве платы «Arduino Pro или Pro Mini», у вас есть что-то эквивалентное Arduino Uno, за исключением того, что вы можете выбрать между тактовой частотой 8 МГц и тактовой частотой 16 МГц (а также между ATmega168 и 328P).
- Постоянный выход тактовой частоты Arduino
- Tone() генерирует высокий звук при отпускании кнопки
- Сигнал времени. Определить наличие импульсов и их длительность
- Установите частоту ШИМ на 25 кГц.
- Хочу создать Bluetooth audio control (увеличение/уменьшение громкости, воспроизведение, пауза и т.д.) для смартфона
- Максимальная частота цифрового сигнала в Arduino Uno?
- Как подключить ардуино к разъему для наушников?
- Подключить Arduino к телефонной линии?
Спасибо! Вот и все!, @user1584421