Arduino servo motor ve sensör bağlama

Kaan.12

Hectopat
Katılım
19 Mart 2021
Mesajlar
87
Daha fazla  
Cinsiyet
Erkek
#include <Servo.h>

Servo servoMotor; // Servo motor nesnesi oluşturuluyor
int servoPin = 9; // Servo motorun bağlı olduğu pin
int sensorPin = A0; // Düşman algılayıcı sensörün bağlı olduğu analog pin
int threshold = 500; // Algılama eşiği (düşmanın algılanması için sensör değeri)

void setup() {
servoMotor.attach(servoPin); // Servo motor pinine bağlanıyor
pinMode(sensorPin, INPUT); // Sensör pinini giriş olarak ayarlıyoruz
}

void loop() {
int sensorValue = analogRead(sensorPin); // Sensör değerini okuyoruz

// Düşman algılandıysa
if (sensorValue > threshold) {
rotateLeft(); // Sola dön
} else {
rotateRight(); // Sağa dön
}
}

void rotateRight() {
servoMotor.write(0); // Sağa dönmek için servo motoru 0 dereceye döndür
delay(1000); // 1 saniye bekle
}

void rotateLeft() {
servoMotor.write(180); // Sola dönmek için servo motoru 180 dereceye döndür
delay(1000); // 1 saniye bekle
}

Bu kodun düzgün çalışması için hangi malzemeleri almalıyım ve ardinuo Uno'ya nasıl bağlamalıyım?
 
Son düzenleyen: Moderatör:
#İnclude <Servo.h>

Servo servomotor; // servo motor nesnesi oluşturuluyor.
İnt servopin = 9; // servo motorun bağlı olduğu pin.
İnt sensorpin = a0; // düşman algılayıcı sensörün bağlı olduğu analog pin.
İnt threshold = 500; // algılama eşiği (düşmanın algılanması için sensör değeri)

Void setup() {
Servomotor. Attach(servopin); // servo motor pinine bağlanıyor.
Pinmode(sensorpin, ınput); // sensör pinini giriş olarak ayarlıyoruz.
}

Void loop() {
İnt sensorvalue = analogread(sensorpin); // sensör değerini okuyoruz.

// Düşman algılandıysa.
İf (sensorvalue > threshold) {
rotateLeft(); // Sola dön.
} Else {
rotateRight(); // Sağa dön.
}
}

Void rotateRight() {
Servomotor. Write(0); // sağa dönmek için servo motoru 0 dereceye döndür.
Delay(1000); // 1 saniye bekle.
}

Void rotateLeft() {
Servomotor. Write(180); // sola dönmek için servo motoru 180 dereceye döndür.
Delay(1000); // 1 saniye bekle.
}

Bu kodun düzgün çalışması için hangi malzemeleri almalıyım ve ardinuo Uno'ya nasıl bağlamalıyım?

Kodu siz yazmadınız mı?

Koddan anladığım kadarıyla bir adet servo motor ve sensöre ihtiyacınız var fakat sensörün ne olduğunu anlamak zor.

HC-SR04 mesafe sensörü kullanılabilir belki ama kodda bu sensör için gerekli kısımlar yok.

Servo motorun sinyal kablosu 9 numaralı PWM (~) pinine bağlanacak ve bahsi geçen sensörün sinyal bağlantısı A0 analog pinine yapılacak.

Sensör her ne ise galiba 500 cm için ayarlanmış yani 500 cm içinde bir düşman tespit edilirse harekete geçecek.

Ama dediğim gibi bu bahsi geçen sensör her ne ise ona ait bir kod satırı bulunmamakta.

Hatta bir daha bakayım.

Hayır bahsi geçen sensöre ait olabilecek herhangi bir kod satırı yok.

Ayrıca rotateLeft ve rotateRight diye iki adet özel fonksiyon atanmaya çalışmış gibi gözüküyor ama böyle bir yazım daha önce giç görmedim eğer kodu test etmediyseniz hatalı olabilir.
Benim bildiğim özel fonksiyonlar şu şekilde tanımlanıyor:

C++:
void sola_don(){

if (dusman > 450)
ates_et =1;

}

Gibi mesela.

Şimdi anladım bu özel fonksiyonlar kod içerisinde kullanılmış ama örneğini verdiğim şekilde atanmamış yani kod çok büyük ihtimalle hata verecek.
 
Son düzenleme:
Kodu siz yazmadınız mı?

Koddan anladığım kadarıyla bir adet servo motor ve sensöre ihtiyacınız var fakat sensörün ne olduğunu anlamak zor.

HC-SR04 mesafe sensörü kullanılabilir belki ama kodda bu sensör için gerekli kısımlar yok.

Servo motorun sinyal kablosu 9 numaralı PWM (~) pinine bağlanacak ve bahsi geçen sensörün sinyal bağlantısı A0 analog pinine yapılacak.

Sensör her ne ise galiba 500 cm için ayarlanmış yani 500 cm içinde bir düşman tespit edilirse harekete geçecek.

Ama dediğim gibi bu bahsi geçen sensör her ne ise ona ait bir kod satırı bulunmamakta.

Hatta bir daha bakayım.

Hayır bahsi geçen sensöre ait olabilecek herhangi bir kod satırı yok.

Ayrıca rotateLeft ve rotateRight diye iki adet özel fonksiyon atanmaya çalışmış gibi gözüküyor ama böyle bir yazım daha önce giç görmedim eğer kodu test etmediyseniz hatalı olabilir.
Benim bildiğim özel fonksiyonlar şu şekilde tanımlanıyor:

C++:
void sola_don(){

if (dusman > 450)
ates_et =1;

}

Gibi mesela.

Şimdi anladım bu özel fonksiyonlar kod içerisinde kullanılmış ama örneğini verdiğim şekilde atanmamış yani kod çok büyük ihtimalle hata verecek.

Sağ olasın hocam ChatGPT ile deneme amaçlı yazdırmıştım denemek istedim sonra kodlamayı kendim yapıp biraz yardım aldım. Başarılı bir şekilde çalıştı.
 
Son düzenleyen: Moderatör:

Yeni konular

Geri
Yukarı