Pushbutton: ວິທີການໃຊ້ອົງປະກອບງ່າຍໆນີ້ກັບ Arduino

ປຸ່ມ

Un ປຸ່ມຍູ້ແມ່ນປຸ່ມທີ່ຊ່ວຍໃຫ້ທ່ານຂັດຂວາງຫຼືສົ່ງສັນຍານອີເລັກໂທຣນິກ. ດ້ວຍອົງປະກອບທີ່ລຽບງ່າຍນີ້ບວກກັບອົງປະກອບອື່ນໆທ່ານສາມາດສ້າງໂຄງການ ສຳ ລັບການສະ ໝັກ ຫຼາຍໆຢ່າງ. ການໃຊ້ພວງມະໄລປະເພດນີ້ແມ່ນມີຫຼາຍໃນເວລາເວົ້າເຖິງໂຄງການຂອງ Arduino. ແລະໂດຍການລວມປຸ່ມຫລາຍໆປຸ່ມເຫລົ່ານີ້ທ່ານສາມາດສ້າງແປ້ນພິມທີ່ສັບສົນຫລາຍຂື້ນ, ເຖິງແມ່ນວ່າຈະມີແປ້ນພິມທີ່ມີໂປແກຼມໃຊ້ແລ້ວ ສຳ ລັບການ ນຳ ໃຊ້ເຫລົ່ານີ້ ...

ໂດຍວິທີທາງການ, ທ່ານບໍ່ຄວນສັບສົນກັບປຸ່ມກົດທີ່ມີປຸ່ມປິດ. ພວກມັນແມ່ນສິ່ງທີ່ແຕກຕ່າງກັນທັງ ໝົດ. ຄວາມແຕກຕ່າງແມ່ນວ່າປຸ່ມປ່ຽນຫລືປ່ຽນແມ່ນເປີດໃຊ້ງານຫລືປິດການ ນຳ ໃຊ້ແຕ່ລະຂ່າວທີ່ຖືກສ້າງຂື້ນເທິງມັນ. ໃນຂະນະທີ່ປຸ່ມກົດດັນຈະຢູ່ໃນສະພາບດຽວໃນຂະນະທີ່ຄວາມກົດດັນ ກຳ ລັງຖືກກົດຂື້ນ. ຂ້າພະເຈົ້າໄດ້ສະແດງຄວາມຄິດເຫັນວ່າມັນສາມາດສົ່ງຫລືຂັດຂວາງ, ນັ້ນແມ່ນຍ້ອນວ່າມີສອງປຸ່ມປະເພດພື້ນຖານ.

ສັນຍາລັກປຸ່ມຍູ້

ມີແມ່ນ ບໍ່ຫຼືກົດປຸ່ມເປີດປິດປົກກະຕິແລະ NC ຫຼືປົກກະຕິແລ້ວກໍ່ຍັງກົດປຸ່ມປິດ. ນີ້ຍັງຈະມີສຽງໃຫ້ທ່ານຈາກການຖ່າຍທອດ. ແລະແມ່ນແລ້ວ, ມັນແມ່ນການປະຕິບັດງານດຽວກັນ. ໃນເວລາທີ່ທ່ານມີ NC, ມັນຈະເຮັດໃຫ້ກະແສໄຟຟ້າຜ່ານສະຖານີຂອງມັນແລະມັນພຽງແຕ່ຂັດຂວາງໃນຂະນະທີ່ທ່ານກົດມັນ. ໃນທາງກົງກັນຂ້າມ, ສະພາແຫ່ງຊາດບໍ່ໄດ້ປ່ອຍໃຫ້ປັດຈຸບັນຜ່ານໄປເມື່ອຄວາມກົດດັນບໍ່ໄດ້ຖືກສົ່ງມາໃສ່ແລະຈະປ່ອຍໃຫ້ມັນຜ່ານໄປເມື່ອທ່ານກົດມັນ.

ຮູ້ແລ້ວວ່າ, ເກືອບທຸກສິ່ງທີ່ທ່ານຕ້ອງການຮູ້ກ່ຽວກັບປຸ່ມກົດ ເພື່ອເລີ່ມຕົ້ນການເຊື່ອມຕໍ່ແລະການຂຽນໂປແກຼມຂອງທ່ານໂດຍໃຊ້ Arduino. ຄວາມຈິງກໍ່ຄືວ່າມັນແມ່ນອົງປະກອບທີ່ລຽບງ່າຍແບບນີ້ເຊິ່ງບໍ່ມີຫຍັງຫຼາຍທີ່ຈະເວົ້າກ່ຽວກັບການກົດດັນປະເພດນີ້.

