ESP32 mikrodenetleyici kartı kullanarak bir step motor (stepper motor) kontrol etmek için, genellikle bir step motor sürücüsü kullanmanız gerekecek. Step motorlar, belirli bir adımda bir miktar dönen ve bu adımları hassas bir şekilde kontrol edilebilen motorlardır. İşte basit bir ESP32 ile step motor kontrolü için bir örnek:
#include <Stepper.h>
const int stepsPerRevolution = 200; // Stepper motorun her turundaki adım sayısı
Stepper myStepper(stepsPerRevolution, 14, 12, 13, 15); // GPIO pin bağlantıları
void setup() {
myStepper.setSpeed(100); // Motor hızı (adım/saniye)
}
void loop() {
myStepper.step(stepsPerRevolution / 2); // Motoru yarım tur döndür
delay(1000);
}
Bu örnek, Arduino IDE veya PlatformIO gibi geliştirme araçları kullanılarak ESP32 kartına yüklenir. Bu kod, “Stepper” kütüphanesini kullanarak step motoru kontrol eder.
Kodu özelleştirmek için şu adımları takip edebilirsiniz:
stepsPerRevolution
değişkenini, kullanılan step motorunun her turundaki adım sayısına uygun olarak ayarlayın.myStepper
nesnesini oluştururken kullanılan GPIO pin bağlantılarını, ESP32 kartınızdaki uygun pinlere göre değiştirin.setSpeed
fonksiyonu ile motorun dönüş hızını ayarlayabilirsiniz.myStepper.step()
fonksiyonunu kullanarak motoru belirli bir adım sayısında döndürebilirsiniz.Bu örnek, step motoru belirli bir adım sayısında döndürmekle sınırlıdır. Gerçek projelerde, sensörler veya uzaktan kumanda gibi giriş cihazlarına dayalı olarak daha karmaşık kontrol algoritmaları uygulayabilirsiniz.
#include <Stepper.h>
const int stepsPerRevolution = 2048; // change this to fit the number of steps per revolution
// ULN2003 Motor Driver Pins
#define IN1 19
#define IN2 18
#define IN3 5
#define IN4 17
// initialize the stepper library
Stepper myStepper(stepsPerRevolution, IN1, IN3, IN2, IN4);
void setup() {
// set the speed at 5 rpm
myStepper.setSpeed(5);
// initialize the serial port
Serial.begin(115200);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(1000);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(1000);
}
Bu kod, ESP32 ve ULN2003 motor sürücü modülü kullanarak bir step motoru kontrol eder. Bir step motor ayrı adımlarla hareket eder ve hassas kontrolü, bobinlere belirli bir sırayla enerji verilmesiyle sağlanır. Kod, motor kontrol sürecini basitleştiren Stepper kütüphanesini kullanır.
Bu örnekte kullanılan adım motoru, devir başına 2048 adıma sahip olacak şekilde yapılandırılmıştır . Motor sürücü modülü ESP32’deki dört pime bağlanır: IN1, IN2, IN3 ve IN4 . Bu pinler, step motorun bobinlerinden geçen akımı belirleyerek motorun belirli bir yönde adım atmasını sağlar.
setup() fonksiyonunda kod, devir başına adım sayısını ve motor sürücüsüne bağlı dört pimi belirterek Stepper kütüphanesini yapılandırır. Ek olarak motorun hızı dakikada 5 devire (rpm) ayarlanmıştır. Seri monitörde mesajları görüntülemek için Seri iletişim 115200 baud hızına başlatılır.
loop() işlevinde kod, sonsuz bir döngüde aşağıdaki adımları gerçekleştirir:
Seri monitör, her adım için dönüş yönünü belirten ve dönüşümlü olarak “saat yönünde” ve “saat yönünün tersine” gösteren mesajları görüntülemek için kullanılır.
Genel olarak bu kod, adım motorunun her dönüş arasında 1 saniyelik bir duraklama ile sürekli olarak ileri geri dönmesine izin verir ve seri monitör aracılığıyla dönüş yönüne ilişkin basit görsel geri bildirim sağlar.
Yorum yapabilmek için giriş yapmalısınız.
ESP32 ile Step Motor Sürmek
Yorum Yaz