實驗目的:熟悉超音波模組使用方法。
實驗結果:當超音波距離物體小於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; } //------------------ 結束 超音波 副程式--------------------------------------
========================================================================