2012年5月30日 星期三

水族箱控制器 : Arduino 首部曲

每次都在幫別人設計東西,今天決定為自己的魚缸設計個東西,國外的網站有很多人在作,好像還有賣整套的,趁有空,趕快找一下自己的零件,先找出自己之前 LCD 1602 的顯示模組,我好像也有現成的顯示程式,參考一下:Arduino 模擬 Modbus Slave

LCD 1602 (I2C 介面)
這次用 Arduino Duemilanove ATmega168,用這塊板子沒什麼特別理由,因為最先找到就是這一塊,再加上一塊 Arduino sensor shield 4.0:


然後又碰到工程師最怕的一件事,改版本從原來的 Arduio 0022 升級到 Arduino 1.0.1:

Arduino 1.0.1

結果原有舊的Libraries Compile 都會有 Error, 只好上LCD1602字符液晶显示器再下載新版的 Library,終於可以 Compile 完成,我先用DFROBOT原廠附的HelloWorld 來測試顯示模組,結果都不會顯示字元,原以為是 LCD 1602壞了,結果是自己糊塗了,忘了調整  Arduino sensor shield 4.0 上的 jumper:


調整 jumper 後 就可以看到 :


Hello World

接著就是要連接 DS18B20 1-wirw 設備,讀取溫度,這一段可以參考Arduino 溫度感應,不過這一次我沒有用麵包板,而是直接把電阻差在接頭上:


4.7K歐姆的電阻接在接頭上
1-wire 的 Library OneWire.zip 其中有一個 DS18x20_tempature 的 範例,Upload 程式並執行,從 Serial Port Monitor我們就會看到:

溫度的值收到且 Arduino 有發現DS18b20 ,再來應該就是把溫度送到 LCD 1602 上,這段程式主要是改 DS18B20 的 example 展現出來就是:


看來魚缸可以有自己的溫度顯示器了。