ປຸ່ມການເຊື່ອມໂຍງປຸ່ມກັບ Arduino

ວົງຈອນກັບ Arduino

La ເຊື່ອມຕໍ່ pushbutton ໄດ້ ເພື່ອເຮັດໃຫ້ມັນພົວພັນກັບ Arduino ບໍ່ສາມາດງ່າຍດາຍ. ຕົວຢ່າງ ໜຶ່ງ ແມ່ນແຜນວາດທີ່ທ່ານສາມາດເຫັນໃນສາຍເຫຼົ່ານີ້. ນັ້ນແມ່ນສິ່ງທີ່ມັນຕ້ອງໃຊ້ເພື່ອເລີ່ມຕົ້ນທົດລອງ. ແຕ່ແນ່ນອນ, ດ້ວຍໂຄງການນັ້ນທ່ານສາມາດເຮັດໄດ້ ໜ້ອຍ. ມັນ ຈຳ ເປັນ ສຳ ລັບທ່ານທີ່ຈະວາງຈິນຕະນາການເລັກນ້ອຍເພື່ອຕັດສິນໃຈວ່າປຸ່ມນັ້ນຈະຄວບຄຸມໄດ້ແນວໃດ. ໃນຄວາມເປັນຈິງ, ຖ້າທ່ານອ່ານ hwlibre.es ເລື້ອຍໆທ່ານຈະໄດ້ເຫັນບາງບົດຄວາມທີ່ພວກເຮົາໄດ້ໃຊ້ປຸ່ມຍູ້ ...

ວິທີການເຊື່ອມຕໍ່ມັນ

ດຶງຂຶ້ນແລະດຶງລົງ

ສິ່ງ ໜຶ່ງ ທີ່ທ່ານຄວນຮູ້ແມ່ນປະເດັນຂອງການຕໍ່ຕ້ານແລະ ວິທີການເຊື່ອມຕໍ່ກົດດັນເຫຼົ່ານີ້. ທຳ ອິດພວກເຮົາໄປຫາທາງທີ່ຈະເຊື່ອມຕໍ່ພວກມັນ, ເຊິ່ງທ່ານຮູ້ແລ້ວວ່າສາມາດຢູ່ກັບຕົວຕ້ານທານທີ່ດຶງແລະດຶງຂື້ນ:

  • ດຶງ​ຂຶ້ນ- ດ້ວຍການຕັ້ງຄ່າຕົວຕ້ານທານດັ່ງກ່າວ, ເມື່ອກົດປຸ່ມກົດດັນ, microcontroller ຫຼື Arduino ສາມາດເບິ່ງຫລືອ່ານສູນສູນຂອງ PIN ນັ້ນໄດ້. ນັ້ນແມ່ນ, ມັນຕີຄວາມ ໝາຍ ມັນເປັນສັນຍານຕ່ ຳ.
  • ດຶງ​ລົງ: ໃນກໍລະນີນີ້ມັນກົງກັນຂ້າມ, ທ່ານສາມາດອ່ານຫລືຮັບສັນຍານ 1 ຫລື HIGH ຜ່ານສາຍເຊື່ອມຕໍ່.

ຢ່າສັບສົນກັບ NC ຫຼື NA, ເຊິ່ງແມ່ນສິ່ງອື່ນທີ່ແຕກຕ່າງກັນດັ່ງທີ່ພວກເຮົາໄດ້ເຫັນຜ່ານມາ. ນີ້ແມ່ນເອກະລາດຂອງອີກ ...

ຕ້ານ Bounce

