超音波控制LED燈

今天介紹超音波模組,超音波模組的功能,可以偵測物體與超音波模組間的距離,在現實生活中倒車雷達就是例子,也可以用超音波模組製作成一個量身高的小專題,也可以自座迷宮車等等。
實驗目的:熟悉超音波模組使用方法。
實驗結果:當超音波距離物體小於10公分時讓LED燈亮起,其餘熄滅。



接下來介紹這次所要使用的材料

1.超音波HC-SR04

2.LED燈

3.麵包版

4.單心線

5.Arduino nano 



超音波模組拿海綿來測試是無法正常運作的,還有過近會有BUG最近不可低於3公分(實際測試可以到2.5公分)若是低於就會有誤差。



電路接法

超音波的接法可以先將Trigc和Echo先焊起來接下來Vcc(正)接Arduino 5V Gnd接Arduino 的Gnd
LED正接D8(其實接數位哪一隻腳都可以只是程式上有所差異),地接Arduino 的Gnd

程式碼https://drive.google.com/folderview?id=0B-z-UZB41PNbVVRNb1NTT08xZ28&usp=sharing
========================================================================

int ledPin5 = 5;                         //設定D5為LED的連接腳位

void setup()                             //只會執行一次
{pinMode(5, OUTPUT);                     //設定D5模式為輸出
Serial.begin(9600);                      //設定鮑率為9600
}

void loop()                              //在LOOP裡面的程式會一直重複執行
{  
    int a;                               //超音波變數
    a= Ping(8);                          //超音波變數(a)=副程式Ping(第八腳位)所計算的值
    Serial.println(a);                   //可以顯示在電腦上,使用放大鏡可以查看,在使用前必須設定鮑率

  if(a<100)                              //如果超音波小於10公分
   { analogWrite(5, 255);}               //D5輸出高電位
   else                                  //其他
      { analogWrite(5, 0);}              //D5輸出低電位      
  }


//------------------------超音波 副程式------------------------------------------
long Ping(long pingPin) { 
long duration, cm;                       //  宣告  超音波接收數值,轉換CM

pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
return cm = duration / 2.9 / 2;
}
//------------------ 結束 超音波 副程式--------------------------------------




========================================================================