Seri Port ile DC Motor Kontrolü Nasıl Yapılır?

Arduino üzerinden seri port ile dc motor kontrol etmek istiyorum. Mesela “200” girince 200 pwm ile “i” veya “ileri” komutu girince de ileri yönde dönmesi için nasıl bir kod yazmalıyım?
Seri port ekranında bu şekilde görünmesini istiyorum:

"Hız bilgisi giriniz: 200
Yön bilgisi giriniz: i
Motor ileri yönde 200 pwm ile dönüyor. "

benim yazdığım kod bu şekilde ancak pek başarılı değil…

#define l_motor_in1 3
#define l_motor_in2 4
#define l_motor_pwm 9
int hiz, yon;

void setup() {
  Serial.begin(9600);
  pinMode(l_motor_in1, OUTPUT);
  pinMode(l_motor_in2, OUTPUT);
  pinMode(l_motor_pwm, OUTPUT);
}
void loop() {
  Serial.println("Hız bilgisi giriniz: ");
  while (Serial.available() == 0);
  hiz = Serial.parseInt();
  delay(2000);
  Serial.print("Girilen değer: ");
  Serial.println(hiz);
  delay(1000);


  Serial.println("Yön bilgisi giriniz: ");
  while (Serial.available() == 0);
  yon = Serial.parseInt();
  delay(2000);
  Serial.print("Girilen yön: ");
  Serial.println(yon);
  delay(1000);

  if (yon = 1) {
    digitalWrite(l_motor_in1, HIGH);
    digitalWrite(l_motor_in2, LOW);
    analogWrite(l_motor_pwm, hiz);
    Serial.print("Motor ileri yönde ");
    Serial.print(hiz);
    Serial.println("pwm ile dönüyor.");
    delay(1500);
  }

  else if (yon = 0) {
    digitalWrite(l_motor_in1, LOW);
    digitalWrite(l_motor_in2, HIGH);
    analogWrite(l_motor_pwm, hiz);
    Serial.print("Motor geri yönde ");
    Serial.print(hiz);
    Serial.println(" pwm ile dönüyor.");
    delay(1500);
  }
}

Selamlar.

Bunu parça parça yapacağınız gibi tek bir metinle de yapabilirsiniz. Bu metni seri haberleşme ekranından aldıktan sonra gerekli yerlerini kırpıp daha sonra kontrolünü yapabilirsiniz.

Örneğin, “ileri 255” demek olabilir.

Ne dersiniz?

Daha düzenli ve güzel olur evet. Ancak ben parça parça bile yazamadım o dediğinizi nasıl yazacağım hakkında pek fikrim yok açıkçası.

Yukarıdaki adreste “%Enter%your%string%here” verisi için nasıl bir ayrım yapılacağını anlatmış. Siz de buna bakarak “ileri 255” veya “sag 17” verisini ayırabilirsiniz. “%” işaretine göre değil, boşluğa göre ayırmanız gerekiyor. Buna dikkat etmenizi öneririm.

Bir de bu şekilde deneyeyim. Teşekkürler.