const int motorSag1 = 3; // L298N IN1
const int motorSag2 = 5; // L298N IN2
const int motorSol1 = 6; // L298N IN3
const int motorSol2 = 9; // L298N IN4
int deger; // Bluetooth'tan gelen veri
int hiz = 255; // Başlangıç hızı (0-255 arası)
// Kurulum
void setup() {
pinMode(motorSag1, OUTPUT);
pinMode(motorSag2, OUTPUT);
pinMode(motorSol1, OUTPUT);
pinMode(motorSol2, OUTPUT);
Serial.begin(9600);
}
// Ana döngü
void loop() {
if (Serial.available() > 0) {
deger = Serial.read();
}
// Hız seviyesi ayarlama (harflerle)
if (deger == 1) hiz = 0;
else if (deger <=2) hiz = 100;
else if (deger <= 4) hiz = 150;
else if (deger <= 6) hiz = 175;
else if (deger <= 8) hiz = 200;
else if (deger <= 10) hiz = 255;
// Hareket komutları
if (deger == 'F') ileriGit(hiz);
else if (deger == 'B') geriGit(hiz);
else if (deger == 'L') solaGit(hiz);
else if (deger == 'R') sagaGit(hiz);
else if (deger == 'G') ileriSol(hiz);
else if (deger == 'I') ileriSag(hiz);
else if (deger == 'H') geriSol(hiz);
else if (deger == 'J') geriSag(hiz);
else if (deger == 'S') dur();
}
// Fonksiyonlar
void ileriGit(int hizim) {
analogWrite(motorSag1, hizim);
analogWrite(motorSag2, 0);
analogWrite(motorSol1, hizim);
analogWrite(motorSol2, 0);
}
void geriGit(int hizim) {
analogWrite(motorSag1, 0);
analogWrite(motorSag2, hizim);
analogWrite(motorSol1, 0);
analogWrite(motorSol2, hizim);
}
// Yumuşatılmış sola dönüş
void solaGit(int hizim) {
analogWrite(motorSag1, hizim);
analogWrite(motorSag2, 0);
analogWrite(motorSol1, hizim / 3); // az da olsa ileri
analogWrite(motorSol2, 0);
}
// Yumuşatılmış sağa dönüş
void sagaGit(int hizim) {
analogWrite(motorSag1, hizim / 3); // az da olsa ileri
analogWrite(motorSag2, 0);
analogWrite(motorSol1, hizim);
analogWrite(motorSol2, 0);
}
void dur() {
analogWrite(motorSag1, 0);
analogWrite(motorSag2, 0);
analogWrite(motorSol1, 0);
analogWrite(motorSol2, 0);
}
void ileriSol(int hizim) {
analogWrite(motorSag1, hizim);
analogWrite(motorSag2, 0);
analogWrite(motorSol1, hizim / 2);
analogWrite(motorSol2, 0);
}
void ileriSag(int hizim) {
analogWrite(motorSag1, hizim / 2);
analogWrite(motorSag2, 0);
analogWrite(motorSol1, hizim);
analogWrite(motorSol2, 0);
}
void geriSol(int hizim) {
analogWrite(motorSag1, 0);
analogWrite(motorSag2, hizim);
analogWrite(motorSol1, 0);
analogWrite(motorSol2, hizim / 2);
}
void geriSag(int hizim) {
analogWrite(motorSag1, 0);
analogWrite(motorSag2, hizim / 2);
analogWrite(motorSol1, 0);
analogWrite(motorSol2, hizim);
}
Yorumlar
Yorum Gönder