Как сделать тактовую кнопку

Обновлено: 03.07.2024

Кажется, что может быть проще, чем подключить кнопку? Тем не менее, и тут есть свои подводные камни. Давайте разберёмся.

Инструкция по подключению кнопки к Arduino

    или иная совместимая плата; ;
  • резистор 10 кОм (вот отличный набор резисторов с основными номиналами от 10 Ом до 10 МОм); (breadboard);
  • соединительные провода (рекомендую вот такой набор);
  • персональный компьютер со средой разработки Arduino IDE.

1 Виды кнопок

Кнопки бывают разные, но все они выполняют одну функцию – физически соединяют (или, наоборот, разрывают) между собой проводники для обеспечения электрического контакта. В простейшем случае – это соединение двух проводников, есть кнопки, которые соединяют большее количество проводников.

Виды кнопок, их внешний вид и обозначение на электрической схеме

Некоторые кнопки после нажатия оставляют проводники соединёнными (фиксирующиеся кнопки), другие – сразу же после отпускания размыкают цепь (нефиксирующиеся кнопки).

Также кнопки делят на:

Первые при нажатии замыкают цепь, вторые – размыкают.

2 Дребезг контактов

Дребезг контактов в момент нажатия и отпускания кнопки

3 Некорректное подключение кнопки

Чтобы подключить нормально разомкнутую тактовую кнопку к Arduino, можно поступить самым простым способом: один свободный проводник кнопки соединить с питанием или землёй, другой – с цифровым выводом Arduino. Но, вообще говоря, это неправильно. Дело в том, что в моменты, когда кнопка не замкнута, на цифровом выводе Ардуино будут появляться электромагнитные наводки, и из-за этого возможны ложные срабатывания.

Неправильное подключение кнопки к Arduino

4 Подключение кнопки по схеме с подтягивающим резистором

Сначала подключим к Arduino кнопку по схеме с подтягивающим резистором. Для этого один контакт кнопки соединим с землёй, второй – с цифровым выходом "2". Цифровой выход "2" также подключим через резистор номиналом 10 кОм к питанию +5 В.

Схема подключения кнопки к Arduino по схеме с подтягивающим резистором

Напишем вот такой скетч для обработки нажатий на кнопку и загрузим в Arduino.

Встроенный светодиод на выводе "13" постоянно горит, пока не нажата кнопка. Т.е. на порте "2" Arduino всегда присутствует высокий логический уровень HIGH. Когда нажимаем кнопку, напряжение на "2" порте принимает состояние LOW, и светодиод гаснет.

5 Подключение кнопки по схеме со стягивающим резистором

Теперь соберём схему со стягивающим резистором. Один контакт кнопки соединим с питанием +5 В, второй – с цифровым выходом "2". Цифровой выход "2" подключим через резистор номиналом 10 кОм к земле. Скетч менять не будем.

Подключение кнопки к Arduino по схеме со стягивающим резистором

При включении схемы на цифровом порте "2" Arduino низкий уровень LOW, и светодиод не горит. При нажатии на кнопку на порт "2" поступает высокий уровень HIGH, и светодиод загорается.

Настоящие отражения в OpenGL?
Внимание! Тема относится к чисто Nvidia, архитектуры Maxwell. Но если вы готовы помочь портировать.

есть тут настоящие специалисты?
вопрос к специалистам как опрелелить какую позицию занимает страница в поиске по заданному.

Создать настоящие связанные списки
Добрый день! Возможно в excel создать настоящие связанные списки? То есть задача такая: Список.

Настоящие мужчины сидят под Windows
Настоящие мужчины сидят под Windows Настоящие мужчины не боятся неизведанного. Легко не бояться.

я думаю мелкосерийно делать кнопки никто не может. сколько на выходе цена должна быть? 10 кнопок по 100 долларов? или 100 кнопок по 10?
3д принтеры тут гораздо сильнее помогут, ABS с пост обработкой, и лазерной литографией будет гораздо дешевле, если вам надо два десятка сделать кнопок таких

Схем подключения тактовой кнопки несколько, рассмотрим сначала две , схема со стягивающим резистором и схема с подтягивающим резистором.

Схема со стягивающим резистором:

питание берётся с платы Arduino

При использовании внешнего источника питания:

Данная схема работает следующим образом, при нажатии кнопки на штырьке будет напряжение равное напряжению источника питания. При отпускании кнопки, штырёк заземлится и напряжение снимется.

Схема с подтягивающим резистором.

Питание берётся с платы Arduino:

При использовании внешнего источника питания:

Здесь ситуация противоположная схеме со стягивающим резистором. При нажатии на кнопку штырёк заземляется и напряжения нет. При отпускании кнопки на штырьке появляется напряжение равное напряжению на источнике питания.

Для данных схем можно использовать один и тот же скетч. Возьмём стандартный скетч:

