Butang tekan: bagaimana menggunakan elemen ringkas ini dengan Arduino

butang

Un butang tekan adalah butang yang membolehkan anda mengganggu atau menghantar isyarat elektronik. Dengan elemen sederhana ini digabungkan dengan elemen lain, anda boleh membuat projek untuk pelbagai aplikasi. Penggunaan butang tekan jenis ini sangat umum ketika datang ke projek dengan Arduino. Dan dengan menggabungkan beberapa butang ini, anda boleh membuat papan kekunci yang agak rumit, walaupun sudah ada papan kekunci yang dapat diprogram untuk kegunaan ini ...

By the way anda tidak boleh mengelirukan tombol tekan dengan suis. Mereka adalah perkara yang sama sekali berbeza. Perbezaannya ialah suis atau suis diaktifkan atau dinyahaktifkan dengan setiap tekan yang dibuat di atasnya. Manakala butang tekan hanya akan tinggal dalam satu keadaan sementara tekanan diberikan padanya. Saya telah memberi komen bahawa ia boleh menghantar atau mengganggu, itu kerana terdapat dua jenis butang asas.

simbol butang tekan

Terdapat TIDAK atau butang tekan terbuka dan NC atau butang tekan biasanya tertutup. Ini juga akan terdengar kepada anda dari relay. Dan ya, ia adalah operasi yang sama. Apabila anda mempunyai NC, ia akan membiarkan arus melewati terminal dan hanya akan mengganggu semasa anda menekannya. Sebaliknya, NA tidak membiarkan arus berlalu ketika tekanan tidak diberikan padanya dan hanya akan membiarkannya berlalu ketika anda menekannya.

Mengetahui bahawa, hampir semua yang anda perlu ketahui mengenai butang tekan untuk memulakan sambungan dan pengaturcaraan anda menggunakan Arduino. Kebenarannya adalah elemen yang sederhana sehingga tidak banyak yang boleh dikatakan mengenai butang tekan jenis ini.

Integrasi Tombol Tekan dengan Arduino

litar dengan Arduino

La menyambungkan butang tekan untuk menjadikannya berinteraksi dengan Arduino tidak boleh lebih mudah. Contohnya ialah rajah yang dapat anda lihat pada baris-baris ini. Itu sahaja yang diperlukan untuk mula bereksperimen. Tetapi tentu saja, dengan skema itu anda tidak dapat berbuat apa-apa. Anda perlu meletakkan sedikit khayalan untuk menentukan butang apa yang akan dikendalikan. Sebenarnya, jika anda sering membaca hwlibre.es anda pasti pernah melihat beberapa artikel di mana kami telah menggunakan butang tekan ...

Kaedah untuk menyambungkannya

pull-up dan pull-down

Satu perkara yang harus anda ketahui adalah isu anti-pantulan dan cara menyambungkan butang tekan ini. Mula-mula kita pergi untuk menghubungkannya, yang sudah anda ketahui boleh dengan perintang tarik dan tarik:

  • Tarik ke Atas- Dengan tetapan perintang ini, apabila butang tekan ditekan, mikrokontroler atau Arduino dapat melihat atau membaca angka nol pada pin itu. Iaitu, ia menafsirkannya sebagai isyarat RENDAH.
  • Tarik ke bawah: Dalam hal ini sebaliknya, anda boleh membaca atau menerima isyarat 1 atau TINGGI melalui pin yang disambungkan.

Jangan mengelirukannya dengan NC atau NA, yang berbeza seperti yang kita lihat sebelumnya. Ini bebas dari yang lain ...

Anti Lantunan

Tombol tekan mempunyai kesan melantun semasa ditekan. Maksudnya, apabila ditekan atau dilepaskan, terdapat turun naik isyarat yang melewati kenalannya dan boleh menyebabkannya berubah dari keadaan HIGT ke RENDAH atau sebaliknya tanpa benar-benar menginginkan hal itu terjadi. Itu boleh menghasilkan kesan yang tidak diingini pada Arduino dan menjadikannya perkara yang pelik, seperti mengaktifkan elemen ketika kita benar-benar mahu mematikannya dengan menekan butang, dll. Ini kerana Arduino menafsirkan pantulan seolah-olah telah ditekan lebih dari sekali ...

Kesan negatif itu ia mempunyai jalan penyelesaian. Untuk ini, kapasitor kecil mesti dilaksanakan dalam litar anti-pantulan (kaedah perkakasan) atau perisian (mengubah kod sumber), sama ada konfigurasi pull-up atau pull-down telah digunakan atau jika ia adalah NC atau NO. Dalam semua kes ini, penyelesaian mesti dilaksanakan untuk mengelakkan pemulihan ini.

