MIDI-клавиатура на PIC16F84 |
Предлагаемая 48-клавишная MIDI-клавиатура предназначена для работы совместно с персональным компьютером (ПК) или синтезаторами в бесклавиатурном исполнении. Она обслуживает 16 MIDI-каналов. Встроенный регулятор может использоваться либо для управления громкостью, либо для манипулирования одним из 31 контроллера. Применение микроконтроллера (МК) PIC16F84 позволило не только упростить схему устройства, но и значительно снизить стоимость и сложность исполнения, отказавшись от традиционного в этой области МК i8051.
Принципиальная схема предлагаемой MIDI-клавиатуры изображена на рисунке. Ее основа - МК DD7, осуществляющий основные операции опроса всех манипуляторов и организации MIDI-интерфейса. Мультиплексоры DD1-DD6 предназначены для реализации динамического опроса клавиш. К каждому из них подключено по восемь подклавишных контактных групп, а сигнал с выхода подается на соответствующий вход порта В МК DD7 (на схеме полностью показан только DD1, остальные включены аналогично).
Регулятор громкости - переменный резистор R10 - включен в RC-цепь одновибратора, собранного на таймере DA2. Положение его движка определяется по длительности импульсов, поступающих на вход RB6 DD7. Одновибратор запускается импульсами, поступающими с выхода RA3, который одновременно управляет индикатором режима работы - светодиодом HL1. Программа, управляющая работой МК DD7, осуществляет опрос клавиатуры. Как только обнаруживается нажатие или отпускание клавиши, происходит вызов процедуры, отправляющей соответствующее MIDI-сообщение [1]. Так как МК PIC16F84 не имеет встроенного универсального асинхронного последовательного приемопередатчика (UART), программа осуществляет программную организацию MIDI-интерфейса с помощью простейших операций сдвига.
При вычислении положения движка резистора R10 учитывается его конфигурация как манипулятора контроллера или как регулятора громкости. В первом случае считанное значение сравнивается с записанным в прошлый цикл опросом, и если пять раз подряд установлено различие, то отправляется соответствующее MIDI-сообщение. Положение движка резистора R10 оцифровывается контроллером в пятибитный код, и, таким образом, устройство чувствительно к 32 его различным положениям. Если R10 "настроен" как регулятор громкости, необходимая информация посылается вместе с событиями нажатия клавиш.
Кнопкой SB49 устройство переводят в режим настройки, о чем сигнализирует светодиод HL1. В этом случае сообщения о нажатиях клавиш не передаются на выход устройства.
Нажатие любой из 16 первых клавиш (т. е. подключенных к мультиплексорам DD1 и DD2) приводит к переключению MIDI-канала, любой из 32 других - к выбору соответствующего номера контроллера, которым будет управлять резистор R10. Если нажата клавиша SB17 (ее контакт подключен к входу Х0 DD3), R10 конфигурируется как регулятор громкости, иначе (при нажатии SB18, SB19 и т. д.) - как манипулятор MIDI-koh-троллера, номер которого назначается нажатием клавиш SA18-SA48 (SA18 - контроллер О, SA19 - контроллер 1 и т. д.).
Коды программы в виде hex-файла приведены в таблице. Первый байт строки 9 (число 29h) - константа, определяющая номер ноты, с которой начинается клавиатура. В авторском варианте начальной является нота F3 - фа третьей октавы (нота с номером 41, принятым в MIDI-сообщени-ях). При использовании другой клавиатуры следует откорректировать эту константу и пересчитать контрольную сумму строки 9.
Исходный текст программы и некоторые другие дополнительные материалы к статье можног скачать по этой ссылке.
Печатная плата для устройства не разрабатывалась- Большинство деталей (микросхемы DD7, DA1, DA2, резисторы, конденсаторы, кварцевый резонатор) смонтированы на макетной плате, все соединения выполнены проводом МГТФ. Для уменьшения длины жгута, идущего к контактам клавиш, мультиплексоры DD1-DD6 установлены непосредственно под клавиатурой. Источник питания, подключаемый к разъему ХР1, должен иметь выходное напряжение 6... 12 В при токе около 50 мА.
С небольшими доработками К561КП2 (DD1-DD6) можно заменить мультиплексорами К561КП1. Кроме МК PIC16F84, в устройстве можно применить PIC16F84A или PIC16CR84. Прямая замена на PIC16C84 или PIC16F83 невозможна. В качестве R10 можно использовать любой переменный резистор указанного на схеме сопротивления с функциональной характеристикой А. Розетка XS1 -стандартная пятиконтактная ОНЦ-ВГ-4-5/16-р (DIN-5).
Клавиатура практически не нуждается в налаживании и при исправных деталях и отсутствии ошибок в монтаже начинает работать сразу после включения питания. Если положение движка резистора R10 определяется неверно, следует подобрать конденсатор C3 и резистор R11. При наличии программы-секвенсора клавиатуру можно подключить к ПК и проверить правильность работы устройства в целом. Для подключения к ПК используют переходник, обеспечивающий оптоэлектронную развязку интерфейса, например, подобный описанному в [2].
При постоянном использовании клавиатуры с ПК для питания можно использовать импульсный преобразователь [3], подключив его к источнику +5 В игрового порта. Для уменьшения потребляемого тока R12 в этом случае желательно заменить резистором большего сопротивления или вообще исключить светодиод HL1.
Литература:
Студнев A. MIDI-клавиатура. - Радио, 1993, № 11, с. 32-34.
Оборотов Н. Простая MIDI клавиа тура для ПК. - Радио, 2000, № 3, с. 25, 26, 44.
Власов Ю. Простой преобразователь с независимым возбуждением. - Радио, 1996, № 7, с. 50.
Автор: А.Борисевич, г.Севастополь, Украина
C этой схемой также часто просматривают: |
Генератор видеосигнала на микроконтроллере PIC16F84 Частотомер - цифровая шкала на PIC16CE625 (PIC16F84). Цифровая шкала - частотомер на PIC16F84 Неугомонная шестеренка на PIC16F84 CCB-педаль для электрогитары (Compact Clean Boost Pedal) Бустер для электрогитары Синусоидальный генератор на микросхеме LM386 Усовершенствованный логический ТТЛ-пробник
| |
Krank Distortus Maximus - схема дисторшн педали Приставка для эффекта Surround CCB-педаль для электрогитары (Compact Clean Boost Pedal) Бустер для электрогитары Радиомикрофон Модернизируем шестиструнку Барабанная установка в сборе Датчики силы удара для имитаторов ударных инструментов Схема соединений модулей барабанной установки Блок питания барабанной установки |