Файл -> Примеры ->02.Digital->Button;

Убираем комментарии, и получаем вот такой код:

Данный код выполняет следующие действие:

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

И так в блоке, где задаются глобальные переменные, кроме ledPin на 13 штырьке (не забываем, что на этом штырьке у большенства плат Arduino уже подключен светодиод. Иначе вам придётся его подключить.) Заданы переменные :

В buttonPin будет хранится номер штырька, к которому подключена кнопка. Слово const обозначает, что эта переменная является константой, то есть она не будет меняться во время выполнения кода.

И в ней будет хранится состояние кнопки, для дальнейшей обработки.

Для инициализации штырька, для получения с него сигнала, так же используется функция pinMode. Первый параметр в нём как и раньше номер штырька, а второй INPUT (можно перевести как вход).

Теперь мы можем снимать с него значения, что мы и делаем в функции loop:

Первая команда в этой функции:

Мы заносим в переменную buttonState значение штырька. Наличие напряжения = HIGH = 1. Отсутствие напряжения = LOW = 0.

Дальше мы функцией if делаем разветвление в программе:

Если значение buttonState является HIGH, то есть на нашем штырьке есть напряжение, то

Включаем напряжение на светодиод.

Иначе (если напряжение на штырьке нет):

Эта проверка будет бесконечно повторяться в цикле, до перезагрузки платы.

Есть ещё одна схема, которую обычно рисуют перечёркнутым крестом и говорят, что так не правильно, посмотрим на неё, так как эфект очень интересный:

(На видео до нажатия кнопки светодиод моргает, после нажатия кнопки горит ровно.)

На видео видно, что при замыкании схемы, на штырьке есть напряжения. А в разомкнутом состоянии проводник играет роль антены, и происходят ложные срабатывания нажатия кнопки. Тоесть схема в размкнутом состоянии выглядит как то так:

И не известно, поймает она в данный момент сигнал или нет.

изменим схему подключения:

Вячеслав Бабушкин

Ну почему. Почему ТАКТОВУЮ а не тактильную? Правильно tactile button - тактильная кнопка. А есть ещё сенсорные.

Sarbakan Sarbakan

Вячеслав Бабушкин

Sarbakan, нет не такт а tactile что означает ощущать, чувствовать. Т.е. вы ощущаете нажатие на кнопку, в отличии от сенсорных, которые срабатывают от прикосновения. Наберите в поиске tactile button или tactile switch.

Sarbakan Sarbakan

Вячеслав, тут может типа игра слов. У нас один раз нажал типа это и есть такт. Нам так на оборудовании объясняли лет ,25, назад

Леонид Хованский

Вячеслав, потому что скажешь "тактовую " и все понимают "как на оргтехнике, без фиксации", а скажешь "тактильную" и все такие: "а? шо такое? это такая красненькая сенсорная с алихи? а! это тонкопленочная!". Тактовая это уже традиция, нарушать - только путать). Это раз.
И внезапно все кнопки кроме сенсорных - тактильные. Соответственно особо это акценитировать моветон.
Это все равно что вместо "Голосуйте за Путина!" кричать "Живые дееспособные граждане РФ, имеющие возможность и желаение, голосуйте за Путина на выборах в ЗАКС 2032 30 февраля!" - Ясен-красен это и так подразумевается, зачем это уточнять?

Timur Grubich-Borisenko

Вячеслав, оно то так но сука дело привычки. Это как эзернетовский разъем rj-45. Все его так называют но по стандарту это совсем другое

Виталий Пилипенко

А не проще ли вместо всего этого огорода поставить кнопку с фиксацией. Благо они есть в таких же формфакторах.


Если вам нужна клавиатура, вы можете её приобрести. Если вам нужна небольшая клавиатура, то тут всё сложнее. Кроме вариантов с переделкой клавиатуры от Blackberry или возни с крохотными тактильными переключателями, нормальных решений для получения небольших, тонких и специализированных клавиатур нет. Однако есть один вариант: силиконовые клавиатуры. Пока этого никто не делал, поэтому я решил – почему бы и не попробовать.



PiMiniQWERTY – наилучшая из самодельных миниатюрных клавиатур

Во-первых, стандартные тактильные кнопки на 4 мм весьма дороги. Это не проблема, если вы используете небольшое их количество для одного проекта, но если вам требуется 60-70 кнопок на устройство, стоимость начинает расти. Самые дешёвые из тех, что я нашёл, стоят по $70 за рулон из 4000, или пару центов за штуку. Возьмём 70 штук и получим $1,25 на устройство – только за кнопки. Может получиться, что кнопки будут стоить дороже микроконтроллера.

