Tek bir düğme (buton) kullanarak Arduino ile start-stop işlemi yapmak için aşağıda basit bir örnek kod bulunmaktadır. Bu örnek, basıldığında bir işlemi başlatan ve tekrar basıldığında işlemi durduran bir düğme kontrolü sağlar:
const int buttonPin = 2; // Düğme pinini tanımla
int buttonState = 0; // Düğme durumunu sakla
bool motorRunning = false; // Motorun çalışıp çalışmadığını kontrol et
void setup() {
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// Düğmeye basıldığında işlemleri gerçekleştir
delay(50); // Debouncing için küçük bir gecikme
if (!motorRunning) {
// Motor şu anda çalışmıyorsa başlat
startMotor();
} else {
// Motor çalışıyorsa durdur
stopMotor();
}
}
}
void startMotor() {
// Motoru başlat
Serial.println("Motor Başlatıldı");
motorRunning = true;
}
void stopMotor() {
// Motoru durdur
Serial.println("Motor Durduruldu");
motorRunning = false;
}
const int buttonPin = 2; // Düğme pinini tanımla
int buttonState = 0; // Düğme durumunu sakla
bool motorRunning = false; // Motorun çalışıp çalışmadığını kontrol et
void setup() {
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// Düğmeye basıldığında işlemleri gerçekleştir
delay(50); // Debouncing için küçük bir gecikme
if (!motorRunning) {
// Motor şu anda çalışmıyorsa başlat
startMotor();
} else {
// Motor çalışıyorsa durdur
stopMotor();
}
}
}
void startMotor() {
// Motoru başlat
Serial.println("Motor Başlatıldı");
motorRunning = true;
}
void stopMotor() {
// Motoru durdur
Serial.println("Motor Durduruldu");
motorRunning = false;
}
Bu kod, basıldığında “Motor Başlatıldı” mesajını seri monitöre gönderir ve tekrar basıldığında “Motor Durduruldu” mesajını gönderir. Bu basit örnekte, düğme durumu değiştikçe motor durumu (motorRunning
) güncellenir ve ilgili mesajlar seri monitöre yazdırılır. Bu örnek, bir başka basit durum makinesi uygulamasıdır.
L298N motor sürücüsü kullanarak tek bir düğme (buton) ile DC motor kontrolü yapmak için bir mikrodenetleyici (Arduino gibi) kullanabilirsiniz. Aşağıda, Arduino ile basit bir kod örneği bulunmaktadır. Bu örnek, bir düğme kullanarak DC motoru kontrol etmek için basit bir durum makinesi tasarımını içerir.
const int buttonPin = 2; // Düğme pinini tanımla
int buttonState = 0; // Düğme durumunu sakla
int motorSpeed = 100; // Başlangıçta ayarlanan motor hızı
bool motorRunning = false; // Motorun çalışıp çalışmadığını kontrol et
void setup() {
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// Düğmeye basıldığında işlemleri gerçekleştir
delay(50); // Debouncing için küçük bir gecikme
if (!motorRunning) {
// Motor şu anda çalışmıyorsa başlat
startMotor();
} else {
// Motor çalışıyorsa hızlandır veya durdur
if (motorSpeed < 255) {
// Eğer motor hızı 255'e kadar değilse hızlandır
motorSpeed += 50;
analogWrite(motorSpeed);
} else {
// Motor hızı 255'e ulaştıysa durdur
stopMotor();
}
}
}
}
void startMotor() {
// Motoru başlat ve başlangıç hızını ayarla
analogWrite(motorSpeed);
motorRunning = true;
}
void stopMotor() {
// Motoru durdur
analogWrite(0);
motorSpeed = 100; // Başlangıç hızını sıfırla
motorRunning = false;
}
Yıldız-üçgen (star-delta) motor kontrolü, motorun başlangıçta düşük hızda başlatılması ve daha sonra yüksek hıza geçiş yapması amacıyla kullanılan bir yöntemdir. Bu yöntem, motorun başlangıçta daha düşük akımla çalışmasını sağlayarak aşırı akımı önler ve motorun mekanik yük altında daha yumuşak bir şekilde başlamasına yardımcı olur. Yıldız-üçgen kontrolü genellikle üç fazlı motorlar için kullanılır.
Arduino ile yıldız-üçgen kontrolü sağlamak için, yıldız ve üçgen bağlantıları arasında geçiş yapabilmek için uygun bir motor sürücü devresine ihtiyacınız olacaktır. Ayrıca, motorun durumunu izlemek ve kontrol etmek için Arduino’dan çıkışlar kullanmanız gerekebilir.
Aşağıda, basit bir örnek yıldız-üçgen kontrolü için Arduino kodu verilmiştir. Bu örnek kod, yıldız ve üçgen bağlantıları arasında geçiş yaparak motoru kontrol eder:
int starPin1 = 2;
int starPin2 = 3;
int starPin3 = 4;
int deltaPin1 = 5;
int deltaPin2 = 6;
int deltaPin3 = 7;
void setup() {
pinMode(starPin1, OUTPUT);
pinMode(starPin2, OUTPUT);
pinMode(starPin3, OUTPUT);
pinMode(deltaPin1, OUTPUT);
pinMode(deltaPin2, OUTPUT);
pinMode(deltaPin3, OUTPUT);
}
void loop() {
// Yıldız bağlantısını aktif et
activateStarConnection();
delay(5000); // 5 saniye beklet
// Üçgen bağlantısını aktif et
activateDeltaConnection();
delay(5000); // 5 saniye beklet
}
void activateStarConnection() {
digitalWrite(starPin1, HIGH);
digitalWrite(starPin2, HIGH);
digitalWrite(starPin3, HIGH);
digitalWrite(deltaPin1, LOW);
digitalWrite(deltaPin2, LOW);
digitalWrite(deltaPin3, LOW);
}
void activateDeltaConnection() {
digitalWrite(starPin1, LOW);
digitalWrite(starPin2, LOW);
digitalWrite(starPin3, LOW);
digitalWrite(deltaPin1, HIGH);
digitalWrite(deltaPin2, HIGH);
digitalWrite(deltaPin3, HIGH);
}
Bu kod, yıldız bağlantısını aktif eder, 5 saniye bekler, ardından üçgen bağlantısını aktif eder ve tekrar 5 saniye bekler. Bu işlemi döngü içinde tekrarlar. Ancak, bu sadece bir örnek kod olup, kullanılacak motor sürücü devresine ve motor bağlantılarına bağlı olarak değişiklik gösterebilir.
Arduino kullanarak belirli bir süre boyunca bir motoru başlatma ve daha sonra durdurma işlemi gerçekleştirmek için aşağıdaki örnek kodu kullanabilirsiniz. Bu örnek, bir düğme (buton) kullanarak motoru belirli bir süre boyunca çalıştırır ve ardından motoru durdurur.
const int buttonPin = 2; // Düğme pinini tanımla
const int motorPin = 9; // Motor pinini tanımla
int buttonState = 0; // Düğme durumunu sakla
bool motorRunning = false; // Motorun çalışıp çalışmadığını kontrol et
unsigned long motorStartTime; // Motorun başlatıldığı zamanı sakla
const unsigned long motorRunTime = 5000; // Motorun kaç milisaniye boyunca çalışacağını belirle (örneğin 5000 ms = 5 saniye)
void setup() {
pinMode(buttonPin, INPUT);
pinMode(motorPin, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH && !motorRunning) {
// Düğmeye basıldığında ve motor çalışmıyorsa
startMotor();
}
if (motorRunning && millis() - motorStartTime >= motorRunTime) {
// Motor çalışıyorsa ve belirlenen süre dolduysa
stopMotor();
}
}
void startMotor() {
digitalWrite(motorPin, HIGH);
motorRunning = true;
motorStartTime = millis(); // Motorun başlatıldığı zamanı kaydet
}
void stopMotor() {
digitalWrite(motorPin, LOW);
motorRunning = false;
}
Bu örnek kod, belirli bir süre boyunca bir düğmeye basıldığında motoru başlatır ve belirlenen süre dolunca motoru durdurur. motorRunTime
değişkeni, motorun ne kadar süreyle çalışacağını belirtir. Bu değeri ihtiyacınıza göre güncelleyebilirsiniz. Bu kodu kullanmadan önce, bağlantılarınızı ve pin numaralarınızı kontrol edin ve gerektiğinde değiştirin.
Yorum yapabilmek için giriş yapmalısınız.
Arduino ile Start Stop Motor Çalıştırma
Yorum Yaz