Kod Ara

ESP32 Eğitimi 9/55 - LED'i Değiştirmek için Buton Kullanma, Bas ve Aç, Bas ve Kapat -SunFounder ESP32 IoT kiti

ESP32 Eğitimi 9/55 - LED'i Değiştirmek için Buton Kullanma, Bas ve Aç, Bas ve Kapat -SunFounder ESP32 IoT kiti

Bu eğitimde, bir ESP32 mikrodenetleyicisi ile bir butona basarak bir LED'i nasıl açıp kapatacağımızı öğreneceğiz. Proje, butonun durumunu nasıl okuyacağımızı ve LED'i buna göre nasıl kontrol edeceğimizi gösterecektir. Butona basıldığında LED yanacak, bırakıldığında ise sönecektir. Bu, ESP32 kullanan birçok etkileşimli proje için temel bir kavramdır.

ESP32, yerleşik Wi-Fi ve Bluetooth özelliklerine sahip güçlü bir mikrodenetleyicidir ve çeşitli IoT uygulamaları için uygundur. Bu derste, dirençler ve LED'ler gibi temel bileşenleri içeren SunFounder ESP32 Başlangıç Kiti'ndeki ESP32'yi kullanarak basit bir devre oluşturacağız. Bağlantı ve kod hakkında ayrıntılı bir açıklama için lütfen videoya bakın (videoda 00:00).

Donanım Açıklaması

Bu projenin temel bileşenleri ESP32 mikrodenetleyicisi, bir buton, bir LED ve dirençlerdir. ESP32, projenin beyni olarak görev yapar ve butonun durumuna göre LED'i kontrol eder. Buton, kullanıcıların devre ile etkileşime girmesini sağlarken, LED butona basıldığında görsel geri bildirim sağlar.

Buton, basıldığında devreyi kapatarak akımın akmasını sağlar. Bu işlem, ESP32'nin belirlenen giriş pinine YÜKSEK bir sinyal gönderir ve bu sinyal kod içinde okunabilir. Butona bağlı direnç, butona basılmadığında pinin tanımlı bir duruma sahip olmasını sağlayarak düzensiz davranışı önler.

Dirençli buton

Bağlantı Talimatları

Devreyi bağlamak için, LED'in uzun bacağını (anot) 220 ohm'luk bir dirence bağlayarak başlayın. Direncin diğer ucunu ESP32 üzerindeki GPIO 26 pinine bağlayın. LED'in kısa bacağı (katot) toprağa bağlanmalıdır. Ardından butonu alın ve bir tarafını kart üzerindeki 3.3V güç kaynağına bağlayın. Butonun diğer tarafı GPIO 14 pinine bağlanır.

Dirençsiz buton
Dirençsiz buton
Dirençli buton
Dirençli buton

Ayrıca, butona basılmadığında pinin DÜŞÜK okumasını sağlamak için GPIO 14 pininden toprağa 10k ohm'luk bir direnç yerleştirin. Son olarak, ESP32'den gelen toprak kablosunu breadboard üzerindeki ortak toprağa bağlayın. Bu kurulum, ESP32'nin buton durumunu okumasına ve LED'i buna göre kontrol etmesine olanak tanır.

Kod Örnekleri ve Açıklaması

Programın çekirdeği, buton ve LED için pin numaralarını sabitler kullanarak tanımlamakla başlar. Bu, programın yürütülmesi boyunca pin atamalarının değişmeden kalmasını sağlar.

// pin numaralarını ayarla
const int buttonPin = 14;  // Buton pini
const int ledPin = 26;     // LED pini

setup() fonksiyonunda, seri monitörü başlatır ve buton pinini giriş olarak ayarlarken LED pinini çıkış olarak yapılandırırız. Bu, ESP32'yi butondan okumaya ve LED'i kontrol etmeye hazırlar.

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

loop() fonksiyonu içinde, program sürekli olarak buton durumunu okur ve seri monitöre yazdırır. Butona basılırsa LED açılır; aksi takdirde kapatılır. Bu mantık, LED'i butonun durumuna göre değiştirmek için gereklidir.

void loop() {
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

Bu temel işlevsellik, LED'in butona doğrudan tepki vermesini sağlar. Proje ve tam kod hakkında daha fazla ayrıntı için lütfen sağlanan videoya bakın (videoda 14:00).

Gösterim / Beklentiler

Bağlantı tamamlandığında ve kod yüklendiğinde, butona basmak LED'i yakmalı ve bırakmak LED'i söndürmelidir. Bu davranış, buton durumunun doğru okunduğunu doğrular. LED beklenildiği gibi tepki vermezse, bağlantıları kontrol edin ve butonun düzgün çalıştığından emin olun.

Test sırasında, buton durumu okumaları için seri monitörü gözlemlediğinizden emin olun. Butona basıldığında '1' ve bırakıldığında '0' görmelisiniz. Okumalar beklenmedik şekilde dalgalanıyorsa, bu bir bağlantı sorununa veya kodda ek sekme (debouncing) mantığı ihtiyacına işaret edebilir.

Video Zaman Damgaları

  • 00:00 Başlangıç
  • 1:48 Proje tanıtımı
  • 3:10 Anahtar ve buton açıklaması
  • 7:19 Bağlantı şeması açıklaması
  • 12:25 Buton için Arduino kodu açıklaması
  • 15:56 ESP32 kartı ve COM portu seçimi
  • 17:38 Projenin gösterimi
  • 18:33 Proje-2 Geçiş ve LED
  • 19:09 LED'i geçiştirmek için Arduino kodu
  • 21:16 Bir LED'in geçiştirilmesinin gösterimi

Görseller

Push button with resistor
Push button with resistor
Push button with resistor
Push button with resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button without resistor
Push button with resistor
Push button with resistor
808-ESP32 Tutorial 9/55 - Arduino code push button
Dil: C++
// set pin numbers
const int buttonPin = 14;  // Button pin
const int ledPin = 26;     // LED pin

// variable for storing the button status
int buttonState = 0;

void setup() {
  Serial.begin(115200);
  // initialize the button pin as an input
  pinMode(buttonPin, INPUT);
  // initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the state of the button value
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  delay(100);
  // if the button is pressed
  if (buttonState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Kaynaklar ve referanslar

Henüz kaynak yok.

Dosyalar📁

Dosya mevcut değil.