網頁文章 網頁文章

  const int pingPin = 8;

void setup() {
  Serial.begin(9600);
}
 
void loop()
{
  long duration, inches, cm;
  pinMode(11, OUTPUT);    //紅燈
  pinMode(12, OUTPUT);    //黃燈
  pinMode(13, OUTPUT);    //綠燈
 
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(5);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(pingPin, LOW);
 
  pinMode(7, INPUT);
  duration = pulseIn(7, HIGH);
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
 
if (cm <= 10)    //當距離不小於10也不大於10的時候,紅燈和黃燈都不會亮,因此加上一個等號彌補這個缺失
{  
  digitalWrite(11, HIGH);
}
  else
{
  digitalWrite(11, LOW);
}
  if (cm > 10 && cm < 20)
{  
  digitalWrite(12, HIGH);
}
  else
{
  digitalWrite(12, LOW);
}
  if (cm >= 20)    //當距離不小於20也不大於20的時候,黃燈和綠燈都不會亮,因此加上一個等號彌補這個缺失
{        
  digitalWrite(13, HIGH);
}
  else
{
  digitalWrite(13, LOW);
}
  delay(500);
}
  long microsecondsToInches(long microseconds)
{
  return microseconds / 74 / 2;
}
  long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}