Кнопка: как использовать этот простой элемент с Arduino

кнопка

Un кнопка - это кнопка, которая позволяет прервать или отправить электронный сигнал. С помощью этого простого элемента в сочетании с другими элементами вы можете создавать проекты для множества приложений. Использование этого типа кнопок очень распространено, когда дело доходит до проектов Arduino. И, объединив несколько из этих кнопок, вы можете создать несколько более сложную клавиатуру, хотя для этих целей уже есть программируемые клавиатуры ...

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

символ кнопки

Есть НО или нормально разомкнутые кнопки и НЗ или нормально замкнутые кнопки. Это также будет звучать для вас от реле. И да, это точно такая же операция. Когда у вас есть NC, он пропускает ток через свои клеммы и прерывается только тогда, когда вы нажимаете на него. С другой стороны, NA не пропускает ток, когда на него не оказывается давление, и пропускает его только тогда, когда вы нажимаете на него.

Знаю это, почти все, что вам нужно знать о кнопке чтобы начать подключение и программирование с помощью Arduino. На самом деле это настолько простой элемент, что о кнопках такого типа больше нечего сказать.

Интеграция кнопки с Arduino

схема с Arduino

La подключение кнопки сделать так, чтобы он взаимодействовал с Arduino, не может быть проще. Примером может служить диаграмма, которую вы видите на этих строках. Этого достаточно, чтобы начать экспериментировать. Но, конечно, с этой схемой мало что можно сделать. Вам необходимо проявить немного воображения, чтобы решить, чем будет управлять эта кнопка. Фактически, если вы часто читаете hwlibre.es, вы уже видели некоторые статьи, в которых мы использовали кнопки ...

Способы его подключения

подтягивание и опускание

Одна вещь, которую вы должны знать, - это проблема защиты от отказов и как подключить эти кнопки. Сначала мы перейдем к способу их подключения, который, как вы уже знаете, может быть с подтягивающими и понижающими резисторами:

  • Натяжение- С этой настройкой резистора, когда кнопка нажата, микроконтроллер или Arduino могут видеть или читать ноль на этом контакте. То есть он интерпретирует это как НИЗКИЙ сигнал.
  • Тянуть вниз: В этом случае наоборот, вы можете прочитать или получить сигнал 1 или HIGH через подключенный контакт.

Не путайте с NC или NA, что есть нечто иное, как мы видели ранее. Это не зависит от другого ...

Анти-отскок

Кнопки имеют эффект отскока при нажатии. То есть, когда он нажимается или отпускается, происходит флуктуация сигнала, который проходит через его контакты и может привести к его переходу из состояния ВЫСОКОЕ в НИЗКОЕ или наоборот, не желая этого на самом деле. Это может оказать нежелательное воздействие на Arduino и заставить его делать странные вещи, например, активировать элемент, когда мы действительно хотели выключить его нажатием кнопки и т. Д. Это потому, что Arduino интерпретирует отскоки, как если бы он был нажат более одного раза ...

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

Например, схемы подтягивания и понижения с противоударный конденсатор они будут выглядеть примерно так:

отборщик

В то время как программный метод Это можно увидеть в этом фрагменте кода:

if (digitalRead (button) == LOW) // Проверяем, нажата ли кнопка
{
нажата = 1; // Переменная меняет значение
}
if (digitalRead (кнопка) == ВЫСОКИЙ && нажатый == 1)
{
// Выполняем желаемое действие
нажата = 0; // Переменная возвращается к исходному значению
}

Пример простого проекта

защита от отскока с помощью кнопки и Arduino

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

После правильного подключения следующее, что нужно написать код в Arduino IDE запрограммировать вашу панель и начать экспериментировать с кнопками. Вот простой пример кода для управления нашей схемой:

// Пример скетча для управления кнопкой
внутренний контакт = 2;
int состояние;
пульсирующий int = 0;
установка void ()

{
pinMode (2, ВХОД); // Чтобы прочитать импульс, сделав этот вывод вводом

pinMode (13, OUTPUT); // Для светодиода

Serial.begin (9600);
}
пустой цикл ()

{
если (digitalRead (2) == ВЫСОКИЙ)

{

контакт = 2;

antiBounce (); // Вызов функции защиты от отскока

}
}
// Программная функция защиты от дребезга
недействительный анти-отскок ()

{
while (digitalRead (pin) == LOW);
состояние = digitalRead (13);
digitalWrite (13,! состояние);
while (digitalRead (контакт) == ВЫСОКИЙ);

}


5 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Изображение местозаполнителя для Marcelo Castillo сказал

    Прохладный!!! Большое спасибо, я создавал ЧПУ, и, как это ни парадоксально, мне было сложнее всего настраивать кнопки.

  2.   Лилиана сказал

    Привет! Я проконсультируюсь как новичок, в связи с GND ... .. черный провод не должен выходить из отрицательной линии, которая расположена над показанной на схеме 2?

  3.   Джон сказал

    Отличное объяснение ... пару лет назад я работал над проектом зажигания автомобиля, и, по правде говоря, я никогда не мог правильно нажимать клавиши. Для зажигания ... Я собираюсь попробовать этот метод. Большое спасибо за эту огромную помощь

  4.   омар ромеро ринкон сказал

    Здравствуйте, делаю проект с тремя кнопками и 5 светодиодами со следующей последовательностью.
    Одна кнопка отправляет сигнал на 1 светодиода, которые я назвал 2 и 1.
    вторая кнопка посылает сигнал на 3 светодиода, называемые 2,3 и 4.
    Моя третья кнопка отправляет сигнал еще на 3 светодиода, которые называются 3,4, 5 и XNUMX.

    Мне удалось выполнить эту последовательность, у меня только одна проблема: при нажатии 2 кнопок он отправляет ложный сигнал на светодиод, который должен оставаться включенным, заставляя его периодически мигать, я контролировал это, установив задержку (2 секунды, это то, что мне нужно, чтобы светодиоды оставались включенными, а затем выключались. Тогда мой вопрос в том, как я могу добавить функцию миллис в свою программу, я не понимаю, как работает миллис, я хочу знать, можете ли вы мне помочь, сделав пример для 3 кнопок, используя миллис в каждой из них, мне нужны миллис, чтобы иметь возможность нажимать кнопки в любое время, не задерживая Arduino.

    1.    Исаак сказал

      Привет Омар,
      Я рекомендую вам посмотреть наше руководство по Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      И вы также можете увидеть нашу статью о millis ():
      https://www.hwlibre.com/millis-arduino/
      Приветствие.