Как подключить кнопку к arduino
Содержание:
- Устройство и виды стеклоподъемников
- Кнопка ардуино
- Как подключить кнопку и светодиод к Ардуино
- Техническое обслуживание транспортного средства
- Чистка контактов кнопки стеклоподъемника на ВАЗ-2114
- Переключение режимов с помощью кнопки
- 1 Виды кнопок
- Распространенные неисправности
- Кнопка габаритов и ближних фар ВАЗ 2114: особенности и замена
- Подключение кнопки в режиме INPUT_PULLUP
- Замена шестеренок
Устройство и виды стеклоподъемников
Итак, какое устройство СП на Калине:
- желобки, предназначенные для фиксации самого стекла;
- рельсы, которые обеспечивают его передвижение вверх и вниз;
- уплотнительные элементы, демпфер, а также ограничители движения;
- приводной механизм;
- подъемное устройство, обеспечивающее передачу колебания движения приводного элемента на стекло.
Схема подключения СП на Калине
В зависимости от привода, СП делятся на механические или «мясорубки», в которых поднятие стекла осуществляется за счет поворота ручки, а также электрические. В последних управление системой осуществляется с помощью кнопки. В основе такой электросхемы лежит моторчик с редуктором.
Помимо этого, СП делятся между собой и по типу используемого устройства, которое приводит стекло в движение. Они могут быть реечными, тросиковыми или рычажными. Каждый из этих видов имеет свои достоинства и недостатки.
Кнопка ардуино
Кнопка (или кнопочный переключатель) – самый простой и доступный из всех видов датчиков. Нажав на нее, вы подаете контроллеру сигнал, который затем приводит к каким-то действиям: включаются светодиоды, издаются звуки, запускаются моторы. В своей жизни мы часто встречаемся с разными выключателями и хорошо знакомы с этим устройством.
Тактовые кнопки и кнопки-переключатели
Как обычно, начинаем раздел с простых вещей, интересных только начинающим. Если вы владеете азами и хотите узнать о различных вариантах подключения кнопки к ардуино – можете пропустить этот параграф.
Что такое кнопка? По сути, это достаточно простое устройство, замыкающее и размыкающее электрическую сеть. Выполнять это замыкание/размыкание можно в разных режимах, при этому фиксировать или не фиксировать свое положение. Соответственно, все кнопки можно поделить на две большие группы:
- Кнопки переключатели с фиксацией. Они возвращаются в исходное состояние после того, как их отпустили. При в зависимости от начального состояния разделяют на нормально-замкнутые и нормально-разомкнутые кнопки.
- Кнопки без фиксации (тактовые кнопки). Они фиксируются и остаются в том положении, в котором их оставили.
Вариантов различных кнопок великое множество, это действительно один из самых распространенных видов электронных компонентов.
Кнопки ардуино для простых проектов
В наших проектах мы будем работать с очень простыми тактовыми кнопками с 4 ножками, которые идут практически в любом наборе ардуино. Кнопка представляет собой переключатель с двумя парами контактов. Контакты в одной паре соединены между собой, поэтому больше одного выключателя в схеме реализовать не удастся, но вы можете одновременно управлять двумя параллельными сегментами, это бывает полезно.
В зависимости от ситуации, вы можете создавать как схемы с нормально замкнутыми, так и с нормально разомкнутыми контактами – для этого нужно будет только соответствующим образом выполнить соединение в схеме.
Для удобства работы в комплекте с тактовой кнопкой обычно идет пластмассовый колпачок какого-то цвета, он достаточно очевидно надевается на кнопку и придает проекту менее хакерский вид.
Как подключить кнопку и светодиод к Ардуино
Для занятия нам понадобятся следующие детали:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- макетная плата;
- светодиод;
- 2 резистора 220 Ом;
- 2 тактовых кнопки;
- провода «папа-папа».
Схема для включения/выключения светодиода кнопкой от Ардуино
Для переключения светодиода кнопкой Ардуино соберите схему, как на изображении выше
Обратите внимание, что тактовая кнопка на макетной плате подключена к микроконтроллеру без подтягивающего резистора. Пин 2 подключен к 5V через встроенный резистор, поэтому при отпущенной кнопке на входе пине 2 будет высокий уровень сигнала, а при нажатии кнопки будет низкий уровень
Скетч. Управление светодиодом Ардуино через кнопку
boolean buttonWasUp = true; boolean ledEnabled = false; void setup() { pinMode(10, OUTPUT); pinMode(2, INPUT_PULLUP); } void loop() { // узнаем, отпущена ли кнопка сейчас boolean buttonIsUp = digitalRead(2); // если кнопка была отпущена и не отпущена сейчас if (buttonWasUp && !buttonIsUp) { // исключаем дребезг контактов тактовой кнопки delay(10); // и считываем сигнал с кнопки снова buttonIsUp = digitalRead(2); // если кнопка нажата, то переворачиваем сигнал светодиода if (!buttonIsUp) { ledEnabled = !ledEnabled; digitalWrite(10, ledEnabled); } } // запоминаем состояние кнопки для новой итерации buttonWasUp = buttonIsUp; }
Пояснения к коду:
- — это глобальная переменная Ардуино, которая может принимать всего два значения – true (истина) и false (ложь);
- задержка в программе позволяет избежать «дребезг контактов» кнопки и исключить ложное срабатывание.
Схема управления светодиодом двумя кнопками от Ардуино
Скетч. Управление двумя кнопками одним светодиодом
boolean button1WasUp = true; boolean button2WasUp = true; void setup() { pinMode(10, OUTPUT); digitalWrite(10, LOW); pinMode(2, INPUT_PULLUP); pinMode(4, INPUT_PULLUP); } void loop() { // узнаем, отпущены ли две кнопки сейчас boolean button1IsUp = digitalRead(2); boolean button2IsUp = digitalRead(4); // если кнопка 1 была отпущена и не отпущена if (button1WasUp && !button1IsUp) { delay(10); // повторно считываем сигнал с кнопки 1 button1IsUp = digitalRead(2); if (!button1IsUp) { digitalWrite(10, LOW); } } // если кнопка 2 была отпущена и не отпущена if (button2WasUp && !button2IsUp) { delay(10); // повторно считываем сигнал с кнопки 2 button2IsUp = digitalRead(4); if (!button2IsUp) { digitalWrite(10, HIGH); } } // запоминаем состояние двух кнопок ардуино button1WasUp = button1IsUp; button2WasUp = button2IsUp; }
Пояснения к коду:
- данный пример программы позволяет включать светодиод нажатием одной кнопки и выключать светодиод нажатием второй кнопки;
- задержка Ардуино позволяет избежать «дребезг контактов» кнопки и исключить возможность ложного срабатывания.
Следующий пример тоже потребует для подключения к Ардуино две кнопки, два светодиода, как на предыдущей схеме. Но вместо простого включения/выключения диода, мы будем увеличивать и уменьшать яркость светодиода с помощью ШИМ сигнала микроконтроллера. Загрузите пример программы для «Светодиод и кнопка Ардуино ШИМ», чтобы получить понятие о принципе работы кнопки с Arduino Uno.
Скетч. Управление яркостью светодиода кнопкой Ардуино
#define PLUS_BUTTON 2 #define MINUS_BUTTON 4 int brightness = 100; boolean plusUp = true; boolean minusUp = true; void setup() { pinMode(10, OUTPUT); pinMode(PLUS_BUTTON, INPUT_PULLUP); pinMode(MINUS_BUTTON, INPUT_PULLUP); } void loop() { analogWrite(10, brightness); // реагируем на нажатия кнопки с помощью функции handleClick plusUp = handleClick(PLUS_BUTTON, plusUp, +20); minusUp = handleClick(MINUS_BUTTON, minusUp, -20); } boolean handleClick(int buttonPin, boolean wasUp, int delta) { boolean isUp = digitalRead(buttonPin); if (wasUp && !isUp) { delay(10); isUp = digitalRead(buttonPin); // если был клик кнопки, меняем яркость в пределах от 0 до 255 if (!isUp) brightness = constrain(brightness + delta, 0, 255); } return isUp; }
Пояснения к коду:
- для подключения светодиода следует использовать пин с ШИМ модуляцией;
- начальное значение яркости равен ста, в программе прирост и уменьшение яркости (20) можно поменять по своему усмотрению.
Техническое обслуживание транспортного средства
Менять любые детали в машине рекомендуется только на оригинальные. Соблюдение указанного требования исключит последующие внеплановые ремонты. Если обслуживания требует кнопка стеклоподъемников Калины, то для начала понадобится найти необходимые инструменты.
Используя 2 маленьких плоских отвертки, нужно извлечь из пазов блок. Непосредственная замена производится без резких движений, чтобы не сломать хрупкие элементы. Как только становится возможным добраться до проводки, нужно с не меньшей аккуратностью избавиться от штекера. Сделать это можно при мощи незначительного физического усилия. Для отсоединения второго штекера используется фиксатор.
После того как блок питания стекол извлечен, его необходимо осмотреть. Наличие любых механических повреждений говорит о необходимости обязательной замены. Даже углубленный ремонт не поможет восстановить его работоспособность. Перед установкой нового блока необходимо провести еще одну проверку. Ее актуальность возрастает, когда речь идет о замене реле.
Чистка контактов кнопки стеклоподъемника на ВАЗ-2114
Если вдруг кнопка стеклоподъемника на ВАЗ-2114 начала подклинивать или вообще отказывается работать, нужно провести ряд мероприятий по ее диагностике и исправлению проблем.
-
Для начала проводят демонтаж кнопки. Для этого острием ножа или жалом плоской отвертки подковыривают край корпуса детали. А затем руками извлекают ее из гнезда. Аккуратно вынимают кнопку вместе с креплением-фишкой и проводами. Если этого не сделать, то для поиска гнезда придется снимать подиум.
- Фишка остается в отверстии корпуса, а саму кнопку с зажимами и контактами нужно продиагностировать и при необходимости отремонтировать.
- Для этого необходимо поместить деталь на чистую светлую ровную поверхность в хорошо освещенном помещении.
- С помощью жала плоской отвертки нужно открыть кнопку. С обеих сторон обе части устройства соединены специальными защелками-«пчелками». Поочередно отмыкая одну за одной, кнопку разделяют на две части.
- Верхняя часть – это контакты. Ее отставляют.
- Нижняя часть – «мозги», среди которых находится электронная плата. Ее демонтаж производят лишь после того, как на корпусе будут сделаны отметки о ее точном расположении.
Контакты аккуратно отгибаются под углом до 90 градусов, после чего проводится их зачистка. А затем переходят к анализу правильности порядка подключения контактов
Для этого важно понимать принцип распиновки кнопки стеклоподъемника
Переключение режимов с помощью кнопки
Для того, чтобы определить, была ли нажата кнопка, надо просто зафиксировать факт ее нажатия и сохранить признак в специальной переменной.
Факт нажатия мы определяем с помощью функции digitalRead(). В результате мы получим HIGH (1, TRUE) или LOW(0, FALSE), в зависимости от того, как подключили кнопку. Если мы подключаем кнопку с помощью внутреннего подтягивающего резистора, то нажатие кнопки приведет к появлению на входе уровня 0 (FALSE).
Для хранения информации о нажатии на кнопку можно использовать переменную типа boolean:
boolean keyPressed = digitalRead(PIN_BUTTON)==LOW;
Почему мы используем такую конструкцию, а не сделали так:
boolean keyPressed = digitalRead(PIN_BUTTON);
Все дело в том, что digitalRead() может вернуть HIGH, но оно не будет означать нажатие кнопки. В случае использования схемы с подтягивающим резистором HIGH будет означать, что кнопка, наоборот, не нажата. В первом варианте (digitalRead(PIN_BUTTON)==LOW ) мы сразу сравнили вход с нужным нам значением и определили, что кнопка нажата, хотя и на входе сейчас низкий уровень сигнала. И сохранили в переменную статус кнопки. Старайтесь явно указывать все выполняемые вами логические операции, чтобы делать свой код более прозрачным и избежать лишних глупых ошибок.
Как переключать режимы работы после нажатия кнопки?
Часто возникает ситуация, когда мы с помощью кнопок должны учитывать факт не только нажатия, но и отпускания кнопки. Например, нажав и отпустив кнопку, мы можем включить свет или переключить режим работы схемы. Другими словами, нам нужно как-то зафиксировать в коде факт нажатия на кнопку и использовать информацию в дальнейшем, даже если кнопка уже не нажата. Давайте посмотрим, как это можно сделать.
Логика работы программы очень проста:
- Запоминаем факт нажатия в служебной переменной.
- Ожидаем, пока не пройдут явления, связанные с дребезгом.
- Ожидаем факта отпускания кнопки.
- Запоминаем факт отпускания и устанавливаем в отдельной переменной признак того, что кнопка была полноценно нажата.
- Очищаем служебную переменную.
Как определить нажатие нескольких кнопок?
Нужно просто запомнить состояние каждой из кнопок в соответствующей переменной или в массиве ардуино. Здесь главное понимать, что каждая новая кнопка – это занятый пин. Поэтому если количество кнопок у вас будет большим, то возможно возникновение дефицита свободных контактов. Альтернативным вариантом является использование подключения кнопок на один аналоговый пин по схеме с резистивным делителем. Об этом мы поговорим в следующих статьях.
1 Виды кнопок
Кнопки бывают разные, но все они выполняют одну функцию – физически соединяют (или, наоборот, разрывают) между собой проводники для обеспечения электрического контакта. В простейшем случае – это соединение двух проводников, есть кнопки, которые соединяют большее количество проводников.
Виды кнопок, их внешний вид и обозначение на электрической схеме
Некоторые кнопки после нажатия оставляют проводники соединёнными (фиксирующиеся кнопки), другие – сразу же после отпускания размыкают цепь (нефиксирующиеся кнопки).
Также кнопки делят на:
- нормально разомкнутые,
- нормально замкнутые.
Сейчас нашёл широкое применение тип кнопок, которые называют «тактовые кнопки». Тактовые – не от слова «такт», а от слова «тактильный», т.к. нажатие хорошо чувствуется пальцами. Но этот ошибочный термин устоялся, и теперь эти кнопки у нас повсеместно так называют. Это кнопки, которые при нажатии замыкают электрическую цепь, а при отпускании – размыкают, т.е. это нефиксирующиеся, нормально разомкнутые кнопки.
Распространенные неисправности
Причин, по которым не работает стеклоподъемник на Калине и по которым требуется замена устройства, множество, но мы рассмотрим основные из них:
- Щетки электродвигателя зависли, обычно это случается в результате перегрева самих щеточных элементов, которые, как правило, не устойчивы к резким температурным перепадам. Соответственно, в результате нагрева щеток может расплавиться пластиковое гнездо. Также это приведет к тому, что сами щетки потеряют подвижность . Если неисправность только начала проявляться, для восстановления работоспособности узла можно несколько раз постучать по пластиковой облицовке двери. Однако со временем этот способ уже не сможет давать необходимый результат, поэтому вмешательство в конструкцию СП будет неизбежным.
- Причиной неисправности, по которым может потребоваться замена СП, также может служить непродуманность электросхемы, заложенной на производстве. Непосредственно сами контакты не в состоянии выдержать необходимую нагрузку, которая возложена на них. Система СП может выйти из строя из-за того, что электросхема не дополнена разгрузочным реле. Так что в случае поломки часто случается такое, что автовладельцу приходится производить ремонт не только электростеклоподъемников, но и самого пульта управления.
Как показывает практика, в большинстве случаев ремонт узла или совсем невозможен, или может быть произведен, но с большим трудом. Соответственно, наиболее оптимальным вариантом будет установка нового СП (автор видео — Эмильен Ok).
Кнопка габаритов и ближних фар ВАЗ 2114: особенности и замена
Для большего удобства, кнопка включения ближних фар и кнопка включения габаритов ваз 2114 выполнены парно и расположены на европанели автомашины. Обе они снабжены дополнительными встроенными светодиодами (два — для подсветки, а также диод индикации — для габаритных огней).
Как правило, проблем с эксплуатацией этих кнопок не возникает, но в случае необходимости (например, при поломке), следует знать, как их заменить.
Делается все в следующем порядке:
- Снять заглушку под панелью кнопок (снимается просто рукой, без инструмента).
- Выдавить кнопки внутрь салона, нажав на них изнутри.
- Плавно потянуть кнопку, слегка раскачивая ее, и вынуть из колодки.
- Установить в колодку новую кнопку.
- Уставить кнопки обратно в панель.
Как можно заметить, замену можно выполнить практически моментально, не прикладывая каких-либо больших усилий и не используя специального инструмента.
Еще один немаловажный момент, который следует осветить — это распиновка кнопки габаритов ваз 2114. Она может понадобиться, например, при замене кнопки старого типа на кнопку для европанели.
Наиболее наглядно с ней можно ознакомиться на следующих схемах: для кнопок старого типа
Также, распиновка кнопки включения света ваз 2114 может помочь и при устранении неисправностей в работе самих кнопок, например если не работает подсветка одной из них.
В этом случае следует учитывать, что контакы:
- 6-В или 5-В — отвечают за работу индикатора ближнего света;
- А-В — подсветка кнопки ближних фар;
- С-D — индикатор включения габаритов;
- Е-D — подсветка кнопки включения габаритов.
Подключение кнопки в режиме INPUT_PULLUP
В указанной выше схеме мы использовали резистор, называемый подтягивающим, для формирования определенного уровня сигнала на цифровом порту. Но есть другой способ подключить кнопку без резистора, используя внутренне сопротивление платы ардуино. В блоке setup мы должны всего лишь определить тип пина, к которому подключим кнопку, как INPUT_PULLUP.
Альтернативным вариантом будет выбрать режим пина как OUTPUT и установить на данный порт высокий уровень сигнала. Встроенный подтягивающий резистор подключиться автоматически.
И все. Можно собрать вот такую сложную схему и работать с кнопкой в скетче.
Замена шестеренок
Если стеклоподъемник охотно опускается, а подниматься отрешается, тогда будет нужно подмена шестеренок. 1-ая операция – это демонтаж обивки совместно с блоком переключателей. Дальше откручивают три гайки, которые задерживают мотор-редуктор.
Потом отворачивают гайки крепления механизма и болты крепления стекла, не запамятывая отсоединить колодку. Дальше снимается конкретно редуктор, выкручиваются шурупы и снимается крышка. С помощью отвертки вынимается шестеренка, а ее корпус нужно кропотливо очистить. Подшипник, также червь также следует кропотливо смазать. Потом все собирается в оборотном порядке.
Если не работает стеклоподъемник («Калина» хэтчбек — не исключение), то после таковой подмены непременно заработает, ведь шестерня – одна из типовых обстоятельств выхода механизма из строя.
В случае если все эти мероприятия не посодействовали, тогда меняют весь механизм стопроцентно вкупе с мотором. Выполнить демонтаж не так трудно, главное — приобрести высококачественный механизм. Запчасти в продаже могут отличаться от тех, которые установлены на заводе.
https://youtube.com/watch?v=bmDpxNHcv_A