ご覧いただきありがとうございます。
子供のころからものづくりが好きな
50代のおじさんです。
「PICマイコン」を使った電子工作や、
「Unity」というゲームエンジンを使った
遊びについて書いています。
ものづくりで悪戦苦闘している様子を
見て行ってください。
もう10月ですね
朝晩は涼しくなってきたので
寝る時の冷房は
使わない日が続いています
指定した時間にスイッチを
ON/OFFさせたいので
RTCのアラーム機能を調べました
マニュアルに記載されている
アラームD機能
が使えそうです
セットした時刻になると
/INTA端子(3番ピン)の出力が
H → L に変わります
自分のためにポイントを残します
レジスタテーブルから必要なアドレスを定義
#define OLED_addr 0x3C OLEDのI2Cアドレス
#define RTC_addr 0x32 RTCのI2Cアドレス
#define SECOND 0x00
#define MINUTE 0x10
#define HOUR 0x20
#define DAY 0x30
#define DATE 0x40
#define MONTH 0x50
#define YEAR 0x60
#define ALM_D_M 0xB0
#define ALM_D_H 0xC0
#define CTL1 0xE0
#define CTL2 0xF0
「アラームD機能を使用するときは、まず始めに本DALEビットを”0”にして、機能を停止させてください。その次に 時,分,DAFGビットの設定をし、最後にDALEビットを”1”にしてアラームD機能を有効にします。」
との記載があるのでその手順をAlarm_set関数として定義↓
void Alarm_set(){
I2C_Write1ByteRegister(RTC_addr,CTL1,0x20);
I2C_Write1ByteRegister(RTC_addr,ALM_D_M,0x00);
I2C_Write1ByteRegister(RTC_addr,ALM_D_H,0x19);
I2C_Write1ByteRegister(RTC_addr,CTL2,0x01);
I2C_Write1ByteRegister(RTC_addr,CTL1,0x60);
}
次のステップとしては
サーボモーターを
アラーム設定した時間に
動かしてみよう
ではまた