Bu içeriğimizde, ESP32 Hall Etkisi sensörü kullanımını inceliyoruz. Nesnelerin İnterneti (IoT) projelerinde, akıllı ev otomasyonlarında veya endüstriyel takip sistemlerinde hareket eden parçaların konumunu tespit etmek, dönme hızını ölçmek ya da temassız anahtarlar tasarlamak için manyetik alan sensörlerine ihtiyaç duyarız.
ESP32 geliştirme kartı, dış dünyadaki manyetik alan değişimlerini ve kutup yönlerini algılayabilen yerleşik (entegre) bir Hall Etkisi Sensörüne (Hall Effect Sensor) sahiptir.
Bu yerleşik sensör sayesinde, harici bir manyetik sensör devresi kurmaya gerek kalmadan, doğrudan çip seviyesinde temel manyetik algılamalar gerçekleştirilebilir. Bu rehberimizde, Hall etkisinin donanımsal çalışma fiziğini, ESP32 üzerindeki yerleşimini, Arduino IDE ve MicroPython kütüphaneleriyle nasıl okunacağını en ince mühendislik ayrıntılarıyla ele alacağız.

ESP32 entegresi, aşağıdaki görselde gösterildiği gibi, silikon yonganın üzerinde yer alan metal kalkan korumasının (RF shield) hemen altında bulunan özel bir donanımsal Hall plakasına sahiptir.

ESP32 Hall Etkisi ve Manyetik Algılamanın Fiziksel Prensibi
Hall Etkisi, 1879 yılında Edwin Hall tarafından keşfedilen fiziksel bir olaydır. İletken veya yarı iletken bir malzemeden elektrik akımı akarken, bu akımın yönüne dik bir manyetik alan uygulandığında, akan yük taşıyıcıları (elektronlar) Lorentz Kuvveti nedeniyle malzemenin bir yanına doğru sürüklenir. Bu sürüklenme, iletkenin iki ucu arasında elektriksel bir potansiyel fark oluşturur. Bu potansiyel farka Hall Voltajı (Hall Voltage) adı verilir.

ESP32 üzerindeki yerleşik Hall sensörü, bu voltajı düşük gürültülü bir amplifikatör (LNA) ile yükselterek dahili SAR ADC (Analogtan Dijitale Çevirici) birimine aktarır. Uygulanan manyetik alanın şiddeti arttıkça, algılanan voltaj ve dolayısıyla dijital okuma değeri de artar ya da kutup yönüne göre azalır. Entegre Hall sensörü endüstride ve hobi projelerinde şu amaçlarla kullanılır:
- Mıknatıs yaklaşmasını algılayarak temassız limit anahtarı (limit switch) yapmak.
- Döner şaftlara yerleştirilen mıknatıslar sayesinde devir hızı (RPM) hesaplamak.
- Pencere veya kapı kasasına mıknatıs koyarak kapının kapalı olup olmadığını tespit etmek.
- Yüksek hassasiyet gerektirmeyen temassız konumlandırma sistemleri tasarlamak.
Arduino IDE ile Hall Etkisi Sensörünün Okunması
Arduino Core kütüphanesi kullanan ESP32 projelerinde, dahili Hall sensörü değerini okumak için özel bir donanım yapılandırması yapılmasına gerek yoktur. SDK bünyesinde yer alan dahili hallRead() fonksiyonu doğrudan çağrılarak anlık manyetik akı yoğunluğu ölçülebilir.
Arduino IDE menüsünden Dosya > Örnekler > ESP32 > HallSensor yolunu izleyerek de ulaşabileceğiniz, optimize edilmiş örnek yazılım kod bloğu şu şekildedir:
// Okunan manyetik alan değerini saklayacak değişken
int manyetikDeger = 0;
void setup() {
// Seri haberleşmeyi başlat
Serial.begin(115200);
delay(1000);
Serial.println("ESP32 Entegre Hall Sensörü Okuma Uygulaması...");
}
void loop() {
// Dahili Hall sensör değerini oku
manyetikDeger = hallRead();
// Ölçülen değeri seri terminale yazdır
Serial.print("Manyetik Alan Siddeti / Kutup Yonu: ");
Serial.println(manyetikDeger);
// Okumayı kolaylaştırmak için 500 ms aralık bırak
delay(500);
}Yazılımı kartınıza yükledikten sonra seri haberleşme baud hızını 115200 olarak ayarlayıp Seri Monitör veya Seri Çizici ekranlarını açabilirsiniz.
Manyetik Kutup ve Polarite Testleri
ESP32 Hall sensörü, sadece manyetik alanın varlığını değil, aynı zamanda manyetik alanın yönünü (kutuplarını) de algılayabilir. Çipe güçlü bir neodyum mıknatıs yaklaştırdığınızda, mıknatısın hangi yüzeyinin (Kuzey – N veya Güney – S) çipe baktığına bağlı olarak değerler şu şekilde davranır:
Pozitif Artış Kutuplaşması: Mıknatısın bir kutbunu çipe yaklaştırdığınızda, okunan değerler varsayılan boşta kalma seviyesinin (tipik olarak
arası gürültü seviyesi) üzerine çıkarak pozitif yönde yükselir (
seviyelerine):

Negatif Düşüş Kutuplaşması: Mıknatısı ters çevirip diğer kutbunu yaklaştırdığınızda ise değerler hızla sıfırın altına inerek negatif yönde geriler (
ile
seviyelerine):

Mıknatıs çipin metal kapağına ne kadar çok yaklaşırsa, okunan mutlak değer de manyetik alanın kuvvetlenmesinden dolayı o kadar büyük olur. Bu davranışı kullanarak mıknatısın yaklaşma yönünü ve mesafesini yazılımsal olarak tahmin edebilirsiniz.
MicroPython ile Hall Etkisi Sensörünün Okunması
ESP32 geliştirme kartınızı MicroPython ortamında programlamayı tercih ediyorsanız, dahili Hall sensörü değerini okumak son derece basittir. esp32 donanım modülü bünyesinde yer alan hall_sensor() metodunu çağırmanız yeterlidir:
import esp32
import time
print("MicroPython Hall Sensor Testi Baslatiliyor...")
while True:
# Yerleşik Hall sensörünü oku ve yazdır
manyetik_deger = esp32.hall_sensor()
print("Manyetik Alan Siddeti:", manyetik_deger)
# 0.5 saniye bekle
time.sleep(0.5)MicroPython firmware yükleme adımlarını, REPL komut satırı kullanımını ve temel GPIO kontrol prensiplerini öğrenmek isterseniz ESP32 MicroPython Kullanımı ayrıntılı kılavuzumuzu ziyaret edebilirsiniz.
Özetle; ESP32’nin dahili Hall etkisi sensörü, harici sensör kartlarına harcayacağınız bütçe ve pin sayısından tasarruf etmenizi sağlar. Basit mıknatıs algılama, konumlandırma ve devir sayma uygulamalarınızda bu yerleşik donanımı güvenle tercih ederek projelerinizin donanımsal karmaşıklığını azaltabilirsiniz.
ESP32 veri sayfasına buradan ulaşabilirsiniz.
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.

