How do I shorten the time of the motors to rotate normally?

`#define echoPin 12 //Ultrasonik sensörün echo pini Arduino kartımızın 12.pinine bağladık
#define trigPin 13 //Ultrasonik sensörün trig pini Arduino kartımızın 13. pinine bağladık.

#define MotorR1 7 // L298N üzerindeki IN1 pinine bağlayın
#define MotorR2 6 //L298N üzerindeki IN2 pinine bağlayın
#define MotorRenable 9 // L298N üzerindeki enA pinine bağlayın
#define MotorL1 5 // L298N üzerindeki IN3 pinine bağlayın
#define MotorL2 4 // L298N üzerindeki IN4 pinine bağlayın
#define MotorLenable 3// L298N üzerindeki enB pinine bağlayın

//Yukarıdaki kısımda motor pinlerini tanımladık.

long sure, uzaklik; //süre ve uzaklık adında iki değişken tanımlıyoruz.

void setup() {

// ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),
// göndermiş olduğıu bu dalgaları Echo pini ile geri aldığı için INPUT yani (Giriş) olarak tanımlanır.
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);

pinMode(MotorL1, OUTPUT);
pinMode(MotorL2, OUTPUT);
pinMode(MotorLenable, OUTPUT);
pinMode(MotorR1, OUTPUT);
pinMode(MotorR2, OUTPUT);
pinMode(MotorRenable, OUTPUT);
// yukarıdaki kısımda Motorlarımızı çıkış olarak tanımladık

Serial.begin(9600);// 9600 baud rate üzerinden bir seri haberleşme başlattık

}

void loop() {

digitalWrite(trigPin, LOW); //sensör pasif hale getirildi
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); //Sensore ses dalgasının üretmesi için emir verildi
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi

sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor
uzaklik = sure / 29.1 / 2; //ses dalgasının gidiş ve dönüşünden elde edilen süre uzaklık birimine çevriliyor

Serial.println(uzaklik);

if (uzaklik < 15) // Uzaklık 15'den küçük ise,
{
geri(); // 150 ms geri git
delay(150);
sag(); // 250 ms sağa dön
delay(250);
}
else { // değil ise,
ileri(); // ileri git
}

}

void ileri(){ // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.

digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
analogWrite(MotorRenable, 250); // Sağ motorun hızı 150

digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLenable, 250); // Sol motorun hızı 150

}

void sag(){ // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.

digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
analogWrite(MotorRenable, 0); // Sağ motorun hızı 0 (Motor duruyor)

digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLenable, 250); // Sol motorun hızı 150

}

void geri(){ // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz.

digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
digitalWrite(MotorR2, HIGH); // Sağ motorun geri hareketi aktif
analogWrite(MotorRenable, 150); // Sağ motorun hızı 150

digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi aktif
analogWrite(MotorLenable, 150); // Sol motorun hızı 150

} ` That's the code for the motor. It needs 45 MINUTES for the motor for function normally. How do I shorten this?

category unknown + the trigPin is now 2

For help, you will need to describe what you want to do, and the current problem.

After reading the "How to get the best out of this forum" post, please edit your post to add code tags, and the required information about motors, gearboxes, wiring, power supply, etc.

1 Like

okay

Format the code you post to this forum.

  1. Open your post for editing
  2. Mouse-over/highlight your code in the post.
  3. CUT your code.
  4. In your IDE, format the code (CTRL-T)
  5. Copy the IDE code (CTRL-A, CTRL-C)
  6. In your post, click the < CODE > button
  7. Paste your code where you see '''type or paste your code here'''

Your code should look like this:

#define echoPin 12 //Ultrasonik sensörün echo pini Arduino kartımızın 12. pinine bağladık
#define trigPin 13 //Ultrasonik sensörün trig pini Arduino kartımızın 13. pinine bağladık.
#define MotorR1 7 // L298N üzerindeki IN1 pinine bağlayın
#define MotorR2 6 //L298N üzerindeki IN2 pinine bağlayın
#define MotorRenable 9 // L298N üzerindeki enA pinine bağlayın
#define MotorL1 5 // L298N üzerindeki IN3 pinine bağlayın
#define MotorL2 4 // L298N üzerindeki IN4 pinine bağlayın
#define MotorLenable 3// L298N üzerindeki enB pinine bağlayın
//Yukarıdaki kısımda motor pinlerini tanımladık.
long sure, uzaklik; //süre ve uzaklık adında iki değişken tanımlıyoruz.

void setup() {
  // ultrasonik sensör Trig pininden ses dalgaları gönderdiği için OUTPUT (Çıkış),
  // göndermiş olduğıu bu dalgaları Echo pini ile geri aldığı için INPUT yani (Giriş) olarak tanımlanır.
  pinMode(echoPin, INPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(MotorL1, OUTPUT);
  pinMode(MotorL2, OUTPUT);
  pinMode(MotorLenable, OUTPUT);
  pinMode(MotorR1, OUTPUT);
  pinMode(MotorR2, OUTPUT);
  pinMode(MotorRenable, OUTPUT);
  // yukarıdaki kısımda Motorlarımızı çıkış olarak tanımladık
  Serial.begin(9600);// 9600 baud rate üzerinden bir seri haberleşme başlattık
}

void loop() {
  digitalWrite(trigPin, LOW); //sensör pasif hale getirildi
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH); //Sensore ses dalgasının üretmesi için emir verildi
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW); //Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi
  sure = pulseIn(echoPin, HIGH); //ses dalgasının geri dönmesi için geçen sure ölçülüyor
  uzaklik = sure / 29.1 / 2; //ses dalgasının gidiş ve dönüşünden elde edilen süre uzaklık birimine çevriliyor
  Serial.println(uzaklik);

  if (uzaklik < 15) // Uzaklık 15'den küçük ise,
  {
    geri(); // 150 ms geri git
    // delay(150);
    delay(1000);
    sag(); // 250 ms sağa dön
    // delay(250);
    delay(1000);
  }
  else { // değil ise,
    ileri(); // ileri git
  }
}

