Dronlar, RC araçlar ve yüksek devir gerektiren endüstriyel uygulamalarda fırçasız (BLDC) motorlar sıkça tercih edilir. Bu rehberde, Arduino Uno, bir ESC (Elektronik Hız Kontrolörü) ve Potansiyometre kullanarak fırçasız bir motorun hızını hassas bir şekilde nasıl kontrol edeceğimizi adım adım inceliyoruz.
Sistemde gücü yüksek akım çeken LiPo batarya sağlarken, Arduino sadece ESC'ye standart bir RC Servo (PWM) sinyali gönderir:
ESC'ler, servo motorlar ile aynı zamanlama protokolünü (1000 µs - 2000 µs pulse genişliği) kullanır. Bu nedenle standart Servo.h kütüphanesini kullanarak ESC'yi kolayca sürebiliriz:
// Arduino ile ESC ve BLDC Motor Kontrolü
#include <Servo.h>
// Servo Nesnesi Oluşturuluyor (ESC Servo Kütüphanesi ile Sürülür)
Servo esc;
const int potPin = A0; // Potansiyometre Bağlantı Pini
const int escPin = 9; // ESC Sinyal Pini (PWM Destekli Pin)
int potVal; // Analog Değeri Saklama
int escVal; // ESC'ye Gönderilecek Açı Değeri (0 - 180)
void setup() {
Serial.begin(115200);
// ESC Sinyal Pinini Tanımlama
// Standard ESC sinyali 1000us (minimum) ile 2000us (maksimum) arasındadır
esc.attach(escPin, 1000, 2000);
// Güvenlik Önlemi: İlk açılışta ESC'ye sıfır (minimum) gaz gönder
esc.write(0);
delay(3000); // ESC'nin arm (açılış) sesini beklemesi için süre
Serial.println("ESC Hazir! Potansiyometre ile motor hizini ayarlayabilirsiniz.");
}
void loop() {
// Potansiyometreden 0 - 1023 arası analog değer oku
potVal = analogRead(potPin);
// Read değerini ESC açısına (0 - 180 derece) haritala
escVal = map(potVal, 0, 1023, 0, 180);
// ESC'ye hız komutunu gönder
esc.write(escVal);
// Seri Port Üzerinden Anlık Takip
Serial.print("Pot Değeri: ");
Serial.print(potVal);
Serial.print(" | ESC Açı Sinyali: ");
Serial.println(escVal);
delay(20); // Servo zamanlaması için kısa gecikme
}
Yeni bir ESC kullanırken motorun düzgün çalışması ve potansiyometrenin tüm aralığını tanıması için ilk çalıştırmada ESC Kalibrasyonu (Gaz Kelebeği Kalibrasyonu) yapılması gerekebilir:
Henüz yorum yapılmamış. İlk yorumu siz yapın!