Arduino DS3231 + AT24C32 โมดูลนาฬิกา ใช้ได้ใน 3 นาที
Arduino DS3231 + AT24C32 โมดูลนาฬิกา ใช้ได้ใน 3 นาที
ต่อวงจรจากบอร์ด DS3231 -> Arduino Uno ตามนี้
- GND >> GND
- VCC>> +5V
- SDA>> A4
- SCL>>A5
โคด
// Date, Time and Alarm functions using a DS3231 RTC connected via I2C and Wire lib
#include "Wire.h"
#include "SPI.h" // not used here, but needed to prevent a RTClib compile error
#include "RTClib.h"
RTC_DS3231 RTC;
void setup () {
Serial.begin(9600);
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
}
DateTime now = RTC.now();
/* ตั้งเวลา ในตัวอย่างนี้ เซตค่าเป็นเวลา 23:09 ถ้าถึงเวลานี้จะให้ทำงานที่ฟังก์ชัน
RTC.setAlarm1Simple(23, 9);
if (RTC.checkIfAlarm(1)) {
Serial.println("Alarm Triggered");
}*/
RTC.setAlarm1Simple(23, 9);
RTC.turnOnAlarm(1);
if (RTC.checkAlarmEnabled(1)) {
Serial.println("Alarm Enabled");
}
}
void loop () {
DateTime now = RTC.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
if (RTC.checkIfAlarm(1)) {
Serial.println("Alarm Triggered");
}
Serial.println();
Serial.print("Tempeature = ");
Serial.print(RTC.getTemperature()); // คำสั่งดึงอุณหภูมิออกมาแสดง
Serial.println(" C");
Serial.println("By ArduinoALL");
Serial.println();
delay(1000);
}
โคดตัวอย่างนี้จะเป็นการตั้งค่าให้กับ RTC ถ้าเซคค่าแล้วให้เอา RTC.adjust(DateTime(__DATE__, __TIME__)); ออก แล้วอัพโหลดโคดใหม่ เพราะคำสั่งนี้จะตั้งค่าเวลาใหม่ทุกครั้งที่รันโปรแกรม
Serial.begin(9600);
Wire.begin();
RTC.begin();
Wire.begin();
RTC.begin();
//เมื่อตั้งเวลาแล้ว ใส่หมายเหตุคำสั่งตั้งเวลาไว้ แล้วอัพโหลดโคดใหม่ เวลาจะได้ถูกต้อง โคดตรงนี้
//RTC.adjust(DateTime(__DATE__, __TIME__));
ไม่มีความคิดเห็น:
แสดงความคิดเห็น