void ileri() { // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  // analogWrite(MotorRenable, 250); // Sağ motorun hızı 150
  analogWrite(MotorRenable, 51); // Sağ motorun hızı 150
  digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  // analogWrite(MotorLenable, 250); // Sol motorun hızı 150
  analogWrite(MotorLenable, 51); // Sol motorun hızı 150
}

void sag() { // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(MotorRenable, 0); // Sağ motorun hızı 0 (Motor duruyor)
  digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
  // analogWrite(MotorLenable, 250); // Sol motorun hızı 150
  analogWrite(MotorLenable, 51); // Sol motorun hızı 150
}

void geri() { // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
  digitalWrite(MotorR2, HIGH); // Sağ motorun geri hareketi aktif
  // analogWrite(MotorRenable, 150); // Sağ motorun hızı 150
  analogWrite(MotorRenable, 51); // Sağ motorun hızı 150
  digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
  digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi aktif
  // analogWrite(MotorLenable, 150); // Sol motorun hızı 150
  analogWrite(MotorLenable, 51); // Sol motorun hızı 150
}

This file is for wokwi.com (the diagram.json tab)...

diagram.json
{
  "version": 1,
  "author": "Anonymous maker",
  "editor": "wokwi",
  "parts": [
    { "type": "wokwi-arduino-nano", "id": "nano", "top": -4.8, "left": -0.5, "attrs": {} },
    { "type": "wokwi-hc-sr04", "id": "ultrasonic1", "top": -123.3, "left": -128.9, "attrs": {} },
    {
      "type": "wokwi-led",
      "id": "led1",
      "top": -145.2,
      "left": 169.8,
      "rotate": 90,
      "attrs": { "color": "red" }
    },
    {
      "type": "wokwi-led",
      "id": "led2",
      "top": -87.6,
      "left": 169.8,
      "rotate": 90,
      "attrs": { "color": "red" }
    },
    {
      "type": "wokwi-led",
      "id": "led3",
      "top": -116.4,
      "left": 169.8,
      "rotate": 90,
      "attrs": { "color": "blue" }
    },
    {
      "type": "wokwi-led",
      "id": "led4",
      "top": -145.2,
      "left": 49.4,
      "rotate": 270,
      "attrs": { "color": "red", "flip": "1" }
    },
    {
      "type": "wokwi-led",
      "id": "led5",
      "top": -116.4,
      "left": 49.4,
      "rotate": 270,
      "attrs": { "color": "blue", "flip": "1" }
    },
    {
      "type": "wokwi-led",
      "id": "led6",
      "top": -87.6,
      "left": 49.4,
      "rotate": 270,
      "attrs": { "color": "red", "flip": "1" }
    }
  ],
  "connections": [
    [ "nano:5V", "ultrasonic1:VCC", "red", [ "v28.8", "h-163.2" ] ],
    [ "nano:GND.2", "led2:C", "black", [ "v0" ] ],
    [ "nano:GND.2", "led3:C", "black", [ "v0" ] ],
    [ "nano:GND.2", "led1:C", "black", [ "v0" ] ],
    [ "nano:GND.2", "led4:C", "black", [ "v0" ] ],
    [ "nano:GND.2", "led5:C", "black", [ "v0" ] ],
    [ "nano:GND.2", "led6:C", "black", [ "v0" ] ],
    [ "nano:7", "led1:A", "green", [ "v-28.8", "h67.2", "v-86.4" ] ],
    [ "nano:6", "led2:A", "green", [ "v-28.8", "h57.6", "v-28.8" ] ],
    [ "nano:9", "led3:A", "green", [ "v-28.8", "h86.4", "v-57.6" ] ],
    [ "nano:5", "led4:A", "green", [ "v-28.8", "h48", "v-28.8" ] ],
    [ "nano:4", "led6:A", "green", [ "v-28.8", "h38.4", "v-28.8" ] ],
    [ "nano:3", "led5:A", "green", [ "v-28.8", "h28.8", "v-57.6" ] ],
    [ "nano:GND.1", "ultrasonic1:GND", "black", [ "v38.4", "h-163.2" ] ],
    [ "nano:13", "ultrasonic1:TRIG", "green", [ "v19.2", "h-67.2" ] ],
    [ "nano:12", "ultrasonic1:ECHO", "green", [ "v-9.6", "h-57.6" ] ]
  ],
  "dependencies": {}
}

Inside your code, when the sensor reaches 15cm or less, your motors reverse for 1/7 second then turn right for 1/4 second, and repeat until the "15cm" obstacle is not in range, then the motors move forward.

Both 1/7 second (150ms) and 1/4 second (250ms) might be too short a duration for positioning. Try a smaller PWM (speed) and longer motor times (2000ms, 1000ms)

i cant i am not in line follow i do it later :smiley: Thank you! :slightly_smiling_face:

Hello @arduino_uno534 - For better communication, write in your natural language and let translate.google.com translate into English.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.