Кнопка: як выкарыстоўваць гэты просты элемент з Arduino

кнопка

Un кнопка - кнопка, якая дазваляе перапыніць альбо адправіць электронны сігнал. З дапамогай гэтага простага элемента ў спалучэнні з іншымі элементамі вы можаце ствараць праекты для мноства прыкладанняў. Выкарыстанне кнопак гэтага тыпу вельмі распаўсюджана, калі гаворка ідзе пра праекты з Arduino. І, аб'яднаўшы некалькі гэтых кнопак, вы можаце стварыць некалькі больш складаную клавіятуру, хоць для гэтага ўжо ёсць праграмуемыя клавіятуры ...

Дарэчы, не варта блытаць кнопку з перамыкачом. Гэта зусім розныя рэчы. Розніца складаецца ў тым, што перамыкач альбо перамыкач актывуецца альбо адключаецца пры кожным націску, які на ім робіцца. У той час як кнопка будзе знаходзіцца ў адным стане, пакуль на яе аказваецца ціск. Я пракаментаваў, што гэта можа адпраўляць альбо перапыняць, таму што існуе два асноўных тыпу кнопак.

кнопкавы сімвал

маюцца НЕ або звычайна адчыняюцца кнопкі і NC альбо звычайна закрываюцца кнопкі. Гэта таксама прагучыць для вас з рэле. І так, гэта сапраўды такая ж аперацыя. Калі ў вас ёсць NC, ён прапускае ток праз яго тэрміналы, і ён перарываецца толькі падчас націску. З іншага боку, НС не прапускае ток, калі на яго не аказваецца ціск, і прапускае яго толькі пры націску.

Ведаючы гэта, - гэта практычна ўсё, што вам трэба ведаць пра кнопку каб пачаць злучэнне і праграмаванне з дапамогай Arduino. Праўда ў тым, што гэта настолькі просты элемент, што пра гэты тып кнопак можна сказаць яшчэ шмат.

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

ланцуг з Arduino

La падключэнне кнопкі прымусіць яго ўзаемадзейнічаць з Arduino не можа быць прасцей. Прыкладам можа служыць схема, якую вы можаце ўбачыць на гэтых радках. Гэта было б усё, каб пачаць эксперыментаваць. Але, вядома, з такой схемай вы мала што можаце зрабіць. Вам трэба было б прыкласці крыху фантазіі, каб вырашыць, чым будзе кіраваць гэтая кнопка. На самай справе, калі вы часта чытаеце hwlibre.es, вы ўжо бачылі некаторыя артыкулы, дзе мы выкарыстоўвалі кнопкі ...

Спосабы яго злучэння

падцягванне і апусканне

Адно, што вы павінны ведаць, - гэта праблема анты-адскоку і як падключыць гэтыя кнопкі. Спачатку мы пойдзем да спосабу іх злучэння, які вы ўжо ведаеце, можа быць з падцягвальным і развальным рэзістарамі:

  • Падцягванне- З дапамогай гэтай налады рэзістара пры націску кнопкі мікракантролер альбо Arduino могуць бачыць ці счытваць нуль на гэтым кантакце. Гэта значыць, ён інтэрпрэтуе гэта як НІЗКІ сігнал.
  • Спусціцца ўніз: У гэтым выпадку ўсё наадварот, вы можаце прачытаць або атрымаць сігнал 1 альбо HIGH праз падлучаны штыфт.

Не блытайце гэта з NC або NA, што зусім іншае, як мы бачылі раней. Гэта не залежыць ад іншых ...

Анты-адскок

Кнопкі маюць эфект адскоку пры націску. Гэта значыць, калі ён націскаецца альбо адпускаецца, узнікае ваганне сігналу, які праходзіць праз яго кантакты і можа прывесці да пераходу яго з ВЫСОКАГА ў нізкі стан альбо наадварот, на самой справе не жадаючы, каб гэта адбылося. Гэта можа вырабіць непажаданы эфект на Arduino і прымусіць яго рабіць дзіўныя рэчы, напрыклад, актываваць элемент, калі мы сапраўды хацелі адключыць яго кнопкай і г.д. Гэта таму, што Arduino інтэрпрэтуе адскокі так, быццам на яго націскалі не раз ...

Гэта негатыўны эфект ён мае рашэнне. Для гэтага невялікі кандэнсатар павінен быць укаранёны ў схему анты-адскоку (апаратны метад) альбо праграмнае забеспячэнне (мадыфікацыя зыходнага кода), незалежна ад таго, выкарыстоўвалася канфігурацыя, якая падцягваецца, альбо калі яна NC ці NO Ва ўсіх гэтых выпадках рашэнне павінна быць выкарыстана, каб пазбегнуць гэтых адскокаў.

Напрыклад, цягавыя і выпадальныя ланцугі з анты-адскок кандэнсатар яны выглядалі б прыблізна так:

адскок

У той час як праграмны метад Гэта можна ўбачыць у гэтым фрагменце кода:

if (digitalRead (button) == LOW) // Праверка націскання кнопкі
{
націснута = 1; // Зменная змяняе значэнне
}
калі (digitalRead (кнопка) == HIGH && націснута == 1)
{
// Выканайце патрэбнае дзеянне
націснута = 0; // Зменная вяртаецца да зыходнага значэння
}

Просты прыклад праекта

анты-адскок з дапамогай кнопкі і Arduino

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

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

// Прыклад эскіза для кіравання кнопкай
int штыфт = 2;
міжнародная дзяржава;
пульсавалы int = 0;
ўстаноўка пустэчы ()

{
pinMode (2, INPUT); // Каб прачытаць імпульс, увёўшы гэты штыфт

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

Serial.begin (9600);
}
пустая пятля ()

{
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/
      Прывітанне.