Во-вторых, тактильные кнопки надо собирать вместе. Количество отказов может быть не очень большим, но если вы собираете целые платы из переключателей, оно будет больше, чем если бы это были единые устройства. По сравнению с SMD-резисторами и колпачками кнопки большие и толстые, что увеличивает количество брака при их размещении. Также, поскольку на сборку такой клавиатуры тратится много времени, приходится платить за сборку из кнопок больше, чем за установку готового устройства. Это увеличивает стоимость клавиатуры на основе тактильных переключателей.

Наконец, на кнопках нет маркировки. Если вы будете собирать клавиатуру из 4 мм кнопок, вам придётся делать маркировку на плате. На белградской конференции это было сделано довольно неплохо, а у mini (Pi)QWERTY – блестяще, поскольку там использовали две платы, одну для электроники, вторую для подписей. Можно представить нанесение надписей на кнопки, однако их поверхность и так весьма мала.



Силиконовые клавиатуры с TaoBao и AliExpress. Продающие их компании изготавливают их и на заказ.

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

Различные типы силиконовых и мембранных переключателей



Мембранная клавиатура ZX Spectrum

Перед тем, как углубиться в проектирование силиконовых клавиатур, нужно обсудить схемы небольших клавиатур и наборов клавиш. Первые – это клавиатуры Metal Dome, или мембранные. Лучшими примерами таких тактильных мембранных кнопок будут клавиатуры от популярных домашних компьютеров 1980-х, ZX Spectrum или Atari 400. Если посмотреть в других местах квартиры, возможно, такая клавиатура стоит у вас на микроволновке.

Такие клавиатуры располагают кнопки матрицей. Электрическая схема состоит из дорожек, нарисованных токопроводящими чернилами на двух листах полиэстера. Купол из нержавейки располагается под каждой кнопкой. Нажатие на кнопку сжимает купол, и замыкает два слоя полиэстера.

Однако чистые мембранные переключатели на ощупь очень дешёвые и не дают обратной тактильной связи. Один из вариантов – расположить пластиковые кнопки над мембранным переключателем. Клавиатуры Metal Dome (с металлическим куполом) используют клавиши из жёсткого пластика, нажимающие на небольшие металлические купола, зажатые между двумя слоями полиэстера с проводящими чернилами:






Но мембранным клавиатурам не обязательны жёсткие пластиковые кнопки. Можно использовать мягкие силиконовые, поверх мембранной клавиатуры, как сделано на ZX Spectrum. Вместо жёстких пластиковых прямоугольников, как у меня в проекте Metal Dome, Speccy использовали единое полотно из силиконовых кнопок. ZX Spectrum использовал силиконовые кнопки на своей клавиатуре, но это всё равно была мембранная клавиатура. Нет разницы, как нажимать металлический купол – через лист пластика с напечатанными символами, или силиконовыми прямоугольниками.

Другой тип клавиатуры – такая, которую я сделал для этой статьи – это силиконовая, или резиновая клавиатура.



Вездесущий мембранный кейпад для Arduino

Выбирая между мембранной и резиновой клавиатурой, стоит рассмотреть несколько моментов, и многие из них способны перевесить чашу весов в пользу мембранной. Хотя резиновые клавиатуры можно делать многих цветов, символы на мембранной клавиатуре, по сути, печатаются; на мембраной клавиатуре можно сделать любые символы любых цветов. Мембранные клавиатуры дешевле, поскольку им не нужна форма для литья. Резиновым клавиатурам требуется полоска, содержащая монолитный блок силиконовых клавиш, что означает дополнительная стоимость второй формы для литья. И выигрывает резиновая клавиатура только по тактильным ощущениям. Если вы когда-нибудь пробовали использовать Atari 400, вы согласитесь: на резиновых клавиатурах гораздо проще печатать. А ещё они более стильные, чем мембранные.

Текущие проекты



Не специализированная резиновая клавиатура, которую можно использовать хоть сейчас

На сегодня мне неизвестны случаи использования специализированных резиновых клавиатур малыми тиражами. Они, конечно, существуют в DIY-сообществе: Adafruit продаёт клавиатуры 4х4 (у Sparkfun есть то же самое), и подобные кнопки можно заказать на AliExpress и eBay. Да, конечно, Sparkfun и Adafruit потратились на разработку плат, но сами кнопки, скорее всего, делают где-то далеко-далеко. Это не специализированные клавиатуры; это стандартные готовые клавиатуры для специализированных проектов.

И эти резиновые кнопки использовались много где: для создания клона Monome, шагового секвенсора, MIDI-устройства. Именно для этого силиконовые кнопки с подсветкой и были разработаны: из них получаются крутые MIDI-контроллеры. Но поскольку на них нет меток, они мало для чего ещё подходят.

