Сегодня платка пришла, и как раз с кнопками, а хочется энкодер. Пойду пока собирать на проводах. Только у меня не громкость, а регулятор напряжения в бп.
_________________ Четырехканальный комбайнёр на букву Х.
Друзья, помогите поправить код для замены 3х кнопок энкодером, сам в программировании пока не силен. В общем вот участок кода обрабатывающий кнопки: Спойлер
Код:
void getkey(void) {
if(PIND.4 == 0) { REQUIRED_TEMP = d; u = t_max; if (PIND.2 == 0) { delay_ms(20); if(PIND.2 ==0) REQUIRED_TEMP++; d = REQUIRED_TEMP; } if (PIND.3 == 0) {delay_ms(20); if(PIND.3 ==0) REQUIRED_TEMP--; d = REQUIRED_TEMP; } }
else { REQUIRED_TEMP = u; d = t_min; if (PIND.2 == 0) { delay_ms(20); if(PIND.2 ==0)
REQUIRED_TEMP++ ; u = REQUIRED_TEMP; } if (PIND.3 == 0) {delay_ms(20); if(PIND.3 ==0) REQUIRED_TEMP-- ; u = REQUIRED_TEMP; } }
PIND.4 - должен быть кнопкой энкодера, PIND.2 и PIND.3 вращение влево о вправо соответственно. Нашел вот такой код обрабатывающий энкодер но совместить знаний не хватает Спойлер
Тема, конечно, умерла, но вдруг кому понадобится. Топикстартер хотел заменить кнопки "больше"/"меньше" энкодером. Очень удивился, что у такой, казалось бы, примитивной задачи не нашлось решения НЕ на основе МК. Почему-то начали придумывать схемы с триггерами, генераторами стробсигнала...наверное я невнимательно читал, но так и не понял почему. А тем временем, именно для решения такой же задачи у меня уже седьмой год работает простенькая схемка на основе всего навсего одной попсовой 7400. Она же 555ЛА3. По началу боялся проблем с дребезгом, но по сей день полет нормальный и проблем нет. Хотя, справедливости ради, скажу, что повторял схему с одним энкодером, который уж очень дребезжал и ни о какой стабильности речи не шло, пока не заменил его на другой. Принцип работы описывать наверное нет смысла, все предельно просто. Вместо первой кнопки вешаем терминал А энкодера, вместо второй - В. С на землю. Выходы 8 и 11 выдают соответственно сигнал низкого уровня в зависимости от направления вращения энкодера либо на одной, либо на другой ножке (то, что и нужно). Энкодер самый обычный, квадратурный со сдвигом 90 градусов. Срабатывает схема четко, никакой грязи на втором выходе при активном первом (и наоборот) не наблюдается, как в одной из приведенных выше схем.
Сделал так. Энкодер применен от компьютерной мыши. При вращении в одну сторону на одном выходе цикл 1001, на другом цикл 1100 соответственно. При обратном вращении циклы меняются местами. Цель была получить при вращении в одну сторону сигнал на одном выходе 1010, на другом -1. При вращении в обратную сторону - смену сигналов на выходе. Есть недостаток у схемы - помехи на неактивном выходе во время срабатывания активного. Но в целом она работает и уже проверена. Если кто подскажет как ее можно усовершенствовать буду рад.
Serj66610, спасибо. Я так понял это от дребезжания контактов. Надеюсь поможет. Однако при эмуляции в мультисиме 10 версии, осциллограф выдает следующие импульсы на неактивном выходе (см. картинку). Возможно это из-за паразитной емкости транзистора или логического элемента или прога гонит, даже не знаю...
Заголовок сообщения: Re: как заменить кнопки на энкодер?
Добавлено: Ср мар 22, 2017 06:21:51
Родился
Зарегистрирован: Ср мар 22, 2017 06:19:32 Сообщений: 1
Рейтинг сообщения:0
Oberstserj писал(а):
Тема, конечно, умерла, но вдруг кому понадобится. Топикстартер хотел заменить кнопки "больше"/"меньше" энкодером. Очень удивился, что у такой, казалось бы, примитивной задачи не нашлось решения НЕ на основе МК. Почему-то начали придумывать схемы с триггерами, генераторами стробсигнала...наверное я невнимательно читал, но так и не понял почему. А тем временем, именно для решения такой же задачи у меня уже седьмой год работает простенькая схемка на основе всего навсего одной попсовой 7400. Она же 555ЛА3. По началу боялся проблем с дребезгом, но по сей день полет нормальный и проблем нет. Хотя, справедливости ради, скажу, что повторял схему с одним энкодером, который уж очень дребезжал и ни о какой стабильности речи не шло, пока не заменил его на другой. Принцип работы описывать наверное нет смысла, все предельно просто. Вместо первой кнопки вешаем терминал А энкодера, вместо второй - В. С на землю. Выходы 8 и 11 выдают соответственно сигнал низкого уровня в зависимости от направления вращения энкодера либо на одной, либо на другой ножке (то, что и нужно). Энкодер самый обычный, квадратурный со сдвигом 90 градусов. Срабатывает схема четко, никакой грязи на втором выходе при активном первом (и наоборот) не наблюдается, как в одной из приведенных выше схем.
Подскажите пожалуйста, для тупого, как вот это дело собрать. Паял когда давно в детстве, но до такого не доходил. Вот сейчас хочу заменить две кнопки энкодером, но далек от этого всего
Не хочу показаться грубым, но, ребят, может вы сначала с основами разберетесь, паять научитесь, разберетесь с тем как работает логика, научитесь платы делать... Вы серьезно считаете, что вас на словах можно всему этому научить? Хотите без знаний и опыта сразу взять и собрать работающее устройство? Серьезно? Или я чего-то не понимаю? Что скрывается за вашей просьбой помочь собрать? По шагам учить основам? Так дуйте в обучалку и нарабатывайте опыт, пока не осознаете, что готовы самостоятельно и с пониманием собирать подобные вещи. Что вы в тематическую ветку-то лезете?
...Так дуйте в обучалку и нарабатывайте опыт, пока не осознаете, что готовы самостоятельно и с пониманием собирать подобные вещи. Что вы в тематическую ветку-то лезете?
Вроде и так в обучалке задают вопросы. Или есть ещё какая-то? Кстати, вышеприведенная Вами схема (в том виде как нарисована) энкодер не обрабатывает. Для сравнения посмотрите
Как раз о замене энкодером двух кнопок на логике, без МК. Вот здесь http://codius.ru/articles/255 с 57 абзаца более чем подробно расписано что происходит. А в видео к статье наглядно продемострирован эффект.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения