Запись с Arduino времени и даты события на MicroSD
В этом примере используется инфракрасный датчик препятствий для обнаружения движения. определяется время события с помощию датчика времени RTC1307, а затем записывается время и дата события на катру MicroSD.
Модуль Arduino MicroSD использует шину SPI.
Arduino ID уже поставляется с библиотекой, позволяющей записывать на карту MicroSD.
Поэтому, когда на датчике возникает LOW, дата и время с модуля часов RTC1307 записывается на карту MicroSD.
![]() |
Схема подключения |
Модуль MicroSD использует шину SPI которая подключается к UNO:
SPI: 10 (CS), 11 (MOSI), 12 (MISO), 13 (SCK).
Модуль часов DS1307 используют шину I2C и подключается к UNO:
I2C: A4 (SDA) и A5 (SCL).
Датчик препятствий подключается к любому цифровому выводу
Для модуля времени DS1307 используется библиотека DSRTC1307
Также используется библиотека Wire.h для шины I2C.
Библиотеки Wire.h и SD.h для работы модуля MicroSD включены в пронрамму Arduino IDE
Все что нужно сделать необходимо установить модуль DS1307 для определениядаты и времени.
Далее выполняем команду “SetTime” из библиотеки DSRTC1307
Для тестирования необходимо установить библиотеки SD.h, Wire.h, Time.h, DS1307RTC.h.
Sketch code
#include <SD.h> // SD card libray
#include <Wire.h> // I2C
#include <Time.h> // Time Manipulation
#include <DS1307RTC.h> // DS1307 RTC
int irpin = 2; // IR sensor pin
char timedatebuf[65]; // Time and Date string buffer
int year4digit; // 4 digit year
void setup()
{
Serial.begin(9600); // Serial monitor used for testing
pinMode (irpin, INPUT);
Serial.print("Initializing SD card...");
pinMode(10, OUTPUT);
if (!SD.begin(10)) { // check if card is installed
Serial.println("No SD Card present in module");
return;
}
Serial.println("SD Card Ready");
}
void loop()
{
tmElements_t tm;
if (digitalRead (irpin) == LOW) // IR detected
{
if (RTC.read(tm)) { // Get Time/Date from RTC1307
year4digit = tm.Year + 1970; // 4 digit year variable
// Format Time & Date string in timedatebuf
sprintf(timedatebuf, "Time: %02d:%02d:%02d Date: %02d/%02d/%02d ---->INTRUDER DETECTED!!!",tm.Hour, tm.Minute, tm.Second, tm.Day, tm.Month, year4digit);
File dataFile = SD.open("intruder.txt", FILE_WRITE); // Open or Create file
if (dataFile) { // Check if file exist on SD Card
dataFile.println(timedatebuf);
dataFile.close(); // Close file
Serial.println(timedatebuf);
}
else {
Serial.println("error opening intruder.txt"); // if file not on SD Card
}
}
}
while (digitalRead (irpin) == LOW) { // wait until IR is HIGH again
}
delay(100); // delay to give time for IR to reset
}
Скачать библиотеку для RTC1307: DS1307RTC.zip
Скачать библиотеку Time : Time_library.zip
Скачать Программу: IR_MicroSD_Tutorial.zip
Рекомендуем:
Как подключить и управлять шаговым двигателем с ИК-пульта дистанционного управления
Отображения результатов на LCD-дисплее
Управление шаговым двигателем с помощью джойстика
Подключение и использование модуля реле с инфракрасным датчиком движения HC-SR501
Использование модуля DS1307 RTC
Использование пульта дистанционного управления в Arduino проекте
![]() |
![]() |