我就是阳光 发表于 2013-9-8 20:43:42

想做一个检测到物体电机自动停转的程序


本人菜鸟,所以对这个语言方面还有诸多不熟悉的地方,就大神检查一下,这应该是个很简单的程序,我不知道哪不对,反正就是不工作。
代码如下:

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);
}
}

ChunYong 发表于 2013-9-9 13:27:15

真心没看懂

绿林网页 发表于 2013-9-9 18:54:58

这个编译过了?好像多个}吧

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]
查看完整版本: 想做一个检测到物体电机自动停转的程序