Контур ультразвукового датчика с Arduino - контроль скорости двигателя - PullRequest
0 голосов
/ 30 апреля 2019

Я построил схему с Arduino, которая использует ультразвуковой датчик, чтобы определить, когда автомобиль находится рядом с объектом.Когда автомобиль достигает определенного расстояния, он меняет скорость двигателей и, в конце концов, останавливает автомобиль, прежде чем ударит по объекту.

У меня есть 3 условных выражения внутри, но я могу изменить скорость двигателя при достижении первого расстояния.Программа вводит оператор else if и может быть видна с последовательного монитора, но двигатели просто останавливаются, а не замедляются.Любая помощь будет принята с благодарностью.

// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);

// Calculating the distance
distance= duration*0.034/2;

safetyDistance = distance;
if (safetyDistance <= 5){
  digitalWrite(buzzer, HIGH);
  digitalWrite(ledPin, HIGH);
  digitalWrite(4, LOW);
  digitalWrite(3, LOW);


}

else if (safetyDistance > 5 && safetyDistance <= 50 ){
digitalWrite(buzzer, HIGH);
  digitalWrite(ledPin, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(3, LOW);
  analogWrite(2, 100);
  digitalWrite(6, HIGH);
  digitalWrite(5, LOW);
  analogWrite(7, 100);
  Serial.print("Warning , slow down ");  
}
else{
  digitalWrite(buzzer, LOW);
  digitalWrite(ledPin, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(3, LOW);
  analogWrite(2, 255);
  digitalWrite(6, HIGH);
  digitalWrite(5, LOW);
  analogWrite(7, 255);
}
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
}

Желаемым результатом является то, что скорость двигателя замедляется, когда расстояние меньше 50 и больше 5.

1 Ответ

0 голосов
/ 02 мая 2019

Автомобиль останавливается, потому что двигатели работают слишком медленно, и они испытывают статическое трение .

Если вы хотите двигать двигатели, вы можете:

  • увеличить напряжение для двигателей
  • увеличить мощность на максимальном уровне, используя один из двух приведенных ниже фрагментов кода (на несколько миллисекунд), а затем установить мощность двигателей на желаемом уровне (не слишком низком илиони не будут работатьбыло полезно
...