Бутон: как да използвате този прост елемент с Arduino

бутон

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

Между другото, не трябва да бъркате бутона с превключвател. Те са напълно различни неща. Разликата е, че превключвателят или превключвателят се активира или деактивира с всяко натискане, което се прави върху него. Докато бутонът ще остане само в едно състояние, докато върху него се упражнява натиск. Коментирах, че може да изпраща или прекъсва, защото има два основни типа бутони.

бутон символ

Има и НЕ или нормално отворени бутони и NC или нормално затворени бутони. Това ще ви звучи и от релетата. И да, това е абсолютно същата операция. Когато имате NC, той ще пропуска ток през терминалите си и той прекъсва само докато го натискате. От друга страна, NA не пропуска тока, когато не се упражнява натиск върху него и ще го пропусне само когато го натиснете.

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

Интеграция с бутон с Arduino

схема с Arduino

La свързване на бутон да го накара да взаимодейства с Arduino не може да бъде по-просто. Пример е диаграмата, която можете да видите на тези редове. Това би било всичко, за да започнете да експериментирате. Но разбира се, с тази схема можете да направите малко. Би било необходимо да вложите малко въображение, за да решите какво ще контролира този бутон. Всъщност, ако четете често hwlibre.es, вече сте виждали някои статии, в които сме използвали бутони ...

Начини за свързването му

изтегляне и изтегляне

Едно нещо, което трябва да знаете, е проблемът с анти-отскока и как да свържете тези бутони. Първо отиваме към начина за свързването им, който вече знаете, че може да бъде с изтеглящите и падащите резистори:

  • Набиране- С тази настройка на резистора, когато бутонът е натиснат, микроконтролерът или Arduino може да види или отчете нула на този щифт. Тоест, интерпретира го като НИСКИ сигнал.
  • Падащото: В този случай е обратното, можете да прочетете или да получите сигнал 1 или HIGH през свързания щифт.

Не го бъркайте с NC или NA, което е нещо различно, както видяхме по-рано. Това е независимо от останалите ...

Анти-отскок

Бутоните имат a ефект на скачане при натискане. Тоест, когато бъде натиснат или освободен, има колебание в сигнала, който преминава през контактите му и може да доведе до преминаване от ВИСОКО в НИСКО състояние или обратно, без наистина да иска това да се случи. Това може да доведе до нежелан ефект върху Arduino и да го накара да прави странни неща, като например активиране на елемент, когато наистина сме искали да го изключим с бутона и т.н. Това е така, защото Arduino интерпретира отскоците, сякаш е бил натискан повече от веднъж ...

Този отрицателен ефект има решение. За това трябва да се внедри малък кондензатор във веригата против отскачане (хардуерен метод) или софтуер (модифициране на изходния код), независимо дали е използвана изтегляща или падаща конфигурация или е NC или NO. Във всички тези случаи решението трябва да бъде приложено, за да се избегнат тези отскоци.

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

rebounder

Докато софтуерен метод Може да се види в този кодов фрагмент:

if (digitalRead (button) == LOW) // Проверете дали бутонът е натиснат
{
натиснат = 1; // Променливата променя стойността
}
ако (digitalRead (бутон) == HIGH && натиснат == 1)
{
// Изпълнете желаното действие
натиснат = 0; // Променливата се връща към първоначалната си стойност
}

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

анти-отскок с бутон и Arduino

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

След като се свържете правилно, следващото нещо е да пишете кодът в IDE на Arduino за да програмирате панела си и да започнете да експериментирате с бутоните. Един прост пример за код за управление на нашата схема ще бъде следният:

// Пример за скица за управление на бутона
int щифт = 2;
int състояние;
пулсиращ int = 0;
настройка за невалидност ()

{
pinMode (2, INPUT); // За отчитане на импулса чрез въвеждане на този щифт

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

Serial.begin (9600);
}
void loop ()

{
if (digitalRead (2) == HIGH)

{

щифт = 2;

antiBounce (); // Извикване на функцията против отскачане

}
}
// Софтуерна функция против отскачане
празно анти-отскок ()

{
while (digitalRead (pin) == LOW);
състояние = digitalRead (13);
digitalWrite (13 ,! състояние);
while (digitalRead (pin) == HIGH);

}


5 коментара, оставете своя

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

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

  1.   Изображение на резервоар на Марсело Кастило каза той

    Готино!!! Благодаря ви много, изградих CNC и парадоксално е, че бутоните бяха най-трудното за мен да настроя.

  2.   Лиляна каза той

    Здравей! Консултирам се като начинаещ, във връзка с GND ... ..черен проводник не трябва да излиза от отрицателната линия, която се намира над показаната на диаграма 2?

  3.   Джон каза той

    Отлично обяснение .. Преди няколко години направих проект за запалване на автомобил и истината е, че никога не бих могъл да направя правилно натискане на клавиш. За запалването .. Ще изпробвам този метод. Благодаря ви много за тази голяма помощ

  4.   Омар Ромеро Ринкон каза той

    Здравейте, правя проект с три бутона и 5 светодиода със следната последователност.
    1 бутон изпраща сигнал до 2 светодиода, които аз нарекох 1 и 2.
    вторият бутон изпраща сигнал до 3 светодиода, наречени 2,3 и 4.
    моят трети бутон изпраща сигнал до 3 други светодиода, наречени 3,4, 5 и XNUMX.

    Успях да направя тази последователност, имам само един проблем, при натискане на 2 бутона, той изпраща фалшив сигнал към светодиода, който трябва да остане да мига, карайки го да мига периодично, контролирах го като поставих забавяне (от 2 секунди, което ми трябва, така че светодиодите да останат включени и след това да изгаснат. Тогава въпросът ми е как мога да сложа функцията millis в моята програма, не разбирам как работи millis, искам да знам дали можете да ми помогнете чрез като направя пример за 3 бутона, използвайки милис във всеки от тях, имам нужда от милис, за да мога да натискам бутоните по всяко време, без да забавя arduino.

    1.    Isaac каза той

      Здравей Омар,
      Препоръчвам ви да видите нашия урок за Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      Можете също да видите нашата статия за милис ():
      https://www.hwlibre.com/millis-arduino/
      За поздрав.