Тема: Пианино
Показать сообщение отдельно
Старый 22.04.2009, 21:06   #75
tester
Super Moderator
 
Аватар для tester
 
Регистрация: 28.02.2007
Возраст: 42
Сообщений: 3,577
Вес репутации: 4386/125
tester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond reputetester has a reputation beyond repute
По умолчанию Re: Пианино

Цитата:
Сообщение от michipic Посмотреть сообщение
Поправьте, если я неправ. ИМХО, смысл касания пальцем клавиатуры состоит в уменьшении амплитуды импульса опроса на аналоговом входе.
Не амплитуды, а скорости нарастания напряжения. Что в свою очередь дает разный уровень напряжения через одно и то же время после начала заряда. Это принципиальная разница.
Цитата:
АЦП определяет это уменьщение, и формируется флаг касания клавиатуры.
Тогда можно отвлечься от сложных ёмкостных эффектов, установив обычную кнопку на замыкание аналогового входа на общий провод (через резистор, офкоз... ). Так вот, в моём случае изменение тона даже с такой кнопкой так и не происходит.
Вот бы на свободный вывод вывести какую-нибудь лог. 1 при установке флага нажатия кнопки.
Так-с... Погоди про АЦП и простые кнопки. Добейся того, чтобы схема работала.

1. Насколько я понял, в твою схему нужно внести 30н, чтобы кривая сигнала скосилась. Еще раз повторю, что это очень много. Сам посчитай, при 100К и 30н Тау будет равна 1*10^5 * 30*10^-9 = 30* 10^-4 = 3 мс (миллисекунды), а время определения угла наклона в программе порядка 6-7 мкс (микросекунд) (+50 мкс на АЦП измерение; в течение этого времени емкость будет продолжать заряжаться, но уже не повлияет на результат). Что-то не так. По симптомам похоже, что не те резисторы стоят. Какие номиналы ты поставил?

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

3. Перепроверь содержимое массивов COLS и ROWS с фактическими подключениями.

4. Когда все это будет проверено, переходи к настройки АЦП. По настройке АЦП воспользуйся советом IgorV: убери все лишнее, оставь только измерения. Измеренные данные через UART - в комп и смотри, как изменяются показания АЦП при прикосновении пальцем. Добейся, чтобы это работало.

Проще было бы достать F88, запустить на нем, а потом уже переносить программу на F877(a).

Цитата:
Кстати, внесение в пианино нескольких светодиодов, управляемых в сответствии с музыкой, добавило бы привлекательности этому устройству. Для детей.
Я для эффектности использовал малоногий ПИК, а там светодиоды уже не приткнуть было.

P.S. Я хоть искренне желаю, чтобы у всех, кто попытается повторить устройство, оно бы заработало, но я физически не смогу каждому переписать программу под ПИК, который у него имеется, и тем более не смогу помочь отладить ее на расстоянии. Результат даст кропотливая программистская работа и усидчивость.
tester вне форума   Ответить с цитированием