привет!
вот, недавно начал изучать музыкальные проги (в частности Ableton Live) и столкнулся с первой проблемой: без миди контроллера работать с прогой довольно проблематично. проанализировав рынок готовых контроллеров решил отказаться от буржуйских девайсов по причине их дороговизны при низкой функциональности.
решил замутить сам. был выбран МК ATMEGA8. принцип работы: МК периодически считывает с переменных резисторов напряжение (старшие 7 бит) и посылает через аппаратный UART три байта (ControllerChange, Controller number, value). собственно с этим проблем не испытываю. проблема с переменниками. в данном случае их пока шесть штуккаждый подключен в отдельному каналу АЦП. резюки по 100 КОм линейная зависимость.они немного фонят. тобиш иногра значение и АЦП колеблется в пределах +/- 2 единицы, иногда и больше. но бывает и без фона. походу проблема с резюками. схема включения МК из даташита: питание аналоговой части через указаный LC фильтр, параметры работы АЦП менял по разному (опорное напр., частота) и это на "фон" резисторов никак не влияло, как конили так и фонят. кстати резюки СП3-4аМ (кака, да?). вопрос собственно про резисторы. можно ли как нибудь эти подправить (типа их смазкой забить какойнибудь) или меньшего сопротивления поставить (50, 10, 5 КОм) или мож поставить буржуйские переменники (но какие? фирмы, модели). и как мне резюки в матрицу соединить . допустим 18 шт( 6 каналов АЦП - "строки", три пина контроллера - "столбцы", ну Вы поняли..)я пытался, но у мну был странный фон и глюки....помогите кто чем может ..ггггг.....
п.с. пишу в CodeVisionAVR. проблем с кодом особо не испытываю, хотя токо начал изучать. в инете нашел подобный проект на pic16f877 (кажись). его не предлагать из-за некоторых причин.
да схемы нет. все примитивно до немогу. попытаюсь на словах. контроллер питается от гейм порта зкувовухи (запитывал также от ЮСБ), на питании электролит 1000микр, аналог.притание МК через LC фильтр (из даташита) на PC0-PC6 подключены ползунки резисторов. крайние выводы резисторов на землю и питание. провода не экранированные, т.к. оч короткие. корпуса резисторов естественно на земле.
о работе АЦП. запускаю одиночное преобразование. жду прерывания от АЦП. выполняю рассчет, отправляю в ЮАРТ, вывожу на дисплей состояние (дисплей для отладки), выбираю другой канал АЦП, выхожу назад. ну еще коегде задержки добавлены. прога тоже примитивная до невероятия.
о резисторах. вот допустим он начинает фонить (видно по LED - индикатор активности миди и дисплее (он, как говорилось више временный)) стоит слегка коснуться ручки и все успокаивается. на крайних положениях ползунка фона нет.
что посоветуете с резюками делать? эти шесть то я выброшу. какие купить? десятиклоомные СП3 или мож буржуйские? просто разница в цене немаленикая 2-3 раза дороже. а мне их нада штук тридцать...
кстати в музыкальном магазине видел "такие же буржуйские" резюки как и на рынке но по цене 10-20 уе. за штуку, что это? мож они освящены в Ватикане??? или чем обусловлена такая цена?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
Обычное подключение. Матрица. По аналогии с клавиатурной матрицей. На RD0, RD1, RD4 (столбцы) поочерёдноо выводится "1". Через потенциометры (R4) и развязывающие диоды (D4) нарпяжение подаётся на строки и считывается АЦП.
Сам проект не смотрел, возможно там даже матрица смешанная из кнопок и потенциометров...
Насчёт фона. Не пробовал конденсаторы цеплять между массой и входами АЦП? 0.1мкф...1мкф.
Ещё возможно неудачная разводка земли на плате. Ну и если никаких програмных хитростей нету, то всегда обудут существовать "пороговые" положения потенциометров когда 1 разряд прыгает туда-сюда при малейшей помехе.
Последний раз редактировалось YurkaM Сб фев 21, 2009 19:05:08, всего редактировалось 1 раз.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
кстати в музыкальном магазине видел "такие же буржуйские" резюки как и на рынке но по цене 10-20 уе. за штуку, что это? мож они освящены в Ватикане??? или чем обусловлена такая цена?
То они бабки так зарабатывают на музыкантах, переписывая цены друг у друга из прайсов.
Китайские за 50 центов, в большинстве своем не хуже.
насчет кандеров неполучится. в моем случае (только шесть переменников, у каждого свой канал АЦП) еще можно. я ставил на 100 нф уже ощущалось смазывания, вялость ручки а в ллучае ,когда на каждом канале будут висеть несколько резюков, что будет "смешивание" значение, т.к. они поочередно будут активироваться. насчет матриц, принцип я понял, пока еще не паял.сначала надо бы резюков прикупить.
кстати, кто нибудь таки сделал переходник MIDI<>USB я видел такие темы на форуме, но так и не понял чем всё закончилось....
что посоветуете насчет программной фильтрации значений?
допустим
char old[6], num; //old[num] - предыдущее значение с num каналаАЦП
.......
.......
adc_data=ADCH; //загружаю старший байт значения
if(old[num]/2 != adc_data/2) //отослать токо при изменении положения
{
SendMidi(0,num,adc_data/2); мне надо токо 7 бит данных и обязательно чтоб старший бит был равен 0
ClrDisp();
ShowDigit(adc_data/2);
//delay_ms(20);
}
old[num]=adc_data;
даже если переписать SendMidi(0,num,adc_data/4*2); то все равно проскакивает "фон"
подкиньте идеи как переменники в матрицу соединить (6 х 3)....
походу их придется "развязать" через диоды. как учитывать падение напруги на диодах? величина падения на разных диодах одинаковая или колеблется (плюс минус проценты).
чтото склоняюсь к теме что на каждые 6 резюков ставить свой контроллер и потом их синхронизировать..... идея конешн бредовая но я уже теряюсь...
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
khomych писал(а):
подкиньте идеи как переменники в матрицу соединить (6 х 3)....
Ну сам же давал выше схему на PICе. Там и есть матрица. С диодами, естественно. Чтобы из за падения на диоде не терять верхний кусочек диапазона, делай опору АЦП (Vref) чуть меньше, чем выходные напряжения с портов.
меня в той схеме смущают резисторы 620К. не многовато ли. слишком уж сжимают диапазон изменения напруги на входах АЦП. а насчет Vref если на ножку Vref подать напряжение питания через такой же диод? должно компенсировать падение.... пока еще не пробывал
мож автор ошибся в обозначении и надо резисторы (постоянные) по 620 Ом ???????
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
Ничё они не сужают. Как раз, чем больше их номинал, тем меньше они влияют на напряжение, снимаемое с движка R4. Но вообще, конечно 620к - многовато, будет ловить помехи всякие. Эти резисторы должны быть где-то на порядок больше, чем R4. ИМХО нормально будет 47к при R4=4.7к.
ps: Может ты не так рассмотрел картинку - там левый вывод R4 идёт на землю.
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
khomych писал(а):
по хоту все левые ноги на землю вешать надо...
Именно так. Левые ноги на землю, правые - на линии столбцов (Col), а движки через диоды - на линии строк (Row). И кроме того все строки подтянуты к земле резисторами.
делать было нечего.... собрал матрице из 100 КОм, подчистил прогу и на удивление нормально работает. матрица 6х3. фона почти нет. иногдапоявляется на проблемых резисторах, по ходу из за хренового контакта.
сначала поставил нагрузочные постоянники по 1МОм но толку от них небыло. решил прикольнуться и поставил вместо них по 51 КОм (в два раза меньше чем переменники). получил интересную зависимость угол поворота/напряжение: почти на всем диапазоне что то вроде линейной а в самом конце резко прыгает вверх. мне так удобней в виде специфики той проги, в которой работаю.
проблему падения напруги на диодах решил вводом в прогу коэффициента (1.124). продывал на вход Vref через диод давать напряжение питания, но все равно чуть не хватило, а с более "сложным" делителем извращаться не стал.
паны на будущее:
сменить переменники на нормальные по 5-10 КОм
добавить также фейдеры (позунковые)
понатыкать кнопок
вернуть устройству дисплей
и всунуть все в другой (побольше) корпус
выпить коньяка
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения