Pushbutton៖ របៀបប្រើធាតុសាមញ្ញនេះជាមួយ Arduino

ប៊ូតុង

Un ប៊ូតុងរុញគឺជាប៊ូតុងដែលអនុញ្ញាតឱ្យអ្នករំខានឬបញ្ជូនសញ្ញាអេឡិចត្រូនិក។ ជាមួយនឹងធាតុដ៏សាមញ្ញនេះរួមផ្សំជាមួយធាតុផ្សេងទៀតអ្នកអាចបង្កើតគំរោងសំរាប់កម្មវិធីជាច្រើន។ ការប្រើបា្រស់ប្រូស្តាតប្រភេទនេះគឺជារឿងធម្មតាណាស់នៅពេលនិយាយដល់គម្រោងជាមួយអាឌូណូ។ ហើយដោយការរួមបញ្ចូលគ្នានូវប៊ូតុងទាំងនេះជាច្រើនអ្នកអាចបង្កើតក្តារចុចដែលស្មុគស្មាញជាងនេះបើទោះបីជាមានក្តារចុចដែលអាចដំណើរការបានសម្រាប់ការប្រើប្រាស់ទាំងនេះក៏ដោយ។

ដោយវិធីនេះ, អ្នកមិនគួរច្រឡំប៊ូតុងរុញជាមួយកុងតាក់ទេ។ ពួកវាជារឿងខុសគ្នាទាំងស្រុង។ ភាពខុសគ្នាគឺថាកុងតាក់ឬកុងតាក់ត្រូវបានធ្វើឱ្យសកម្មឬអសកម្មជាមួយសារព័ត៌មាននីមួយៗដែលត្រូវបានបង្កើតឡើងនៅលើវា។ ចំណែកឯប៊ូតុងរុញនឹងស្ថិតក្នុងស្ថានភាពតែមួយខណៈពេលដែលសម្ពាធកំពុងដាក់លើវា។ ខ្ញុំបានអត្ថាធិប្បាយថាវាអាចផ្ញើឬរំខាននោះគឺដោយសារតែមានប៊ូតុងមូលដ្ឋានពីរប្រភេទ។

និមិត្តសញ្ញាប៊ូតុងរុញ

មាន ទេឬជាធម្មតាប៊ូតុងរុញនិងអិន។ ស៊ី។ រឺបិទជាធម្មតា។ នេះក៏នឹងស្តាប់ទៅអ្នកពីការបញ្ជូនតផងដែរ។ មែនហើយវាពិតជាប្រតិបត្តិការដូចគ្នា។ នៅពេលអ្នកមាន NC វានឹងអនុញ្ញាតឱ្យចរន្តឆ្លងកាត់ស្ថានីយរបស់វាហើយវាគ្រាន់តែរំខាននៅពេលអ្នកកំពុងចុចវា។ ម៉្យាងទៀតរដ្ឋសភាមិនអនុញ្ញាតឱ្យឆ្លងកាត់ចរន្តនៅពេលសម្ពាធមិនត្រូវបានដាក់លើវាហើយនឹងអនុញ្ញាតឱ្យឆ្លងកាត់នៅពេលអ្នកចុចវា។

ដោយ​ដឹង​ថា, គឺស្ទើរតែអ្វីៗទាំងអស់ដែលអ្នកត្រូវដឹងអំពីប៊ូតុងរុញ ដើម្បីចាប់ផ្តើមការតភ្ជាប់និងការសរសេរកម្មវិធីរបស់អ្នកដោយប្រើ Arduino ។ ការពិតគឺថាវាគឺជាធាតុដ៏សាមញ្ញមួយដែលមិនមានអ្វីច្រើនទេដែលត្រូវនិយាយអំពីប្រភេទនៃការរុញច្រាននេះ។

ការរួមបញ្ចូលប៊ូតុងរុញជាមួយអារីដូណូ

សៀគ្វីជាមួយ Arduino

La ភ្ជាប់ប៊ូតុងរុញ ដើម្បីធ្វើឱ្យវាធ្វើអន្តរកម្មជាមួយ Arduino មិនអាចងាយស្រួលទេ។ ឧទាហរណ៍មួយគឺដ្យាក្រាមដែលអ្នកអាចមើលឃើញនៅលើបន្ទាត់ទាំងនេះ។ វាចាំបាច់ត្រូវចាប់ផ្តើមធ្វើពិសោធន៍។ ប៉ុន្តែជាការពិតជាមួយនឹងគ្រោងការណ៍នោះអ្នកអាចធ្វើបានតិចតួច។ វាចាំបាច់សម្រាប់អ្នកដើម្បីដាក់ការស្រមើលស្រមៃបន្តិចបន្តួចដើម្បីសម្រេចចិត្តថាតើប៊ូតុងនោះនឹងគ្រប់គ្រងអ្វី។ តាមពិតប្រសិនបើអ្នកអាន hwlibre.es ញឹកញាប់អ្នកនឹងបានឃើញអត្ថបទមួយចំនួនដែលយើងបានប្រើប៊ូតុងរុញ ...

វិធីភ្ជាប់វា

ទាញឡើងនិងទាញចុះក្រោម

រឿងមួយដែលអ្នកគួរតែដឹងគឺបញ្ហាប្រឆាំងនឹងការលោតនិង របៀបភ្ជាប់បូតុងទាំងនេះ។ ដំបូងយើងទៅរកវិធីភ្ជាប់ពួកវាដែលអ្នកដឹងរួចហើយអាចនៅជាមួយឧបករណ៍ទាញនិងទាញចុះក្រោម៖

  • ទាញ​ឡើង- ជាមួយនឹងការកំណត់រចនាសម្ព័ន្ធធន់ទ្រាំនេះនៅពេលដែលប៊ូតុងរុញត្រូវបានចុច microcontroller ឬ Arduino អាចមើលឃើញរឺអានសូន្យនៅលើម្ជុលនោះ នោះគឺវាបកស្រាយវាជាសញ្ញាទាប។
  • ទាញ​ទម្លាក់៖ ក្នុងករណីនេះវាផ្ទុយពីនេះអ្នកអាចអានឬទទួលសញ្ញា 1 ឬ HIGH តាមរយៈខ្សែភ្ជាប់។

កុំច្រឡំវាជាមួយគ។ ជ។ អ។ ឬអិន។ ដែលជាអ្វីដែលខុសពីអ្វីដែលយើងបានឃើញពីមុន។ នេះគឺឯករាជ្យនៃផ្សេងទៀត ...

ប្រឆាំងនឹងលោត

ប៊ូតុងរុញមាន ផលប៉ះពាល់ងើបឡើងវិញ នៅពេលចុច។ នោះគឺនៅពេលដែលវាត្រូវបានគេចុចឬបញ្ចេញវាមានភាពប្រែប្រួលនៃសញ្ញាដែលឆ្លងកាត់ទំនាក់ទំនងរបស់វាហើយអាចបណ្តាលឱ្យវាចេញពីរដ្ឋ HIGT ទៅ LOW ឬផ្ទុយមកវិញដោយមិនចង់អោយវាកើតឡើង។ ដែលអាចបង្កើតផលដែលមិនចង់បាននៅលើ Arduino និងធ្វើឱ្យវាធ្វើរឿងចម្លែកដូចជាធ្វើឱ្យធាតុសកម្មនៅពេលយើងពិតជាចង់បិទវាដោយប្រើប៊ូតុងរុញ។ ល។ នោះក៏ព្រោះតែអាឌូរីណូបកស្រាយសំលេងលោតផ្លេកៗហាក់ដូចជាវាត្រូវបានគេសង្កត់ច្រើនជាងម្តង ...

ផលប៉ះពាល់អវិជ្ជមាននោះ វាមានដំណោះស្រាយ។ ចំពោះបញ្ហានេះឧបករណ៍ចាប់ថាមពលតូចមួយត្រូវតែត្រូវបានអនុវត្តនៅក្នុងសៀគ្វីប្រឆាំងការលោត (វិធីសាស្ត្រផ្នែករឹង) ឬសូហ្វវែរ (កែប្រែកូដប្រភព) ថាតើការកំណត់រចនាសម្ព័ន្ធទាញឬទាញចុះក្រោមត្រូវបានប្រើឬប្រសិនបើវាជា NC ឬទេ។ ក្នុងករណីទាំងអស់ដំណោះស្រាយត្រូវតែត្រូវបានអនុវត្តដើម្បីជៀសវាងការស្ទុះងើបឡើងវិញទាំងនេះ។

ឧទាហរណ៍សៀគ្វីទាញនិងទាញចុះក្រោមជាមួយ capacitor ប្រឆាំងនឹងលោត ពួកគេនឹងមើលទៅដូចនេះ:

ស្ទុះងើបឡើងវិញ

ខណៈពេលដែល វិធីសាស្ត្រសូហ្វវែរ វាអាចត្រូវបានគេមើលឃើញក្នុងលេខកូដកូដនេះ៖

if (digitalRead (ប៊ូតុង) == ទាប) // ពិនិត្យមើលថាតើប៊ូតុងត្រូវបានចុចដែរឬទេ
{
ចុច = 1; // តម្លៃផ្លាស់ប្តូរអថេរ
}
ប្រសិនបើ (digitalRead (ប៊ូតុង) == ខ្ពស់ && ចុច == 1)
{
// អនុវត្តសកម្មភាពដែលចង់បាន
ចុច = 0; // អថេរត្រឡប់ទៅតម្លៃដើមរបស់វា
}

ឧទាហរណ៍គម្រោងសាមញ្ញ

ប្រឆាំងនឹងការលោតដោយប្រើប៊ូតុងរុញនិងអារីដូណូ

នៅពេលដែលយើងបានរៀនប្រធានបទនៃវិធីដើម្បីតភ្ជាប់ប៊ូតុងរុញនិងសៀគ្វីប្រឆាំងនឹងការស្ទុះងើបឡើងវិញយើងនឹងឃើញឧទាហរណ៍ជាក់ស្តែងមួយដើម្បី គ្រប់គ្រងអំពូល LED ជាមួយប៊ូតុងរុញ។ គ្រោងការណ៍គឺសាមញ្ញស្មើគ្នាដូចដែលអ្នកបានឃើញ។

នៅពេលភ្ជាប់ត្រឹមត្រូវហើយរឿងបន្ទាប់គឺសរសេរ លេខកូដនៅ Arduino IDE ដើម្បីបង្កើតបន្ទះរបស់អ្នកហើយចាប់ផ្តើមពិសោធជាមួយប៊ូតុង។ ឧទាហរណ៏កូដសាមញ្ញមួយដើម្បីគ្រប់គ្រងសៀគ្វីរបស់យើងនឹងមានដូចខាងក្រោមៈ

// ឧទាហរណ៍នៃការបង្ហាញប្រភេទរូបភាពដើម្បីបញ្ជាប៊ូតុង
ម្ជុល int = 2;
រដ្ឋ int;
pulsating int = 0;
ការចាត់ទុកជាមោឃៈ ()

{
pinMode (2, INPUT); // ដើម្បីអានជីពចរដោយបញ្ចូលម្ជុលនោះ

pinMode (13, OUTPUT); // សម្រាប់អំពូល LED

Serial.begin (៩៦០០);
}
ចន្លោះប្រហោង ()

{
ប្រសិនបើ (digitalRead (២) == ខ្ពស់)

{

ម្ជុល = 2;

antiBounce (); // ហៅទៅមុខងារប្រឆាំងនឹងលោត

}
}
// មុខងារប្រឆាំងនឹងលោតផ្នែកទន់
ចាត់ទុកជាមោឃៈប្រឆាំងការលោត ()

{
ខណៈពេល (digitalRead (pin) == ទាប);
state = digitalRead (១៣);
digitalWrite (១៣, រដ្ឋ);
ខណៈពេល (digitalRead (pin) == HIGH);

}


ខ្លឹមសារនៃអត្ថបទប្រកាន់ខ្ជាប់នូវគោលការណ៍របស់យើង ក្រមសីលធម៌វិចារណកថា។ ដើម្បីរាយការណ៍ការចុចកំហុស នៅទីនេះ.

៥៧ យោបល់ទុកអ្នក

ទុកឱ្យយោបល់របស់អ្នក

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានបោះពុម្ភ។ អ្នកគួរតែអនុវត្តតាម *

*

