有了溫度顯示,接下來想替控制器加上一個時間的控制,因為水族箱的燈光會需要用時間來控制,網路上有很多給 Arduino 使用的時間模組,因為LCD顯示器已經使用了 I2C的連法,所以我想找一塊時間模組也是用 I2C來連接,這時候的想法只是希望能多留一些 I/O 埠給其他用途,在網路上找到了這一塊:
這一塊除了提供時間也提供日期,上面而且有 3.3V的電池可以供電,但是需注意此塊模組上I2C的接頭排列位置和 Arduino Sensor Shield 4.0 上的排列方式是不一樣的,不能直接拿排線對接:
|
I2C 接頭腳位是不一樣的 |
接著當然是希望這一塊模組有現成的軟體可以用,很慶幸的是這一塊板子已有現成的
RTC-PCF8563 Library,下載程式庫後先用簡單的程式測一下是否可以驅動時間模塊,以下是
http://arduino.cc/playground/Main/RTC-PCF8563上的 Sample 程式:
#include <Wire.h>
#include <Rtc_Pcf8563.h>
//init the real time clock
Rtc_Pcf8563 rtc;
void setup()
{
// Serial begin 9600
Serial.begin(9600);
//clear out the registers
rtc.initClock();
//set a time to start with.
//day, weekday, month, century(1=1900, 0=2000), year(0-99)
rtc.setDate(14, 6, 3, 1, 10);
//hr, min, sec
rtc.setTime(1, 15, 0);
}
void loop()
{
//both format functions call the internal getTime() so that the
//formatted strings are at the current time/date.
Serial.print(rtc.formatTime());
Serial.print("\r\n");
Serial.print(rtc.formatDate());
Serial.print("\r\n");
delay(1000);
}
在 Serial Monitor 中監看執行後的結果:
再來就是把程式合併到魚缸的控制程式中,合併時間及溫度顯示到 LCD上:
線再發現另外一個問題了,顯示模組好像太小了一些,如果再要顯示酸鹼度就不知道應該擺在哪裡了。
留言
張貼留言
請多指教