今天要練習使用的東西是BMP085的大氣壓力量測晶片。
1. 首先介紹Sensor
BMP085是一種超低能耗的壓力感測器,採用的8-pin 陶瓷無引線晶片承載(LCC)超薄封裝,可以通過I2C匯流排直接與各種微處理器相連,因此我們接線時,除了供應電源&GND,再接上SDA和SCL兩個Pin腳,就可以把其數位的訊號帶進Arduino的板子裡了。其規格如下:
壓力範圍:30 ~ 110 kPa (海拔 9000 至-500公尺
電源電壓:1.8V ~ 3.6V
解析度為:6 Pa (0.5米)
含溫度輸出,同時也已做溫度補償
I²C介面
壓力範圍:30 ~ 110 kPa (海拔 9000 至-500公尺
電源電壓:1.8V ~ 3.6V
解析度為:6 Pa (0.5米)
含溫度輸出,同時也已做溫度補償
I²C介面
2. 特別說明一下I²C
I²C (Inter-Integrated Circuit)是一種串列通訊匯流排,使用多主從架構,由飛利浦公司在1980年代為了讓主機板、嵌入式系統用以連接低速週邊裝置而發展。I²C使用兩條雙向開放集極 (Open Drain),一條為資料線(SDA),另一條為時脈線(SCL)。I²C允許多主多僕系統,所以電氣上,SCL 和 SDA二線要透過高接電阻接於正電源。
I²C具有以下優點:
(1) 不需額外的解碼電路。
(2) 資料傳送的協定可以用軟體規劃,具有高度的彈性。
(3) 具有 I²C 匯流排無論從系統中移去或加入,都不會影響其他裝置的功能。
I²C具有以下優點:
(1) 不需額外的解碼電路。
(2) 資料傳送的協定可以用軟體規劃,具有高度的彈性。
(3) 具有 I²C 匯流排無論從系統中移去或加入,都不會影響其他裝置的功能。
(4) 匯流排是兩線式的匯流排,除錯、維修變得很容易。
但是它速度不快,只適合當 IC 間溝通的橋樑。通常用在一些簡單的系統或者晶片組 IC 間溝通(命令傳遞,不是資料傳遞)的場合看到她的影子。
3. 實際接線
所以說明一下SDA與SCL之後,我們就是把這兩條線接到BMP085對應的SDA與SCL上,記得不同種類的Arduino板子,其SDA與SCL的Pin腳位置是不一樣的。接法如下圖:
4. Code
這個Code有點複雜,我後來還是直接找別人寫好的過來看 Base from bildr.blog (下面有參考資料的來源),我把我看懂之後的註解寫上去,也增加自己的理解。