Tombol tekan: cara menggunakan elemen sederhana ini dengan Arduino

tombol

Un push button adalah tombol yang memungkinkan Anda untuk menginterupsi atau mengirim sinyal elektronik. Dengan elemen sederhana ini dikombinasikan dengan elemen lain, Anda dapat membuat proyek untuk banyak aplikasi. Penggunaan jenis tombol tekan ini sangat umum dalam hal proyek dengan Arduino. Dan dengan menggabungkan beberapa tombol ini, Anda dapat membuat keyboard yang agak lebih kompleks, meskipun sudah ada keyboard yang dapat diprogram untuk penggunaan ini ...

By the way, Anda sebaiknya tidak mengacaukan tombol tekan dengan sakelar. Mereka adalah hal yang sangat berbeda. Perbedaannya adalah bahwa sakelar atau sakelar diaktifkan atau dinonaktifkan dengan setiap tekanan yang dibuat di atasnya. Sedangkan tombol tekan hanya akan tetap dalam satu keadaan saat tekanan diberikan padanya. Saya telah berkomentar bahwa itu dapat mengirim atau mengganggu, itu karena ada dua jenis tombol yang mendasar.

simbol tombol tekan

Ada Tombol tekan NO atau biasanya terbuka dan NC atau tombol yang biasanya tertutup. Ini juga akan terdengar untuk Anda dari relai. Dan ya, ini adalah operasi yang persis sama. Ketika Anda memiliki NC, itu akan membiarkan arus melewati terminalnya dan itu hanya menyela saat Anda menekannya. Di sisi lain, NA tidak membiarkan arus lewat saat tekanan tidak diberikan padanya dan hanya akan membiarkannya lewat saat Anda menekannya.

Mengetahui bahwa, hampir semua hal yang perlu Anda ketahui tentang tombol tekan untuk memulai koneksi dan pemrograman Anda menggunakan Arduino. Sebenarnya ini adalah elemen sederhana sehingga tidak banyak lagi yang bisa dikatakan tentang jenis tombol tekan ini.

Integrasi Tombol Tekan dengan Arduino

sirkuit dengan Arduino

La menghubungkan tombol tekan untuk membuatnya berinteraksi dengan Arduino tidak bisa lebih sederhana. Contohnya adalah diagram yang dapat Anda lihat pada garis-garis ini. Hanya itu yang diperlukan untuk mulai bereksperimen. Tetapi tentu saja, dengan skema itu Anda tidak dapat berbuat banyak. Anda perlu sedikit berimajinasi untuk memutuskan tombol apa yang akan dikontrol. Faktanya, jika Anda sering membaca hwlibre.es Anda pasti sudah melihat beberapa artikel di mana kami menggunakan tombol tekan ...

Cara untuk menghubungkannya

pull-up dan pull-down

Satu hal yang harus Anda ketahui adalah masalah anti bouncing dan bagaimana menghubungkan tombol-tombol ini. Pertama kita pergi ke cara menghubungkannya, yang sudah Anda ketahui bisa dengan resistor pull-up dan pull-down:

  • Tarik- Dengan setting resistor ini, saat pushbutton ditekan, mikrokontroler atau Arduino dapat melihat atau membaca angka nol pada pin tersebut. Artinya, ini menafsirkannya sebagai sinyal RENDAH.
  • Tarik-Turun: Dalam hal ini sebaliknya, Anda dapat membaca atau menerima sinyal 1 atau TINGGI melalui pin yang terhubung.

Jangan bingung dengan NC atau NA, yang merupakan hal lain yang berbeda seperti yang telah kita lihat sebelumnya. Ini tidak tergantung dari ...

Anti-Bounce

Tombol memiliki efek bouncing saat ditekan. Artinya, ketika ditekan atau dilepaskan ada fluktuasi sinyal yang melewati kontaknya dan dapat menyebabkannya beralih dari status HIGT ke RENDAH atau sebaliknya tanpa benar-benar menginginkan hal itu terjadi. Itu dapat menghasilkan efek yang tidak diinginkan pada Arduino dan membuatnya melakukan hal-hal aneh, seperti mengaktifkan elemen ketika kita benar-benar ingin mematikannya dengan menekan tombol, dll. Itu karena Arduino menafsirkan pantulan seolah-olah telah ditekan lebih dari sekali ...

