使用標準 LCD 需要比較多的腳位,I2C LCD 可以減少我們腳位的使用。這個 I2C LCD 的特性如下:
- 16x2 LCD,藍底白字,有背光
- 走 I2C 介面,設備地址為 0x27
- 5V 供電,相容於 Arduino
參考上圖,接線方式為:
- SDA – 接 Arduino 的 Analog Pin 4
- SCL – 接 Arduino 的 Analog Pin 5
- GND – 接 GND
- VCC – 接 +5V
06 | LiquidCrystal_I2C lcd(0x27,16,2); |
14 | lcd.print( "Hello, world!" ); |
DHT-11 是一個結合濕度計和測溫元件量測週遭空氣環境,並與一個高性能8位元單晶片相連接,將所量測到的溫、濕度資料拆解成為數位訊號,再由 data pin腳將資料送出。使用上很簡單,但是抓取資料時必須要特別注意時間的掌控,而且每筆資料的抓取時間間隔要1~2秒鐘,不能太快。
規格如下:
1、濕度測量範圍:20~90%RH;
2、濕度測量精度:±5%RH;
3、溫度測量範圍:0~50℃
4、溫度測量精度:±2℃
5、電源供應範圍: 3~5V
6、頻率不可超過:0.5Hz (每2秒一次)
參考上圖,接線方式為:
- DAT – 接 Arduino 的 Analog A0
- GND – 接 GND
- VCC – 接 +5V
- #include
-
- #define dht_dpin A0//定義訊號要從Pin A0 進來
-
- dht DHT;
-
- void setup(){
- Serial.begin(9600);
- delay(300);
- Serial.println("Humidity and temperature\n\n");
- delay(700);
-
- }
-
- void loop(){
- DHT.read11(dht_dpin); //去library裡面找DHT.read11
- Serial.print("Humidity = ");
- Serial.print(DHT.humidity);
- Serial.print("% ");
- Serial.print("temperature = ");
- Serial.print(DHT.temperature);
- Serial.println("C ");
- delay(1000);
- }
HC-SR04 是一個超音波感測器,傳播速度會受溫度影響,溫度愈高,傳播速度愈快,可以探測的距離為 2cm-400cm,精度為 0.3 cm,感應角度為 15 度。
利用底下的公式算出物體距離(距離單位為公分,其中 timing 是測量得到的音波傳播時間):
timing / 29 / 2
超音速測距的原理,是透過arduino發出訊號給超音波模組,然後發射端就會發出超音波,當超音波打到東西再返回時,接收端收到訊號告訴arduino。arduino計算這兩者的時間差Δt,Δt再除以2,那個就是單程所費的時間。
音速的計算方式和溫度有關
c = 331.5 + 0.6 * [攝氏]
20°C的時候, c = 331.5 + 0.6 * 20 = 343.5 m/s
換算成每微秒(ųs)幾公分的話,那就是
c = 343.5 * 100 / 1000000 = 0.03435 cm/ųs
假設在20°C,arduino計算的時間差Δt為 250 ųs,那麼測距就是
250 * 0.03435 = 8.6 cm
超音波感測器主要應用在機器人或自走車避障、物體測距等。
HC-SR04 的接線方式很簡單,總共只有 4 支接腳。
參考上圖,接線方式為:
- Echo– 接 Arduino 的Pin7
- Trig – 接 Arduino 的Pin8
- GND – 接 GND
- VCC – 接 +5V
07 | Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN); |
17 | long microsec = ultrasonic.timing(); |
19 | cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); |
20 | inMsec = ultrasonic.convert(microsec, Ultrasonic::IN); |
22 | Serial.print(microsec); |
23 | Serial.print( ", CM: " ); |
25 | Serial.print( ", IN: " ); |
26 | Serial.println(inMsec); |
這支程式每秒鐘會測量一次物體距離,並且將音波傳播時間(單位為 microseconds, MS)、物體距離(分成公分與英吋兩種單位,分別以 CM 和 IN 表示)
最後可以考慮溫度對音波的影響,可另行撰寫程式來進行轉換。
參考上圖,接線方式為:
- S –--> 接 Arduino 的 pin13
- "-" –-> 接 GND
- 中間 –> 接 +5V
參考資料
http://coopermaa2nd.blogspot.tw/2012/09/i2c-16x2-lcd.html
http://ming-shian.blogspot.tw/2014/05/arduino19dht11.html
http://coopermaa2nd.blogspot.tw/2012/09/hc-sr04.html
http://a-chien.blogspot.tw/2012/10/arduino_8748.html
沒有留言:
張貼留言