#include <SdFat.h> // import SdFat library
#include <Ultrasonic.h> // import Ultrasonic library
#define TRIG_PIN 9 // define TRIG pin as 9
#define ECHO_PIN 8 // define ECHO pin as 8
#define SD_DO 12 // define SD DO pin as 12
#define SD_SCK 13 // define SD SCK pin as 13
#define SD_DI 11 // define SD DI pin as 11
#define SD_CS 10 // define SD CS pin as 10
SdFat SD; // create SD object
Ultrasonic ultrasonic(TRIG_PIN, ECHO_PIN); // create ultrasonic object with TRIG and ECHO pins
int time = 10; // set time for measurement to 10 minutes (600 seconds)
int interval = 1; // set measurement interval to 1 second
void setup() {
Serial.begin(9600); // start serial communication
if (!SD.begin(SD_CS, SD_SCK_MHZ(50))) { // initialize SD card with clock speed of 50 MHz
Serial.println("Error initializing SD card!"); // print error message if initialization fails
return;
}
}
void loop() {
for (int i = 0; i < time; i++) { // for loop for measuring distance every second for 10 minutes
long distance = ultrasonic.distanceRead(); // measure distance using ultrasonic sensor
if (distance < 10) { // if distance is less than 10 cm
File dataFile = SD.open("data.txt", FILE_WRITE); // open file "data.txt" for writing
if (dataFile) { // if file is successfully opened
dataFile.println(distance); // write distance to file
dataFile.close(); // close file
}
else { // if file cannot be opened
Serial.println("Error opening file!"); // print error message
}
}
delay(interval * 1000); // delay for 1 second
}
}