Push düğmesi anahtarları, cihazları kontrol etmek veya belirli eylemleri tetiklemek için elektronikte yaygın olarak kullanılır. Bir Arduino ile bir push düğmesinin durumunu kolayca okuyabilir ve projelerinizde kullanabilirsiniz. Bu öğretici, Arduino ile bir push düğmesi anahtarı ayarlama ve kullanarak, kodunuza nasıl dahil edileceğine dair örnekler size rehberlik edecektir.
Ne İhtiyacınız Olacak
- Arduino Kurulu (örn. UNO, Mega, Nano)
- Push Düğme Anahtarı
- 10k-OHM direnç (aşağı çekme yapılandırması için)
- Breadboard ve jumper telleri
- Arduino IDE kurulu bir bilgisayar
1. Adım: Push düğmesi anahtarlarını anlama
Push düğmesi anahtarı, basıldığında bir devreyi bağlayan veya bağlantısı kesen basit bir cihazdır. Tipik olarak, ikisi dahili olarak bağlı olan dört pine sahiptir, tek bir anahtar oluşturur.
Ortak yapılandırmalar
- Aşağı Direnç: Düğmeye basılmadığında giriş piminin düşük okumasını sağlar.
- Çekme direnci: Düğmeye basılmadığında giriş piminin yüksek okumasını sağlar (Arduino’nun dahili çekme direnci kullanabilir).
2. Adım: Push düğmesini Arduino'ya bağlama
Çıkış Direnç Yapılandırması
Düğme pimi | Bağlantı |
---|---|
Bir taraf | Arduino Pin 2 |
Diğer taraf | 5V |
Direnç (10k) | Arduino Pin 2 ila GND |
Adım 3: Düğme durumunu okumak
Kullanın digitalRead()
Düğmeye basılıp basıldığını (düşük) (düşük) belirlemek için işlev.
Örnek Kodu: Temel Düğme Oku
#define buttonPin 2 // Button connected to pin 2
void setup() {
pinMode(buttonPin, INPUT); // Set pin 2 as input
Serial.begin(9600);
Serial.println("Button Test");
}
void loop() {
int buttonState = digitalRead(buttonPin); // Read the button state
if (buttonState == HIGH) {
Serial.println("Button Pressed");
} else {
Serial.println("Button Released");
}
delay(100); // Small delay for readability
}
Adım 4: Dahili çekme direnci kullanma
Arduino, harici bir direnç ihtiyacını ortadan kaldırarak kablolamayı basitleştirebilen yerleşik çekme dirençlerine sahiptir.
Dahili çekme için kablolama
Düğme pimi | Bağlantı |
---|---|
Bir taraf | Arduino Pin 2 |
Diğer taraf | Gnd |
Örnek Kodu: Dahili Pull-up'ı kullanma
#define buttonPin 2 // Button connected to pin 2
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // Enable internal pull-up resistor
Serial.begin(9600);
Serial.println("Button Test with Pull-Up");
}
void loop() {
int buttonState = digitalRead(buttonPin); // Read the button state
if (buttonState == LOW) { // LOW means button is pressed
Serial.println("Button Pressed");
} else {
Serial.println("Button Released");
}
delay(100); // Small delay for readability
}
Adım 5: Düğmeyi Çıkarma
Mekanik düğmeler genellikle basıldığında gürültü veya "zıplayan" üretir ve birden fazla okumaya neden olur. Çarşamba, istikrarlı okumalar sağlar.
Örnek Kodu: Bir Düğmeyi Çıkarma
#define buttonPin 2 // Button connected to pin 2
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50; // 50ms debounce time
int lastButtonState = HIGH;
int buttonState;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
int reading = digitalRead(buttonPin);
// If the button state has changed, reset the debounce timer
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
// Check if the debounce time has passed
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
if (buttonState == LOW) {
Serial.println("Button Pressed");
}
}
}
lastButtonState = reading;
}
Adım 6: Bir LED'i düğmeyle kontrol etmek
Bir LED'i kontrol etmek için düğmeyi kullanabilirsiniz. Örneğin, LED durumu her düğmeye basarak değiştirin.
Örnek Kodu: Düğme Geçiş LED
#define buttonPin 2 // Button connected to pin 2
#define ledPin 13 // LED connected to pin 13
bool ledState = false;
bool lastButtonState = HIGH;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW && lastButtonState == HIGH) {
ledState = !ledState; // Toggle LED state
digitalWrite(ledPin, ledState ? HIGH : LOW);
delay(200); // Debounce delay
}
lastButtonState = buttonState;
}
Push düğmelerinin uygulamaları
- Başlat/Stop Anahtarları
- Modları seçmek için kullanıcı girişi
- Devrelerdeki düğmeleri sıfırla
- Kontrol Aydınlatma veya Aletler
Sorun giderme
- Düğme yanıt vermiyor: Kabloları kontrol edin ve doğru pinmode kullanıldığından emin olun.
- Kararsız okumalar: Debounce mantığı ekleyin veya bir çekme/çekme direnci kullanın.
- LED Aydınlatma: LED yönünü onaylayın ve akımı sınırlamak için bir direnç kullanın.
Çözüm
Arduino ile durumunu okumak, debouning ve LED'ler gibi cihazları kontrol etmek de dahil olmak üzere bir push düğmesi anahtarını nasıl kullanacağınızı öğrendiniz. Push düğmeleri elektronikte temel bir bileşendir ve kullanımlarına hakim olmak sonsuz PO'yu açacaktır