#include <SPI.h>
#include <SD.h>
#include "HX711.h"
#include <Arduino.h>
File myFile;
const int LOADCELL_DOUT_PIN = 10;
const int LOADCELL_SCK_PIN = 9;
const int CS = 7;
float strain = 10;
bool SDFailed = true;
HX711 scale;
void WriteFile1(const char* path, unsigned long tiime, float strain1) {
// open file, append data, close file
myFile = SD.open(path, FILE_APPEND);
if (myFile) {
myFile.print(tiime);
myFile.print(",");
myFile.println(strain1, 5);
myFile.close();
}
else {
Serial.println("error opening file");
Serial.println(path);
}
}
void WriteFile2(const char* path, const char* message) {
// open file, append data, close file
myFile = SD.open(path, FILE_WRITE);
if (myFile) {
Serial.printf("Writing to %s ", path);
myFile.println(message);
myFile.close();
Serial.println("completed.");
}
else {
Serial.println("error opening file ");
Serial.println(path);
}
}
void ReadFile(const char* path) {
// open the file for reading:
myFile = SD.open(path);
if (myFile) {
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
} else {
Serial.println("error opening file");
Serial.println(path);
}
}
void setup() {
Serial.begin(115200);
delay(500);
while (!Serial) { ; }
Serial.println("Initializing SD card...");
if (!SD.begin(CS)) {
Serial.println("Initialization Failed!");
return;
}
Serial.println("Initialization Done.");
SDFailed = false;
WriteFile2("/test.txt", "Time,Mass");
ReadFile("/test.txt");
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(420);
scale.tare();
Serial.println("END SETUP.");
delay(250);
//scale.power_down();
}
void loop() {
// nothing happens after setup
if (!SDFailed) {
delay(1.0);
strain = scale.get_units();
Serial.println(strain);
WriteFile1("/test.txt", millis(), strain);
}
else {
delay(500);
Serial.print("SDCard OK?");
Serial.println(SDFailed);
}
//ReadFile("/test.txt");
}