想做一个检测到物体电机自动停转的程序
本人菜鸟,所以对这个语言方面还有诸多不熟悉的地方,就大神检查一下,这应该是个很简单的程序,我不知道哪不对,反正就是不工作。
代码如下:
int yellowtrig = 8;
int blackecho = 9;
int distance = 0;
int motorPin1 = 3;
int motorPin2 = 4;
void setup(){
pinMode(yellowtrig, OUTPUT);
pinMode(blackecho, INPUT);
Serial.begin(9600);
}
void loop(){
{
digitalWrite(8,LOW);
delayMicroseconds(2);
digitalWrite(8,HIGH);
delayMicroseconds(10);
digitalWrite(8,LOW);
distance = pulseIn(9, HIGH);
distance = distance/58;
Serial.print(distance);
Serial.print("cm");
Serial.println(" ");
delay(1000);
}
if(distance <= 15){
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}else{
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
}
} 真心没看懂 这个编译过了?好像多个}吧
int TrigPin = 8;
int EchoPin = 9;
int motorPin1 = 3;
int motorPin2 = 4;
float distance = 0;
void setup(){
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.begin(9600);
}
void loop(){
distance=MeasuringDistance();
Serial.print(distance);
Serial.print("cm");
Serial.println(" ");
if(distance <= 15){
digitalWrite(motorPin1,LOW);
digitalWrite(motorPin2,LOW);
}
else{
digitalWrite(motorPin1,HIGH);
digitalWrite(motorPin2,LOW);
}
delay(1000);
}
long MeasuringDistance() {//测量距离 单位厘米
long duration;
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(5);
digitalWrite(TrigPin, LOW);
duration = (pulseIn(EchoPin, HIGH))/29/2;
return duration;
}
页:
[1]