» » » ATMega8. Устранение дребезга кнопок. Доработка блока управления гаражной дискотеки

 
Любые вопросы. Конкретный вопрос — конкретный ответ.
Создаёте топик с вопросом, подробно описываете ситуацию, получаете ответ, закрываете топик.
По необходимости модераторы разнесут вопросы по тематическим разделам.
 
 

ATMega8. Устранение дребезга кнопок. Доработка блока управления гаражной дискотеки

📆16.07.19 🙋Wishmaster 👀1 562 💬7
Небольшая предыстория - меня попросили сделать простенький коммутатор мощной нагрузки на 8 выходов, каждый из которых управлялся бы свой кнопкой. Эдакий светорежиссёрский пульт управления стробоскопом, диско шаром, гирляндами и прочей атрибутикой.

Что, может быть проще, подумал я и сходу заказал 10 кнопок и 10 реле из Китая.
С реле всё нормально, а вот с кнопками случилась оказия - пришли кнопки без фиксации... Немного самобичевания, матов на невнимательного китайца, и я приступил к написанию программы на ATMega8.


Суть проста: 8 портов ввода и 8 портов вывода, по нажатию кнопки происходит выдача логической единицы на выход присвоенного порта МК, при повторном нажатии его обнуление. Моего скудного опыта хватило на написание нехитрой программы.

Симуляция Proteus не показала каких-либо проблем. А вот на реальной железке выяснилась проблема дребезга кнопки, хотя простой «антидребезг» я написал. Играл с временем задержки срабатывания, но всё тщетно - срабатывание нечёткое.
Проверил осциллографом - дребезг в рамках 3-5 миллисекунд.
Вроде бы задержка, описанная в программе должна исключить этот дефект, но нет.
Пробовал поставить конденсатор - получилась кривая спада в 0, но опять же кнопка продолжает дребезжать.

Я думал внедрить счётчик, по заполнению которого принималось срабатывание кнопки и включение порта, но это для моего уровня уже сложновато.

Помогите в решении этой проблемы.


Спасибо за внимание!
Дмитрий (Wishmaster)
Пенза
Профиль Wishmaster
29 лет. Инженер-электронщик. Ранее состоял в нескольких рок и металл группах. Люблю собирать ламповые усилители.
 

Читательское голосование

Нравится

Статью одобрили 2 читателя.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Терморегулятор для холодильника на микроконтроллере ATMEGA8 и термодатчике DS18B20. Схема, плата, прошивка... Здравствуйте, дорогие читатели Датагор.ру! Сегодня я расскажу о своём проекте, который родился на...
Схема на Датагоре. Новая статья Обновление прошивки датагорского кита Project 004 «Gatekeeper» v.11.0... Привет, друзья! Подоспела обнова к Новому году: очередное обновление прошивки для нашего сервисного...
Схема на Датагоре. Новая статья Кнопочный выключатель для УНЧ на JK-триггере CD4027... Обычно использовать маленький красивый выключатель для подачи питания на силовой трансформатор нет...
Схема на Датагоре. Новая статья PIC16F876: таймер вытяжного вентилятора в ванной и электронный термометр... Я недавно делал капитальный ремонт ванной комнаты и возник вопрос, как управлять вентилятором...
Схема на Датагоре. Новая статья Простейший кодовый замок на реле, для начинающих... Начну с того, что на работе у меня стоял какой-то древний самодельный кодовый замок, который уже не...
Схема на Датагоре. Новая статья Управляем нагрузкой по USB с помощью ПК и ATMega8... В наше время все больше находят применение устройства, позволяющие управлять нагрузками с помощью...
Схема на Датагоре. Новая статья Знакомьтесь: Flowcode. Программирование для AVR и PIC без программирования... Здравствуйте, друзья! В данной статье я хочу рассказать о своих впечатлениях при работе с...
Схема на Датагоре. Новая статья Простой кодовый электронный замок... В статье С. Романова представлена недорогая и простая в изготовлении конструкция замка на основе...
Схема на Датагоре. Новая статья Преобразователь сигналов для механического энкодера... При использовании механического энкодера в своих разработках возникают некоторые проблемы, так как...
Схема на Датагоре. Новая статья Регулятор громкости на TDA7313 и PIC 16F876A.... Для новой конструкции мне понадобился блок управления громкостью и тембрами. Я выбрал...
Схема на Датагоре. Новая статья Микроконтроллеры. Связь с внешним миром. Часть 1. Клавиатура... Очень давно обещал продолжить цикл статей по работе с микроконтроллерами, но не было физической...
Схема на Датагоре. Новая статья ATmega8/L... Представляю вам даташит на микроконтроллер ATmega8/L фирмы Atmel. Если кто рискнёт перевести......
 

