0
我已經連接3個設備到我的Aruino Uno:伺服電機,LED和一個距離傳感器。現在,當距離10釐米或更小時,我的指示燈熄滅。當距離大於10cm時,我的指示燈正在工作,這很好。但是現在,當我添加伺服電機時,我需要等待環路完成後,我的距離傳感器才能將信號發送給我的LED。我怎樣才能解決這個問題 ?Arduino同時運行2個命令
#include <Servo.h>
int servoPin = 9;
const int trigPin = 7;
const int echoPin = 8;
int led = 13;
long duration, cm;
Servo servo;
int angle = 0;
void setup() {
// initialize serial communication:
Serial.begin(9600);
pinMode(led,OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(servoPin);
}
void loop()
{
if(afstandTotmuur() >= 10)
{
digitalWrite(led,HIGH);
}
else
{
digitalWrite(led,LOW);
}
for(angle = 0; angle < 180; angle++)
{
servo.write(angle);
delay(15);
}
}
long afstandTotmuur()
{
pinMode(trigPin, OUTPUT);
// digitalWrite(trigPin, LOW);
// delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// convert the time into a distance
cm = microsecondsToCentimeters(duration);
return cm;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds/29/2;
}
http://arduino.stackexchange.com/questions/286/how-can-i-create-multiple-running-threads – m0skit0
儘管更簡單的解決方案是將LED檢查移到for循環中。 – m0skit0
無法獲得伺服的當前位置? – McNets