#include <SPI.h> // Voor de SPI-communicatie
#include <SD.h> // Voor het werken met de SD-kaart
const int chipSelect = 4; // Chip select pin voor de SD-kaartmodule
const int tempPin = A0; // De analoge pin waar de LM35 is aangesloten
File dataFile;
void setup() {
Serial.begin(9600); // Start de seriële communicatie op 9600 baud
while (!Serial) {
; // Wacht tot de seriële poort is verbonden. Nodig voor Leonardo alleen
}
Serial.print("Initialiseren van de SD-kaart...");
pinMode(SS, OUTPUT); // Zorg ervoor dat de standaard chip select pin is ingesteld als uitgang
if (!SD.begin(chipSelect)) { // Controleer of de SD-kaart aanwezig is en correct kan worden geïnitialiseerd
Serial.println("Kaart mislukt, of niet aanwezig");
while (1); // Stop met uitvoeren als de kaart niet kan worden geïnitialiseerd
}
Serial.println("Kaart geïnitialiseerd.");
// Open het bestand om naar te loggen
dataFile = SD.open("datalog.txt", FILE_WRITE);
if (!dataFile) {
Serial.println("Fout bij het openen van datalog.txt");
while (1); // Stop met uitvoeren als het bestand niet kan worden geopend
}
}
void loop() {
String dataString = ""; // Maak een string voor het samenstellen van de gegevens om te loggen
// Lees de temperatuur van de sensor en voeg toe aan de string
float temperature = getTemperature();
dataString += String(millis() / 1000); // Voeg de tijd in seconden toe
dataString += ",";
dataString += String(temperature); // Voeg de temperatuur toe
dataFile.println(dataString); // Schrijf de gegevens naar het bestand
Serial.println(dataString); // Print de gegevens naar de seriële monitor
dataFile.flush(); // Sla het bestand op de SD-kaart op na elke regel gegevens
delay(500); // Wacht 500 milliseconden voordat de volgende meting wordt uitgevoerd
}
float getTemperature() {
int sensorValue = analogRead(tempPin); // Lees de waarde van de sensor
float voltage = sensorValue * (5.0 / 1023.0); // Zet de analoge waarde om naar voltage
float temperature = voltage * 100; // Zet de voltage om naar temperatuur (LM35 geeft 10mV per graad C)
return temperature; // Retourneer de temperatuur
}