Общаемся по статье 💬

«ATMega8. Устранение дребезга кнопок. Доработка блока управления гаражной дискотеки»

Комментарии, вопросы, ответы, дополнения, отзывы

 

<

Гость Юрий

Читатель Датагора
  • Прохожий
Комментарий # 1 от 16-07-19, 9:43.
Ответить
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
Ну и макарон наплели lol Почитайте про маскирование битов — код будет три строчки.
И мнит портов можно так сделать:
PORTD = 0x00011111
DDRD = 0x00100000

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 2 от 16-07-19, 10:00.
Ответить
  • С нами с 26.02.2006
  • 2 220 комментариев
  • 274 публикации
 
Дмитрий, привет!
Я бы для начала напаял подтягивающие к «1» резисторы 4К7...10К на все кнопочные входы МК.

==========================
А вааще, собрал бы на жёсткой логике, типа D-триггеров ТМ2. (SN7474N, SN74LS74)

В одном чипе 2 триггера, т.е. нужно 5 корпусов. Цепь начального сброса R10-C6 применить одну на все чипы.
R11 и светики можно исключить. И деталей-то не остаётся, только RC-цепочка на кнопке.
Два выхода (прямой и инверсный). На каждое нажатие кнопки состояние перебрасывается на противоположное. Рули чем хочешь. Работает очень надёжно.

==========================
Или, если позволяют группы контактов ваших реле и кнопок — А. Шишков, Д. Штырков, Радио № 9, 1984, Стр. 40-42.


==========================
Или, ещё лучше, нашёл бы «правильные» кнопки, раз уж задача столь проста. lol

<

Sergiy_83

Сергей Читатель Датагора
  • Гражданин
Комментарий # 3 от 16-07-19, 17:58.
Ответить
  • С нами с 16.10.2012
  • 71 комментарий
  • 7 публикаций
 
Дмитрий, ставьте задержку после switch и милисикунд 200 это гарантирует что вы отпустите кнопку, и не будет дребезга при отпускании.

Примерно так.

<

erbol

Ербол Читатель Датагора
  • Гражданин
Комментарий # 4 от 17-07-19, 11:14.
Ответить
  • С нами с 11.12.2014
  • 80 комментариев
  • 9 публикаций
 
Дмитрий, не хотите использовать PCINT на отпускание кнопки (дребезга меньше, чем при нажатии)? В обработчике запустите таймер на 10-15 мс и уже потом определите нажатую кнопку. Могу поискать соответствующий код.

<

Wishmaster

Дмитрий Читатель Датагора
  • Гражданин
Комментарий # 5 от 17-07-19, 19:41.
Ответить
  • С нами с 1.05.2013
  • 111 комментариев
  • 20 публикаций
 
Всем спасибо за советы!
Sergiy_83, Вам отдельное спасибо, пример заработал отлично (дребезга нет). Поиграл с дилэем и определил оптимальный для себя вариант в 400ms. Написал по примеру все 8 портов ввода и вывода. Всё гениальное просто, не нужно никаких переменных, а просто жёсткая привязка к нажатию и временная остановка программы после срабатывания.

<

Datagor

Игорь Котов Читатель Датагора
  • Главный редактор
Комментарий # 6 от 17-07-19, 19:45.
Ответить
  • С нами с 26.02.2006
  • 2 220 комментариев
  • 274 публикации
 
Дима, поздравляю!
С тебя статейка с рабочей схемой, ПП и проверенной прошивкой. wink
Мало ли — пригодится! Ведь не тебе одному китайцы неправильные кнопки присылают.

<

Wishmaster

Дмитрий Читатель Датагора
  • Гражданин
Комментарий # 7 от 17-07-19, 19:47.
Ответить
  • С нами с 1.05.2013
  • 111 комментариев
  • 20 публикаций
 
Да с удовольствием напишу как соберу устройство. Плюсану ещё видео с места действия))

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте корректны и вежливы, соблюдайте правила!


Налетай! Паяльники, станции, жала с доставкой

Офигенная миниатюрная рация на литии BaoFeng UV-5R, 5W, 5-15 км!

Тестер универсальный LCR-TC1 для транзисторов, конденсаторов, ESR, MOSFET и т.д.
  • smilelolhellowinkscepticthumbupbored
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashpartyhandshake
    musicnegativenowordspardonshoksleepunknown
    wackoyawnsainthelmethashsmokingwhew


Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.