ກະຕຸກຊຸກຍູ້ມີ ຜົນກະທົບຂອງການຟື້ນຕົວ ເມື່ອກົດ. ນັ້ນແມ່ນ, ເມື່ອຖືກກົດດັນຫລືປ່ອຍຕົວມັນມີການເຫນັງຕີງຂອງສັນຍານທີ່ສົ່ງຜ່ານລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງມັນແລະອາດຈະເຮັດໃຫ້ມັນໄປຈາກລັດ HIGT ຫາ LOW ຫຼືກົງກັນຂ້າມໂດຍບໍ່ຕ້ອງການມັນເກີດຂື້ນແທ້ໆ. ນັ້ນສາມາດສ້າງຜົນກະທົບທີ່ບໍ່ຕ້ອງການໃຫ້ກັບ Arduino ແລະເຮັດໃຫ້ມັນເຮັດສິ່ງແປກໆ, ຄືການກະຕຸ້ນອົງປະກອບ ໜຶ່ງ ເມື່ອເຮົາຕ້ອງການປິດມັນດ້ວຍປຸ່ມກົດປຸ່ມ, ອື່ນໆ. ນັ້ນແມ່ນຍ້ອນວ່າ Arduino ແປຄວາມ ໝາຍ ຂອງ bounces ຄືກັບວ່າມັນໄດ້ຖືກກົດຫຼາຍກວ່າ ໜຶ່ງ ເທື່ອ ...

ຜົນກະທົບທາງລົບນັ້ນ ມັນມີທາງອອກ. ສຳ ລັບສິ່ງນີ້, ຕົວເກັບໄຟຟ້າຂະ ໜາດ ນ້ອຍຕ້ອງໄດ້ຮັບການປະຕິບັດໃນວົງຈອນຕ້ານແບກຫາບ (ວິທີການຮາດແວ) ຫລືຊອບແວ (ດັດແກ້ລະຫັດແຫຼ່ງຂໍ້ມູນ), ບໍ່ວ່າຈະເປັນການ ກຳ ນົດແບບດຶງຫຼືດຶງລົງກໍ່ໄດ້ຖືກ ນຳ ໃຊ້ຫຼືຖ້າມັນແມ່ນ NC ຫຼື NO ໃນທຸກໆກໍລະນີເຫຼົ່ານີ້, ວິທີແກ້ໄຂຕ້ອງໄດ້ຮັບການປະຕິບັດເພື່ອຫລີກລ້ຽງການເກີດຂື້ນເຫຼົ່ານີ້.

ຍົກຕົວຢ່າງ, ດຶງແລະວົງຈອນດຶງຂື້ນກັບວົງຈອນປິດ capacitor ຕ້ານ bounce ພວກເຂົາເບິ່ງບາງສິ່ງບາງຢ່າງເຊັ່ນນີ້:

rebounder

ໃນຂະນະທີ່ software ມັນສາມາດເຫັນໄດ້ໃນຕົວຫຍໍ້ລະຫັດນີ້:

if (digitalRead (ປຸ່ມ) == LOW) // ກວດເບິ່ງວ່າປຸ່ມຖືກກົດຫລືບໍ່
{
ກົດດັນ = 1; // ຕົວປ່ຽນຕົວປ່ຽນຄ່າ
}
ຖ້າຫາກວ່າ (digitalRead (pushbutton) == HIGH && ກົດດັນ == 1)
{
// ປະຕິບັດການກະ ທຳ ທີ່ຕ້ອງການ
pressed = 0; // ຕົວແປຈະກັບຄືນສູ່ມູນຄ່າເດີມຂອງມັນ
}

ຕົວຢ່າງໂຄງການງ່າຍໆ

ຕ້ານ bounce ມີປຸ່ມຊຸກຍູ້ແລະ Arduino

ເມື່ອພວກເຮົາໄດ້ຮຽນຮູ້ຫົວຂໍ້ວິທີຕ່າງໆໃນການເຊື່ອມຕໍ່ກະແສໄຟຟ້າແລະວົງຈອນຕ້ານການຟື້ນຕົວຄືນ, ພວກເຮົາຈະໄດ້ເຫັນຕົວຢ່າງພາກປະຕິບັດທີ່ຈະ ຄວບຄຸມໄຟ LED ພ້ອມປຸ່ມຍູ້. ໂຄງການແມ່ນງ່າຍດາຍຄືກັນກັບທີ່ທ່ານສາມາດເຫັນ.

ເມື່ອເຊື່ອມຕໍ່ຢ່າງຖືກຕ້ອງ, ສິ່ງຕໍ່ໄປແມ່ນການຂຽນ ລະຫັດໃນ Arduino IDE ດໍາເນີນໂຄງການກະດານຂອງທ່ານແລະເລີ່ມທົດລອງກັບປຸ່ມຕ່າງໆ. ຕົວຢ່າງລະຫັດງ່າຍໆໃນການຄວບຄຸມວົງຈອນຂອງພວກເຮົາແມ່ນຕໍ່ໄປນີ້:

