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.

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):
- 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.
- 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.

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
/*
* 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);
}
/*
* 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
-
Amazon
Kaynaklar ve referanslar
Henüz kaynak yok.
Dosyalar📁
Dosya mevcut değil.
