ESP32 Eğitimi 18/55 - ESP32 ile Eğim Algılama | SunFounder'ın ESP32 IoT Öğrenme Kiti
Bu eğitimde, bir eğim anahtarı kullanarak eğimi algılayan basit bir proje oluşturmak için SunFounder ESP32 mikrodenetleyicisini kullanacağız. Eğim anahtarı etkinleştirildiğinde bir LED sönecek ve dik konumdayken LED yanacaktır. Bu proje yalnızca eğim sensörleriyle çalışmaya harika bir giriş olmakla kalmaz, aynı zamanda çeşitli robotik uygulamalar için de bir temel oluşturur. Ayrıntılı bir görsel kılavuz için yukarıda bağlantısı verilen videoyu (videoda 00:00'da) mutlaka izleyin.

Donanım Açıklaması
Bu projede kullanılan ana bileşenler ESP32 mikrodenetleyicisi, bir eğim anahtarı ve bir LED'dir. ESP32, yerleşik Wi-Fi ve Bluetooth özelliklerine sahip güçlü bir mikrodenetleyicidir ve IoT uygulamaları için idealdir. Eğim anahtarı, bir kutunun içinde metal bir top içeren basit bir cihazdır. Eğildiğinde top hareket eder ve devreyi keserek eğim durumunu algılamamızı sağlar. LED, anahtarın durumuna göre eğim durumunu görsel olarak gösterecektir. Bu bileşenlere ek olarak, akım sınırlama ve aşağı çekme amaçları için dirençler de kullanacağız. LED'e bağlı 220 ohm'luk direnç, LED'in çok fazla akım çekmeden güvenli bir şekilde çalışmasını sağlar. 10k ohm'luk direnç, eğim anahtarı için aşağı çekme görevi görür ve anahtar etkinleştirilmediğinde giriş pininin bilinen bir durum okumasını sağlar.
Veri Sayfası Ayrıntıları
| Üretici | SunFounder |
|---|---|
| Parça numarası | ESP32 |
| Mantık/G/Ç voltajı | 3,3 V |
| Besleme voltajı | 5 V |
| Çıkış akımı (kanal başına) | 12 mA |
| Tepe akımı (kanal başına) | 40 mA |
| PWM frekansı kılavuzu | 1 kHz |
| Giriş mantık eşikleri | 0,8 V (düşük), 2,0 V (yüksek) |
| Gerilim düşümü / RDS(on) / doyum | 0,2 V |
| Termal sınırlar | 85 °C |
| Paket | ESP32 Modülü |
| Notlar / varyantlar | Wi-Fi ve Bluetooth özelliklerini içerir |
- LED'e zarar gelmesini önlemek için uygun direnç değerlerini kullanın.
- Kısa devreleri önlemek için kablolamayı düzenli tutun.
- Eğim anahtarından kararlı okumalar sağlamak için aşağı çekme dirençleri kullanın.
- Bileşen arızasını önlemek için devreye güç vermeden önce bağlantıları test edin.
- Doğru işlevsellik için eğim anahtarının yönünü doğrulayın.
Bağlantı Talimatları

Bileşenleri bağlamak için, polaritesi olmadığından her iki yönde de bağlanabilen eğim anahtarıyla başlayın. Eğim anahtarının bir pinini 3,3V beslemeye ve diğer pinini ESP32 üzerindeki 14 numaralı pine bağlayın. Anahtar etkinleştirilmediğinde pin 14'ün bilinen bir durum okumasını sağlamak için aynı pinden toprağa bir 10k ohm direnç bağlayın. Ardından LED'i alın ve uzun bacağı (anot) bir 220 ohm dirence bağlı olacak şekilde breadboard'a yerleştirin. Direncin diğer ucunu ESP32 üzerindeki 26 numaralı pine bağlayın. LED'in kısa bacağı (katot) toprağa bağlanmalıdır. Son olarak, ESP32'nin toprak pinini breadboard'unuzun toprak rayına ve 3,3V pinini güç rayına bağlayın. Herhangi bir kısa devreyi veya yanlış okumayı önlemek için tüm bağlantıları tekrar kontrol ettiğinizden emin olun. Bu adımları izlerseniz, programlamaya hazır işlevsel bir eğim sensörü kurulumuna sahip olmalısınız.
Kod Örnekleri ve Açıklama
Kod, eğim anahtarı ve LED için pin numaralarını tanımlayarak başlar. Eğim anahtarı 14 numaralı pine, LED ise 26 numaralı pine bağlıdır. Eğim anahtarının durumu tiltState değişkeninde saklanır.
// Pin numaralarını ayarla
const int tiltPin = 14; // Eğim Anahtarı
const int ledPin = 26; // LED
// Eğim durumunu saklamak için değişken
int tiltState = 0;
Bu alıntı, pin atamalarını ve eğim durumunu izleyecek değişkenin bildirimini gösterir. tiltPin, anahtar durumunu okumak için bir giriş olarak ayarlanır. setup() fonksiyonunda seri iletişim başlatılır ve eğim anahtarı ile LED için pin modları ayarlanır. Bu, ESP32'nin eğim anahtarından giriş okumasını ve LED'i buna göre kontrol etmesini sağlar.
void setup() {
Serial.begin(115200);
// Eğim pinini giriş olarak başlat
pinMode(tiltPin, INPUT);
// LED pinini çıkış olarak başlat
pinMode(ledPin, OUTPUT);
}
Bu bölüm, ortamı kurduğu ve ESP32'nin etkili bir şekilde iletişim kurmasını ve eğim anahtarı durumuna göre çıkışı kontrol etmesini sağladığı için çok önemlidir. loop() fonksiyonu eğim anahtarının durumunu sürekli olarak kontrol eder. Anahtar dikse LED yanar; eğikse LED söner. Geçerli durum, hata ayıklama için seri monitöre yazdırılır.
void loop() {
// Eğim anahtarının durumunu oku
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// Anahtar dikse
if (tiltState == HIGH) {
// LED'i yak
digitalWrite(ledPin, HIGH);
} else {
// LED'i söndür
digitalWrite(ledPin, LOW);
}
}
Bu döngü sürekli çalışarak eğim anahtarı durumunun gerçek zamanlı izlenmesini ve buna karşılık gelen LED kontrolünü sağlar. Çıktı seri monitörde gözlemlenebilir ve işlevselliği doğrulamayı kolaylaştırır.
Gösterim / Beklentiler
Her şey doğru şekilde bağlandığında ve kod yüklendiğinde, eğim anahtarı dik konumdayken LED'in yandığını ve eğildiğinde söndüğünü görmelisiniz. Eğim durumu ile LED tepkisi arasındaki bu doğrudan ilişki, eğim anahtarının işlevselliğini etkili bir şekilde gösterir. Yaygın hatalar arasında kablolamanın doğru olduğundan emin olmak ve kısa devreleri önlemek için dirençlerin uygun şekilde yerleştirildiğini doğrulamak yer alır (videoda 12:00'de).
Video Zaman Damgaları
- 00:00 Başlangıç
- 1:44 Proje Tanıtımı
- 2:49 Dokümantasyon
- 6:43 Arduino Bağlantı Şeması Açıklaması
- 10:39 Arduino Kodu Açıklaması
- 13:40 Arduino IDE'de ESP32 Kartı ve COM Portu Seçimi
- 15:22 Proje Eğim Gösterimi
// Set pin numbers
const int tiltPin = 14; // Tilt Switch
const int ledPin = 26; // LED
// Variable for storing the tilt status
int tiltState = 0;
void setup() {
Serial.begin(115200);
// Initialize the tilt pin as an input
pinMode(tiltPin, INPUT);
// Initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Read the state of the tilt switch
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// If the switch is upright
if (tiltState == HIGH) {
// Turn LED on
digitalWrite(ledPin, HIGH);
} else {
// Turn LED off
digitalWrite(ledPin, LOW);
}
}
Common Course Links
Common Course Files
Kaynaklar ve referanslar
-
BelgelendirmeESP32 Tutorial 18/55- SunFounder Tile sensor documentationdocs.sunfounder.com
Dosyalar📁
Dosya mevcut değil.