И это единственные, насколько мне известно, DIY-проекты, в которых используются силиконовые клавиатуры 4х4. Люди, конечно, пытаются делать что-то ещё. Некоторые из них ищут на форумах резиновые клавиатуры, а кое-кто экспериментирует с алюминиевыми формами для литья, но пока что никому не удалось достичь успеха. Дэйв Джонс отверг идею резиновых клавиатур для своего проекта uSupply и перешёл на специализированные мембранные переключатели.

Разработка клавиатуры, бобышки и отверстия для воздуха

Так из чего же строится создание резиновой клавиатуры? По сути, мы разрабатываем стальную или алюминиевую форму для литья. Форма отправляется в машину для литья под давлением, где её заполняют углеродными шариками, заливают горячим силиконом, который потом вулканизируют. Возможна дальнейшая обработка кнопок – лазерное нанесение меток, шелкография или нанесение эпоксидного покрытия. Проектирование резиновой клавиатуры – это проектирование формы для литья, но базовые компоненты довольно просты. Ниже приведён пример – клавиатура из единственной клавиши – которую я за несколько минут сделал в Fusion360.




Внешняя форма клавиатуры зависит от назначения, а базой служит слой силикона. На углах основы есть четыре бобышки, для крепления на плате. Они нужны для выравнивания кнопки и предотвращения её скольжения.

Внутренняя структура клавиши состоит из большой углеродной таблетки, того контакта, который будет нажимать на плату. На клавиатуре просто расположено больше клавиш, но форма одной клавиши, по сути, одна и та же. Отметьте промежутки снизу клавиши, позволяющие воздуху проходить под ней. Если их не сделать, клавиатура будет подпукивать при нажатии.



Силиконовая клавиша в разрезе. Чёрный объект – углеродная таблетка, служащая мостиком между двумя контактами на плате.



Размеры моей клавиатуры, в мм.


После того, как проект клавиатуры был готов, а файлы отправлены на фабрику для изготовления формы и производства нескольких пробных образцов, настало время разработать печатную плату. Для моего проекта схема особого значения не имела – главное, чтобы на плате были близко расположены две дорожки, соединённые с противоположными сторонами клавиатурной матрицы. Для этого рекомендуется технология ENIG. Имеют значение и производственные ограничения: стандартный минимум ширины дорожки и расстояния между ними составляет 0,15 — 0,20 мм, и я разработал плату с дорожками в 0,25 мм и таким же расстоянием между ними.

Закончив клавиатуру и плату, можно переходить к крепёжной полоске. Это перфорированный пластик, прикручивающийся к плате. Резиновая клавиатура зажимается между ним и платой. Я сделал следующий прототип, просто затем, чтобы протестировать клавиатуру. Электроника – просто Teensy LC (была у меня под рукой), с вырезом, дающим доступ к плате для прототипирования:



Я отправил эту модель в Shapeways, и клавиатура была собрана. Прошивка на Teensy использует стандартную библиотеку Keypad и представляется компьютеру, как устройство USB HID. Получилась специализированная резиновая клавиатура именно той формы, что мне надо. Это не окончательный вариант, поскольку USB-клавиатура – это просто рабочая концепция для проверки резиновых клавиш, однако она реально работает.








Раскрою стоимость проекта; стоит учитывать, что выборка тут очень маленькая – я обращался лишь к одному производителю только с одной моделью. Однако из-за сильной конкуренции на рынке, я думаю, что эти цены будут достаточно репрезентативными для средней стоимости специализированной резиновой клавиатуры.

Стоимость получилась следующей:

Изготовление $2 219
Проектирование $600
Банковская комиссия $58
ИТОГО $2 877

С экономической точки зрения всё это имеет смысл при тиражах порядка 10 000

Общая стоимость небольшого количества образцов получилась равной $2877. Это стоимость формы для литья и проверки инженером CAD-файлов. Десять клавиатур за три тысячи баксов.

Однако после всех этапов проектирования и подготовки фабрика способна выдавать клавиатуры пачками. После этого стоимость одной штуки становится равной от $1,3 при тираже в 1000 до $0,79 при тираже в 5000. Так что в сумме тысяча клавиатур обойдётся мне в $4 177, то есть по $4,18 за штуку. Пять тысяч клавиатур обойдутся в $6 827, или по $1,36 за штуку. Такая цена, меньше $1,5, делает эту технологию жизнеспособной для мелкомасштабного производства.

Резиновые клавиатуры подходят для крупных производителей: Samsung продаёт миллионы телевизоров, и у всех них один пульт д/у. Вопрос изготовления резиновой клавиатуры для DIY-проекта всегда оставался открытым. Проекты мелкого масштаба не используют эту технологию, поэтому некого было спросить, имеют ли смысл специализированные силиконовые переключатели. Я говорю, что смысл есть, если вы делаете тысячу клавиатур. На тираже в пять тысяч стоимость резиновой клавиатуры и пластикового крепежа может опуститься меньше стоимости микроконтроллера.

Читайте также: