Добыл все детали, осталось в принципе плату сделать, потом прошивкой хорошенько заняться. Исходники на этот раз собираюсь выложить сразу, очень часто спрашивают именно их. Плохо, что кнопка всего одна (на самом энкодере).
Мне нравится вот такая картинка из интернета, красиво. Разумеется для такого класса (небольшого контроллера).
А может в самом деле таких же мелких кнопочек наставить на саму плату, железячку правда сверлить без станка намучаешься.
Миди-контоллер доделан. В итоге 10 переменников, 4 кнопки, 1 энкодер, дисплей - вот схема:
Подключение кнопок через мультиплексор:
Подключение ЖКИ:
Подключение энкодера:
Прошивка, с которой все эти кнопки и крутилки работают уже есть, но пока на LCD выводится всякая ерунда. И кнопки, подключенные как показано к мультиплексору работают наоборот. Также есть бутлоадер (не через сусекс, а через V-USB), так что дописывать и обновлять прошивку легко.
Попробовал в Virtual DJ энкодер как jog wheel использовать (для скрэтча), работает
Последний раз редактировалось Avarges Пт окт 14, 2011 22:48:03, всего редактировалось 1 раз.
Прошивка рабочая, без бутлоадера, но влезает не только в атмегу8, но и атмегу48. Без изменений в схеме атмегу48 можно использовать. LCD должен быть подключен.
Информация на дисплее: 1 - номер контрола на устройстве 0..9,A..C 2 - значение контрола от 0 до 127 3 - направление движения энкодера (2-влево, 1-вправо) 4 - значение от кнопки энкодера (00-отпущена или 7F-нажата) 5,6,7 - значение 13 основных контроллов высотой столбика 5,7 - переменники 6 - 3 кнопки
Значения фьюзов в программаторе uniprof: (галочка означает - логическая единица (по даташиту: unprogrammed), без галочки - ноль (по даташиту: programmed) )
Позже будут исходники, там предусмотрена работа без LCD, также будет версия прошивки с бутлоадером под атмегу8.
Вложения:
Комментарий к файлу: прошивка Atmega8/Atmega48/LCD djcj3.zip [4.71 KiB]
Скачиваний: 322
Avarges как понимаю, по данной схеме можно подключить 5 CD4051BCN и будет 25 переменников, 15 кнопaк?
Конечно можно 5 мультиплексоров добавить. В итоге, можно на атмегу48 или атмегу8 подключить 48 контролов на АЦП, причём из них сколько хочется кнопок и остальное на переменники. Я удивился, почему об этом не пишут, но потом почитал тему - у khomych была такая идея. Обработка кнопок, подключенных на другие ноги менее удобна, а на АЦП получается универсально. Исходники малость поправить под 48 контролов.
Цитата:
A есть разница между CD4051 и CD4051BCN?
Никакой. Также подходят других производителей аналоги: КР1561КП2, HEF4051, 74HC4051. BCN в моём случае означает, что корпус PDIP16, они есть и в СМД корпусах.
PS. В качестве пищи для ума: никто не пробовал ставить второй каскад мультиплексоров и этим расширять количество кнопок/крутилок до бесконечности, а по сути это можно. 4051 чуть-чуть шумит, но не сильно.
PS. В качестве пищи для ума: никто не пробовал ставить второй каскад мультиплексоров и этим расширять количество кнопок/крутилок до бесконечности, а по сути это можно. 4051 чуть-чуть шумит, но не сильно.
зачем 4051 для кнопок? это мультиплексор всё таки, его для аналога нада юзать. кондёры на питание не забыли? что бы не шумел. 74hc165 - по трём проводам каскадируем много-много штук (у меня 8 было - 64 кнопки)
4051 вполне можно для кнопок, у меня оставалось 3 свободных ножки, вот и посадил туда кнопки. И программа одним циклом опроса АЦП всё решает, не приходится накручивать. 74HC165 из модуля DIN это от мидибоксеров, нормальное решение тоже, особенно для крупных контроллеров. Но я делал на минимуме корпусов (2 корпуса в схеме). Керамический кондер около мультиплексора забыл, правда. Остальные два есть (С1, С4).
Исходники будут наверное завтра и кондёр дорисую завтра.
В качестве пищи для ума: на атмеге8 в DIP корпусе шесть ножек-выходов АЦП, на смд-варианте атмеги8 выходов АЦП уже восемь.
Что-то хочется хорошее добавить в контроллер, может меню, что-то ещё, чтоб дисплей лучше задействовать. Есть у кого мысли, идеи?
Я не разобрался почему в си не работает вот так: str[4]=lci; и почему не работает вот так: StrCat(str,buffer); или так: str = str+buffer; Поэтому написал тупо влоб.
Avarges Всё забываю спросить, а как в системе определяется данный девайс? Какие драйвера для него нужны? Просто виртуальный ком-порт + драйвер ямаха или роланд?
Конечно видно, это стандартное миди-устройство в системе. Сам проверял в Virtual DJ, Cubase, FL Studio. Остальные программы не ставил. Иначе зачем бы оно было надо, если с прогами не работало?
А на дескриптор USB можно взглянуть? У меня в планах есть проект один, который на уже готовом мидибоксе не реализовать, 12 канальный микшер - больше 100 переменников и немного кнопок. Вот хотел на МК с аппаратным USB реализовать.
Конечно можно, я выложил исходники несколькими сообщениями ранее.
кирилл555 в вашем случае возможно лучше всего собирать вот этот вариант: http://www.ucapps.de/midibox64.html (до 64 кнопок, до 64 переменников) но легко не будет
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения