Кнопка: як використовувати цей простий елемент з Arduino

кнопку

Un кнопка - це кнопка, яка дозволяє переривати або надсилати електронний сигнал. За допомогою цього простого елемента в поєднанні з іншими елементами ви можете створювати проекти для безлічі додатків. Використання цього типу кнопок дуже поширене, коли мова йде про проекти з Arduino. А поєднавши декілька з цих кнопок, ви можете створити дещо складнішу клавіатуру, хоча для цих цілей вже є програмовані клавіатури ...

До речі, не слід плутати кнопку з перемикачем. Це абсолютно різні речі. Різниця полягає в тому, що перемикач або перемикач активується або деактивується при кожному натисканні на нього. Тоді як кнопка залишатиметься в одному стані лише під час тиску на неї. Я зауважив, що він може надсилати або переривати це, тому що існує два основних типи кнопок.

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

Є такі НІ або нормально відкриті кнопки та NC або нормально закриті кнопки. Це також звучатиме вам з реле. І так, це точно така ж операція. Коли у вас є NC, він пропускає струм через його термінали, і він переривається лише під час натискання. З іншого боку, НС не пропускає струм, коли на нього не чинять тиску, і пропускатиме його лише тоді, коли ти натиснеш на нього.

Знаючи це, - це майже все, що вам потрібно знати про кнопку щоб розпочати підключення та програмування за допомогою Arduino. Правда полягає в тому, що це настільки простий елемент, що про такий тип кнопок говорити не так багато.

Кнопкова інтеграція з Arduino

ланцюга з Arduino

La підключення кнопки зробити його взаємодією з Arduino не може бути простішим. Прикладом є схема, яку ви можете бачити на цих рядках. Це все, що потрібно для початку експериментів. Але, звичайно, з цією схемою ви мало що можете зробити. Вам було б потрібно докласти трохи фантазії, щоб вирішити, чим ця кнопка буде керувати. Насправді, якщо ви часто читаєте hwlibre.es, ви вже бачили деякі статті, де ми використовували кнопки ...

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

підтягування та розтягування

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

  • Задирати- За допомогою цього налаштування резистора при натисканні кнопки мікроконтролер або Arduino може бачити або зчитувати нуль на цьому штифті. Тобто він інтерпретує це як НИЗЬКИЙ сигнал.
  • Тягнути вниз: У цьому випадку все навпаки, ви можете прочитати або отримати сигнал 1 або HIGH через підключений штифт.

Не плутайте це з NC або NA, що є чимось іншим, як ми бачили раніше. Це не залежить від інших ...

Анти-відскок

Кнопки мають a ефект відмов при натисканні. Тобто, коли його натискають або відпускають, відбувається коливання сигналу, який проходить через його контакти і може призвести до того, що він переходить із ВИСОКОГО стану в НИЗКИЙ або навпаки, насправді не бажаючи цього. Це може спричинити небажаний ефект на Arduino і змусити його робити дивні речі, наприклад, активувати елемент, коли ми дійсно хотіли його вимкнути кнопкою тощо. Це тому, що Arduino інтерпретує відскоки так, ніби на нього натискали не раз ...

Той негативний ефект він має рішення. Для цього в ланцюзі захисту від відмов (апаратний метод) або програмному забезпеченні (модифікація вихідного коду) повинен бути впроваджений невеликий конденсатор, незалежно від того, була використана розтягуюча або висувна конфігурація, або якщо вона NC чи NO. У всіх цих випадках рішення потрібно застосувати, щоб уникнути цих відскоків.

Наприклад, підтягуючі та випадаючі схеми з конденсатор проти відмов вони мали б виглядати приблизно так:

відновлювач

Поки програмний метод Це можна побачити в цьому фрагменті коду:

if (digitalRead (button) == LOW) // Перевірте, чи натиснута кнопка
{
натиснуто = 1; // Змінна змінює значення
}
якщо (digitalRead (кнопка) == HIGH && натиснуто == 1)
{
// Виконайте бажану дію
натиснуто = 0; // Змінна повертається до початкового значення
}

Простий приклад проекту

антивідскок за допомогою кнопки та Arduino

Коли ми вивчимо тему способів підключення нашої кнопки та схеми проти відскоку, ми побачимо практичний приклад керуйте світлодіодом за допомогою кнопки. Схема однаково проста, як бачите.

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

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

{
pinMode (2, INPUT); // Зчитування імпульсу шляхом введення цього штифта

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

Serial.begin (9600);
}
цикл void ()

{
if (digitalRead (2) == HIGH)

{

штифт = 2;

antiBounce (); // Виклик функції відмов

}
}
// Програмна функція проти відмов
недійсний антивідскок ()

{
while (digitalRead (pin) == LOW);
state = digitalRead (13);
digitalWrite (13 ,! стан);
while (digitalRead (pin) == HIGH);

}


5 коментарі, залиште свій

Залиште свій коментар

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

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Зображення заповнювача Марсело Кастільйо - сказав він

    Класно !!! Щиро дякую, я будував ЧПУ, і як це не парадоксально, кнопки мені було найважче налаштувати.

  2.   Ліліана - сказав він

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

  3.   Джон - сказав він

    Відмінне пояснення .. Пару років тому я зробив проект запалювання автомобіля, і правда, я ніколи не міг зробити правильного натискання клавіші. Для запалювання .. Я спробую цей метод. Щиро дякую за цю велику допомогу

  4.   Омар Ромеро Рінкон - сказав він

    Привіт, я роблю проект з трьома кнопками і 5 світлодіодами з такою послідовністю.
    1 кнопка посилає сигнал на 2 світлодіоди, які я назвав 1 і 2.
    друга кнопка надсилає сигнал на 3 світлодіоди, які називаються 2,3 і 4.
    мій третій кнопковий перемикач надсилає сигнал іншим 3 світлодіодам, які називаються 3,4, 5 і XNUMX.

    Мені вдалося виконати цю послідовність, у мене є лише одна проблема, при натисканні 2 кнопок він посилає помилковий сигнал на світлодіод, який повинен залишатися, змушуючи його періодично блимати, я керував цим, поставивши затримку (2 секунди, це те, що мені потрібно, щоб світлодіоди залишалися ввімкненими, а потім вимикалися. Тоді моє питання полягає в тому, як я можу додати функцію millis у свою програму, я не розумію, як працює millis, я хочу знати, чи можете ви мені допомогти Роблячи приклад для 3 кнопок із використанням millis у кожній з них, мені потрібно millis, щоб мати можливість натискати кнопки в будь-який час, не затримуючи Arduino.

    1.    Ісаак - сказав він

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