Efek negatif itu itu ada solusinya. Untuk ini, kapasitor kecil harus diimplementasikan di sirkuit anti-bouncing (metode perangkat keras) atau perangkat lunak (memodifikasi kode sumber), apakah konfigurasi pull-up atau pull-down telah digunakan atau jika NC atau NO. Dalam semua kasus ini, solusi harus diterapkan untuk menghindari rebound ini.

Misalnya, sirkuit pull-up dan pull-down dengan kapasitor anti pantulan mereka akan terlihat seperti ini:

rebounder

Sementara metode perangkat lunak Itu bisa dilihat di cuplikan kode ini:

if (digitalRead (button) == LOW) // Periksa apakah tombol sudah ditekan
{
ditekan = 1; // Variabel mengubah nilai
}
if (digitalRead (tombol) == HIGH && ditekan == 1)
{
// Lakukan tindakan yang diinginkan
ditekan = 0; // Variabel kembali ke nilai aslinya
}

Contoh proyek sederhana

anti pantulan dengan tombol tekan dan Arduino

Setelah kita mempelajari topik cara menghubungkan tombol tekan dan sirkuit anti-rebound, kita akan melihat contoh praktis untuk mengontrol LED dengan tombol tekan. Skemanya sama sederhana seperti yang Anda lihat.

Setelah terhubung dengan benar, hal berikutnya adalah menulis kode di Arduino IDE untuk memprogram panel Anda dan mulai bereksperimen dengan tombol. Contoh kode sederhana untuk mengontrol rangkaian kita adalah sebagai berikut:

// Contoh sketsa untuk mengontrol tombol
pin int = 2;
int negara;
berdenyut int = 0;
batal penyiapan ()

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

pinMode (13, OUTPUT); // Untuk LED

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

{
if (digitalRead (2) == HIGH)

{

pin = 2;

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

}
}
// Fungsi anti-bouncing perangkat lunak
batal anti pantulan ()

{
sementara (digitalRead (pin) == LOW);
state = digitalRead (13);
digitalWrite (13 ,! state);
sementara (digitalRead (pin) == HIGH);

}


5 komentar, tinggalkan punyamu

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Gambar placeholder Marcelo Castillo dijo

    Keren!!! Terima kasih banyak, saya telah membuat CNC dan secara paradoks tombol-tombolnya menjadi hal tersulit yang saya setel.

  2.   Liliana dijo

    Hai! Saya berkonsultasi sebagai pemula, sehubungan dengan GND… ..kabel hitam tidak boleh keluar dari garis negatif, yang terletak di atas yang ditunjukkan pada diagram 2?

  3.   John dijo

    Penjelasan yang sangat bagus .. beberapa tahun yang lalu saya melakukan proyek pengapian mobil dan kenyataannya adalah saya tidak pernah bisa membuat tombol yang benar. Untuk kunci kontak .. Saya akan mencoba metode ini. Saya berterima kasih banyak atas bantuan yang luar biasa ini

  4.   Omar Romero Rincon dijo

    Halo, Saya melakukan proyek dengan tiga tombol dan 5 LED dengan urutan berikut.
    1 tombol push mengirimkan sinyal ke 2 LED, yang saya sebut 1 dan 2.
    pushbotton kedua mengirimkan sinyal ke 3 LED, yang disebut 2,3 dan 4.
    pushbotton ketiga saya mengirim sinyal ke 3 LED lain, yang disebut 3,4, 5 dan XNUMX.

    Saya telah berhasil melakukan urutan itu, saya hanya punya satu masalah, ketika menekan 2 tombol, ia mengirim sinyal palsu ke LED yang harus tetap menyala menyebabkannya berkedip sebentar-sebentar, saya telah mengendalikannya dengan menunda (dari 2 detik, yang saya butuhkan agar LED tetap menyala dan kemudian mati.lalu pertanyaan saya adalah bagaimana saya bisa memasukkan fungsi milis ke dalam program saya, saya tidak mengerti cara kerja milis, saya ingin tahu apakah Anda dapat membantu saya dengan buat contoh untuk 3 tombol menggunakan milis di masing-masingnya, saya membutuhkan milis untuk dapat menekan tombol kapan saja tanpa menunda arduino.

    1.    Isaac dijo

      Halo Umar,
      Saya sarankan Anda melihat tutorial Arduino kami:
      https://www.hwlibre.com/programacion-en-arduino/
      Dan Anda juga dapat melihat artikel kami di milis ():
      https://www.hwlibre.com/millis-arduino/
      Sebuah ucapan.