// ຕົວຢ່າງຂອງການແຕ້ມຮູບເພື່ອຄວບຄຸມປຸ່ມ
ເຂັມ int = 2;
int ລັດ;
pulsating int = 0;
ການຕິດຕັ້ງ void ()

{
pinMode (2, INPUT); // ເພື່ອອ່ານ ກຳ ມະຈອນໂດຍການປ້ອນເຂັມນັ້ນ

pinMode (13, OUTPUT); // ສຳ ລັບໄຟ LED

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

{
ຖ້າ (digitalRead (2) == ສູງ)

{

pin = 2;

antiBounce (); // ໂທຫາເພື່ອຟັງຊັນຕໍ່ຕ້ານ bounce

}
}
// ມີ ໜ້າ ທີ່ຕໍ່ຕ້ານຊອບແວ
void ຕ້ານການ bounce ()

{
ໃນຂະນະທີ່ (digitalRead (pin) == LOW);
state = digitalRead (13);
digitalWrite (13,! ລັດ);
ໃນຂະນະທີ່ (digitalRead (pin) == HIGH);

}


ເນື້ອໃນຂອງບົດຂຽນຍຶດ ໝັ້ນ ຫລັກການຂອງພວກເຮົາ ຈັນຍາບັນຂອງບັນນາທິການ. ເພື່ອລາຍງານການກົດຜິດພາດ ທີ່ນີ້.

3 ຄຳ ເຫັນ, ປ່ອຍໃຫ້ທ່ານ

ອອກ ຄຳ ເຫັນຂອງທ່ານ

ທີ່ຢູ່ອີເມວຂອງທ່ານຈະບໍ່ໄດ້ຮັບການຈັດພີມມາ. ທົ່ງນາທີ່ກໍານົດໄວ້ແມ່ນຫມາຍດ້ວຍ *

*

*

  1. ຮັບຜິດຊອບຕໍ່ຂໍ້ມູນ: Miguel ÁngelGatón
  2. ຈຸດປະສົງຂອງຂໍ້ມູນ: ຄວບຄຸມ SPAM, ການຈັດການ ຄຳ ເຫັນ.
  3. ກົດ ໝາຍ: ການຍິນຍອມຂອງທ່ານ
  4. ການສື່ສານຂໍ້ມູນ: ຂໍ້ມູນຈະບໍ່ຖືກສື່ສານກັບພາກສ່ວນທີສາມຍົກເວັ້ນໂດຍພັນທະທາງກົດ ໝາຍ.
  5. ການເກັບຂໍ້ມູນ: ຖານຂໍ້ມູນທີ່ຈັດໂດຍ Occentus Networks (EU)
  6. ສິດ: ໃນທຸກເວລາທີ່ທ່ານສາມາດ ຈຳ ກັດ, ກູ້ຄືນແລະລຶບຂໍ້ມູນຂອງທ່ານ.

  1.   ຮູບພາບຂອງສະຖານທີ່ Marcelo Castillo ກ່າວວ່າ

    ເຢັນ !!! ຂອບໃຈຫຼາຍໆ, ຂ້ອຍໄດ້ສ້າງ CNC ແລະ ຄຳ ຂວັນທີ່ແປກທີ່ສຸດ ສຳ ລັບຂ້ອຍໃນການປບັ.

  2.   Liliana ກ່າວວ່າ

    ເຮີ້ຍ! ຂ້ອຍປຶກສາເປັນຈົວ, ໃນການເຊື່ອມຕໍ່ກັບ GND … .. ສາຍສີ ດຳ ບໍ່ຄວນອອກມາຈາກເສັ້ນທາງລົບ, ເຊິ່ງຕັ້ງຢູ່ຂ້າງເທິງສາຍທີ່ສະແດງຢູ່ໃນແຜນວາດ 2?

  3.   Giovanni ກ່າວວ່າ

    ຄຳ ອະທິບາຍທີ່ດີເລີດ .. ສອງສາມປີທີ່ຜ່ານມາຂ້ອຍໄດ້ເຮັດໂຄງການມອດໄຟລົດແລະຄວາມຈິງແມ່ນຂ້ອຍບໍ່ສາມາດແກ້ໄຂກະແຈທີ່ຖືກຕ້ອງໄດ້.