Главная » Микроконтроллеры
Призовой фонд
на июль 2017 г.
1. Осциллограф DSO138
Паяльник
2. Регулируемый паяльник 60 Вт
Паяльник
3. 200 руб.
От пользователей

Пианино на микроконтроллере PIC18F4550

В данном проекте представлен пример простого аудио устройства с использованием PIC-микроконтроллера. При использовании только портов ввода/вывода, мы разработали простое пианино/синтезатор в 8-битном стиле. Для программирования 8-битного микроконтроллера PIC18F4550 используется PicPgm.

Мы решили использовать микроконтроллер PIC18F4550 исходя из размера памяти программ (32 КБ).

Для начала каждому порту необходимо присвоить следующие функции:

pins-i-o-cc3b3pia.png

Зеленые выводы на рисунке определены как входы, красные выводы как выходы.

Далее выводы определены, как указано ниже в программном коде:

entradas-saidas.png

Входы с b1 по b11 являются нажимными кнопками в схеме, в то время как вход режима – это переключатель, который отвечает за выбор рабочего режима работы. Выходы с l1 по l11 отвечают за подключение светодиодов. Каждый светодиод располагается вверху над соответствующей нажимной кнопкой и загорается, когда проигрывается соответствующая музыкальная нота. Аудио выход – это вывод контроллера, который подключается к динамику.

Принципиальная схема была разработана с помощью программного обеспечения с открытым исходным кодом KiCad:

mc216_sch.png

Затем был изготовлен макет печатной платы:

pcb.png

Также было создано 3-х мерное изображение готовой печатной платы:

dsc02104.png

Для изготовления устройства использовалась двухсторонняя печатная плата. Схема была напечатана на журнальной бумаге с помощью лазерного принтера, далее перенесена на печатную плату методом ЛУТ. Сначала необходимо перенести на одну сторону, далее засверлить несколько отверстий для выравнивания макета с другой стороной:

dsc02086.jpg

dsc02085.jpg

После этого печатная плата была опущена в раствор хлорного железа для вытравливания:

dsc02091.jpg

dsc02092.jpg

Остатки тонера необходимо удалить с помощью губки под потоком теплой воды:

dsc02096.jpg

dsc02095.jpg

Далее мы просверлили все необходимые отверстия и установили компоненты на свое место. Мы использовали компоненты из старых электронных устройств. Нажимные кнопки - из старого видеомагнитофона, светодиоды - из модема, а динамик - из старого будильника.

Готовая печатная плата имеет следующий вид:

dsc02157.jpg

dsc02158.jpg

Описание работы устройства:

dsc02102-cc3b3pia.jpg

В режиме Playing (Проигрывание), когда выбран mode=0 (режим=0), нажимные кнопки с b1 по b11 соответствуют клавишам “ пианино”:

b1 – A (440 Гц)
b2 – B (494 Гц)
b3 – C2 (261×2 Гц)
b4 – D2 (293×2 Гц)
b5 – E2 (329×2 Гц)
b6 – F2 (349×2 Гц
b7 – G2 (392×2 Гц)
b8 – A2 (440×2 Гц)
b9 – B2 (494×2 Гц)
b10 – C4 (261×4 Гц)
b11 – D4 (293×4 Гц)

Мы использовали вторую октаву в качестве основной гаммы и далее добавили еще две музыкальные ноты вверх и вниз. Также можно воспроизвести черные клавиши пианино (диезы и бемоли), нажимая две смежные кнопки.

При нажатии каждой кнопки прямоугольный сигнал соответствующей частоты передается в динамик.

Например, когда нажата кнопка b1, проигрывается нота A. Поэтому для создания звука, прямоугольный сигнал частотой 440 Гц подается на аудио выход. Мы знаем, что период сигнала составляет приблизительно 1/440 = 2272 микросекунд. Поэтому аудио выход имеет высокий уровень в первую половину времени (1136 микросекунд) и далее низкий уровень во вторую половину.

if (b1)
{
 audio=1;
 delay_us(1136);
 audio=0;
 delay_us(1136);
}

Также, кроме воспроизведения звука ноты A, зажигается соответствующий светодиод l1.

В режиме Memory (Память) каждая кнопка ассоциируется с конкретным музыкальным фрагментом, который воспроизводится при нажатии этой кнопки.

Каждый музыкальный фрагмент в памяти составляется из двух массивов, один для частот или музыкальных нот, и другой для временных интервалов. Данные массивы впоследствии считываются функцией Sound_Play(x,y) из используемого компилятора (микроC).

И наконец, кнопка b0  - это сброс всей схемы.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК PIC 8-бит
PIC18F4550
1 Поиск в FivelВ блокнот
C1 Электролитический конденсатор220 мкФ1 Поиск в FivelВ блокнот
R1-R5, R7-R14 Резистор
9 кОм
13 Поиск в FivelВ блокнот
R6, R15 Резистор
220 Ом
2 Поиск в FivelВ блокнот
D1 СветодиодКрасный1 Поиск в FivelВ блокнот
D2-D12 СветодиодЗеленый11 Поиск в FivelВ блокнот
SW1-SW12 Кнопка тактоваяTACT-64N-F12 Или другая подобнаяПоиск в FivelВ блокнот
SW13 Переключатель1 Поиск в FivelВ блокнот
SP1 Динамик1 Поиск в FivelВ блокнот
Power IN P1 Разьем питания1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.5 Проголосовало: 3 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Солнечная панель 10Вт 12В поликристаллическая ELM327 OBD II — адаптер с поддержкой CAN
вверх