-3
我試圖創建一個距離控制的LED,在一定的距離關閉。我正在使用arduino Leonardo和距離傳感器。在我插入電路板的那一刻,LED保持長久不變,並且在距離縮短時不會關閉。請你能告訴我需要改變什麼才能使其工作?距離控制LED
const int TrigPin = 2;
const int EchoPin = 3;
float cm;
int ledPin = 12; //define ledPin12 is the output port of led’s level.
int val = 0; //define original of val.
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(ledPin, OUTPUT); //set ledPin output
}
void loop()
{
digitalWrite(TrigPin, LOW); //Low-high-low level sent a short time pulse to TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
cm = pulseIn(EchoPin, HIGH)/58.0; //Echo time converted into cm
cm = (int(cm * 100.0))/100.0; // retain two decimal places
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
val = analogRead(EchoPin); //get the value from sensor
if(val<=1)
{
//512=2.5V, if want the sensor be more sensitive, increase the number, or lese low the number.
digitalWrite(ledPin, HIGH); //when the value of val is less than 512(2.5V), light up led lamp
}
else
{
digitalWrite(ledPin, LOW);
}
}
的StackOverflow是不是一個調試器。你得到什麼錯誤?你使用常量值測試了你的邏輯嗎?爲什麼評論似乎不符合代碼? – 2014-11-14 23:01:57
它沒有給我任何錯誤,它只是沒有運作,因爲我會希望。 – 2014-11-14 23:14:20
pulseIn()和analogRead()做什麼?快速連續調用同一引腳是否有效? cm打印的輸出是什麼? – 2014-11-14 23:22:02