Kod Ara

Neden Arduino ile Push Button ve Anahtarlarda Direnç Kullanılır?

Neden Arduino ile Push Button ve Anahtarlarda Direnç Kullanılır?

Bu eğitim, Arduino'ya bağlı buton ve anahtarlarla direnç kullanmanın neden güvenilir çalışma için kritik olduğunu açıklar. Bu kavramı anlamak, kullanıcı girişi içeren herhangi bir Arduino projesi için temeldir. Bu bilgi, beklenmeyen davranışları önler ve projelerinizin doğru çalışmasını sağlar. İşte bu bilginin gerekli olduğu bazı proje fikirleri:

  • LED için basit açma/kapama anahtarı
  • Etkileşimli oyun kumandası
  • Ev aletleri için uzaktan kumanda
  • Butonla etkinleştirilen güvenlik sistemi

Bu devrelerde direnç kullanmanın ardındaki nedenleri inceleyelim.

Arduino wiring for Push button wihthout resistor

Donanım/Bileşenler

Bu proje için gereken temel bileşenler minimumdur: bir Arduino kartı, bir buton anahtarı ve bir direnç (300 ohm'dan büyük). Direncin değeri kritik değildir; 1kΩ, 10kΩ veya hatta 100kΩ gibi değerler genellikle sorunsuz çalışır (videoda 00:41'de).

Bağlantı Kılavuzu

İki ana bağlantı konfigürasyonu vardır (videoda 00:30'da):

  1. Konfigürasyon 1: Butonu Arduino pini ile +5V arasına bağlayın. Butonun diğer tarafı bir direnç üzerinden toprağa bağlanır. Butona basıldığında pin HIGH okur; bırakıldığında LOW okur.
  2. Konfigürasyon 2: Butonu Arduino pini ile toprak arasına bağlayın. Butonun diğer tarafı bir direnç üzerinden +5V'a bağlanır. Butona basıldığında pin LOW okur; bırakıldığında HIGH okur.

Arduino wriring for push button and LED
Arduino wriring for push button and LED

Burada görsel bir bağlantı şeması faydalı olacaktır.

Kod Açıklaması

Arduino kodu, pini giriş olarak yapılandırmak için pinMode() fonksiyonunu kullanır. Kritik kısım, INPUT_PULLUP kullanımıdır (videoda 04:06, 04:23'te). Bu dahili pull-up direnci, belirli konfigürasyonlarda harici direnç ihtiyacını ortadan kaldırarak bağlantıyı basitleştirir. digitalRead() fonksiyonu pinin durumunu okur ve basit bir if-else ifadesi butona basılıp basılmadığını (LOW) veya basılmadığını (HIGH) belirler (videoda 08:34'te).


pinMode(2, INPUT_PULLUP); // Pin 2'yi dahili pull-up direnciyle giriş olarak yapılandırır
int pushButton = digitalRead(2); // Pin 2'nin durumunu okur
if (pushButton == LOW) {
  // Butona basıldı
} else {
  // Butona basılmadı
}

Canlı Proje/Gösterim

Video, her iki bağlantı konfigürasyonunu ve bunların ilgili davranışlarını gösterir. Direnç çıkarıldığında ortaya çıkabilecek sorunları vurgular; örneğin gürültü ve kapasitif kuplaj nedeniyle düzensiz okumalar (videoda 06:18, 06:39, 07:21'de). Gösterim, direnç yerindeyken elde edilen kararlı ve güvenilir çalışmayı açıkça gösterir (videoda 08:08'de).

Bölümler

  • [00:00] Giriş
  • [00:30] Bağlantı Konfigürasyonları
  • [04:12] INPUT_PULLUP Kullanarak Kod Açıklaması
  • [05:36] Direnci Çıkarma: Pratik Gösterim
  • [08:33] Kod Açıklaması

Görseller

Why should we use a resistor with a push button and Arduino?
Why should we use resistor with push button with Arduino?
Why should we use a resistor with a push button and Arduino?
Why should we use resistor with push button with Arduino?
2 pin tactile push button switch
2 pin tactile push button switch
Arduino wriring for push button and LED
Arduino wriring for push button and LED
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button wihthout resistor
Arduino wiring for Push button wihthout resistor
132-Code example using a resistor
Dil: C++
/*
 * This is an Arduino Sketch for a tutorial video 
 * explaining why a resistor is needed to be used with a push button
 * with Arduino.
 * 
 * Written by Ahmad Shamshiri on July 17, 2018 at 23:11 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */

void setup() {
  // Robojax.com push button tutorial
  pinMode(3,INPUT_PULLUP);
  Serial.begin(9600);
  Serial.println("Robojax Push Button Tutorial");
  

}

void loop() {
  // Robojax.com push button tutorial
  int pushButton = digitalRead(3);
  if(pushButton == LOW)
  {
    Serial.println("Pin 3 LOW");
  }else{
    Serial.println("Pin 3 HIGH");
  }

delay(500);
}
133-Code example using INPUT_PULLUP without a resistor
Dil: C++
/*
 * This is an Arduino Sketch for a Tutorial video 
 * explaining why a resistor is needed to be used with a push button
 * with an Arduino to connect the pin to Ground (GND)
 * 
 * Written by Ahmad Shamshiri on July 18, 2018 at 17:36 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */

void setup() {
  // Robojax.com push button tutorial
  pinMode(2,INPUT_PULLUP);
  Serial.begin(9600);
  Serial.println("Robojax Push Button Tutorial");
  

}

void loop() {
  // Robojax.com push button tutorial
  int pushButton = digitalRead(2);
  if(pushButton == LOW)
  {
    Serial.println("Button is pushed.");
  }else{
    Serial.println("Button is NOT pushed.");    
  }

delay(500);
}

İhtiyacın olabileceğini düşünüyor

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Dosya mevcut değil.