Contohnya, litar pull-up dan pull-down dengan kapasitor anti-lantunan mereka akan kelihatan seperti ini:

pemantul semula

Sementara itu kaedah perisian Ini dapat dilihat dalam coretan kod ini:

if (digitalRead (butang) == RENDAH) // Periksa sama ada butang ditekan
{
ditekan = 1; // Pemboleh ubah mengubah nilai
}
jika (digitalRead (butang) == TINGGI && ditekan == 1)
{
// Lakukan tindakan yang diingini
ditekan = 0; // Pemboleh ubah kembali ke nilai asalnya
}

Contoh projek ringkas

anti-lantunan dengan butang tekan dan Arduino

Sebaik sahaja kita mengetahui subjek cara menghubungkan butang tekan dan litar anti-pantulan kita, kita akan melihat contoh praktikal untuk kawal LED dengan butang tekan. Skimnya sama mudah seperti yang anda lihat.

Setelah dihubungkan dengan betul, perkara seterusnya adalah menulis kod dalam Arduino IDE untuk memprogram panel anda dan mula bereksperimen dengan butang. Contoh kod mudah untuk mengawal litar kami adalah seperti berikut:

// Contoh lakaran untuk mengawal butang
int pin = 2;
keadaan int;
berdenyut int = 0;
persediaan tidak sah ()

{
pinMode (2, INPUT); // Untuk membaca nadi dengan membuat input pin itu

pinMode (13, OUTPUT); // Untuk LED

Serial.begin (9600);
}
gelung kosong ()

{
jika (digitalRead (2) == TINGGI)

{

Pin = 2;

antiBounce (); // Panggil ke fungsi anti-pantulan

}
}
// Fungsi anti-lantunan perisian
batal anti-lantunan ()

{
sementara (digitalRead (pin) == RENDAH);
nyatakan = digitalRead (13);
digitalWrite (keadaan 13,!);
sementara (digitalRead (pin) == TINGGI);

}


5 komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Gambar placeholder Marcelo Castillo kata

    Sejuk !!! Terima kasih banyak, saya telah membina CNC dan secara paradoks butang menjadi perkara paling sukar bagi saya untuk menyesuaikannya.

  2.   Liliana kata

    Hai! Saya berunding sebagai pemula, berkaitan dengan GND… .. wayar hitam tidak boleh keluar dari garis negatif, yang terletak di atas yang ditunjukkan dalam rajah 2?

  3.   John kata

    Penjelasan yang sangat baik .. beberapa tahun yang lalu saya melakukan projek pencucuhan kereta dan sebenarnya saya tidak pernah dapat membuat kekunci yang betul. Untuk pencucuhan .. Saya akan mencuba kaedah ini. Saya mengucapkan terima kasih banyak atas bantuan hebat ini

  4.   Omar Romero Rincon kata

    Halo, saya sedang melakukan projek dengan tiga butang dan 5 LED dengan urutan berikut.
    1 butang tekan menghantar isyarat kepada 2 LED, yang telah saya panggil 1 dan 2.
    pushbotton kedua menghantar isyarat kepada 3 LED, dipanggil 2,3 dan 4.
    pushbotton ketiga saya menghantar isyarat kepada 3 LED lain, dipanggil 3,4, 5 dan XNUMX.

    Saya telah berjaya melakukan urutan itu, saya hanya mempunyai satu masalah, apabila menekan 2 butang, ia menghantar isyarat palsu kepada LED yang sepatutnya kekal menyala menyebabkan ia berkelip sekejap, saya telah mengawalnya dengan meletakkan kelewatan (sebanyak 2 saat, itulah yang saya perlukan supaya LED kekal menyala dan kemudian padam. maka soalan saya ialah bagaimana saya boleh meletakkan fungsi millis ke dalam program saya, saya tidak faham bagaimana millis berfungsi, saya ingin tahu jika anda boleh membantu saya dengan membuat contoh untuk 3 butang menggunakan millis dalam setiap satu daripadanya, saya memerlukan millis untuk dapat menekan butang pada bila-bila masa tanpa melengahkan arduino.

    1.    Ishak kata

      Hello Omar,
      Saya cadangkan anda melihat tutorial Arduino kami:
      https://www.hwlibre.com/programacion-en-arduino/
      Dan anda juga boleh melihat artikel kami tentang millis ():
      https://www.hwlibre.com/millis-arduino/
      Sesuatu ucapan.