*

  1. ទទួលខុសត្រូវចំពោះទិន្នន័យ: មីហ្គែល - ហ្គែលហ្គេតថន
  2. គោលបំណងនៃទិន្នន័យ៖ គ្រប់គ្រង SPAM ការគ្រប់គ្រងមតិយោបល់។
  3. ភាពស្របច្បាប់៖ ការយល់ព្រមរបស់អ្នក
  4. ការប្រាស្រ័យទាក់ទងទិន្នន័យ៖ ទិន្នន័យនឹងមិនត្រូវបានទាក់ទងទៅភាគីទីបីឡើយលើកលែងតែកាតព្វកិច្ចផ្នែកច្បាប់។
  5. ការផ្ទុកទិន្នន័យ៖ មូលដ្ឋានទិន្នន័យដែលរៀបចំដោយបណ្តាញ Occentus (EU)
  6. សិទ្ធិ៖ នៅពេលណាដែលអ្នកអាចដាក់កម្រិតទាញយកមកវិញនិងលុបព័ត៌មានរបស់អ្នក។

  1.   រូបភាពកន្លែងដាក់ Marcelo Castillo dijo

    ឡូយ !!! អរគុណច្រើនខ្ញុំបានបង្កើតបណ្តាញ CNC ហើយប៊ូតុងចម្លែក ៗ ជារឿងពិបាកបំផុតសម្រាប់ខ្ញុំ។

  2.   Liliana dijo

    សួស្តី! ខ្ញុំពិគ្រោះជាអ្នកថ្មីថ្មោងទាក់ទងនឹង GND … .. ខ្សែពណ៌ខ្មៅមិនគួរចេញពីខ្សែអវិជ្ជមានដែលមានទីតាំងនៅខាងលើខ្សែដែលបង្ហាញក្នុងដ្យាក្រាម ២ ទេ?

  3.   Giovanni dijo

    ការពន្យល់បានល្អណាស់។ កាលពីប៉ុន្មានឆ្នាំមុនខ្ញុំបានធ្វើគំរោងបញ្ឆេះរថយន្តហើយការពិតគឺខ្ញុំមិនអាចធ្វើឱ្យមានការចុចគ្រាប់ចុចត្រឹមត្រូវទេ។ សម្រាប់ការបញ្ឆេះ .. ខ្ញុំនឹងសាកល្បងវិធីនេះ។

  4.   omar romero rincon dijo

    ជំរាបសួរ ខ្ញុំកំពុងធ្វើគម្រោងមួយដែលមានប៊ូតុងបី និងអំពូល LED ចំនួន 5 ជាមួយនឹងលំដាប់ដូចខាងក្រោម។
    ប៊ូតុងចុច 1 បញ្ជូនសញ្ញាទៅ 2 LEDs ដែលខ្ញុំបានហៅ 1 និង 2 ។
    ប៊ូតុងរុញទីពីរបញ្ជូនសញ្ញាទៅ 3 LEDs ហៅថា 2,3 និង 4 ។
    ប៊ូតុងរុញទីបីរបស់ខ្ញុំបញ្ជូនសញ្ញាទៅ LEDs 3 ផ្សេងទៀតដែលហៅថា 3,4, 5 និង XNUMX ។

    ខ្ញុំ​បាន​គ្រប់គ្រង​លំដាប់​នោះ ខ្ញុំ​មាន​បញ្ហា​តែ​មួយ​គត់ ពេល​ចុច 2 ប៊ូតុង វា​នឹង​បញ្ជូន​សញ្ញា​មិន​ពិត​ទៅ LED ដែល​គួរ​បន្ត​ធ្វើ​ឱ្យ​វា​ភ្លឹប​ភ្លែតៗ ខ្ញុំ​បាន​គ្រប់គ្រង​វា​ដោយ​ការ​ពន្យារ​ពេល (2 វិនាទី, នេះជាអ្វីដែលខ្ញុំត្រូវការដើម្បីឱ្យ LEDs បើកហើយបន្ទាប់មកបិទ។ សំណួររបស់ខ្ញុំគឺតើខ្ញុំអាចដាក់មុខងារ millis ទៅក្នុងកម្មវិធីរបស់ខ្ញុំដោយរបៀបណា ខ្ញុំមិនយល់ពីរបៀបដែល millis ដំណើរការទេ ខ្ញុំចង់ដឹងថាតើអ្នកអាចជួយខ្ញុំដោយរបៀបណា? បង្កើតឧទាហរណ៍សម្រាប់ 3 ប៊ូតុងដោយប្រើមីលីនៅក្នុងពួកវានីមួយៗ ខ្ញុំត្រូវការមីលីដើម្បីអាចចុចប៊ូតុងបានគ្រប់ពេលដោយមិនពន្យាពេល arduino ។

    1.    លោកអ៊ីសាក dijo

      ជំរាបសួរ Omar
      ខ្ញុំសូមណែនាំឱ្យអ្នកមើលការបង្រៀន Arduino របស់យើង៖
      https://www.hwlibre.com/programacion-en-arduino/
      ហើយអ្នកក៏អាចឃើញអត្ថបទរបស់យើងនៅលើ millis ():
      https://www.hwlibre.com/millis-arduino/
      ស្វាគមន៍មួយ។