Temperatur och ljussensor datalogger (3 / 4 steg)
Steg 3: kod
/*
** MOSI - stift 11
** MISO - pin 12
** CLK - stift 13
** CS - stift 4
*/
#include
#include
#define PhotoresistorPin 2
#define TempPin 3
CONST int chipSelect = 4;
Snöre arkivnamnen = "DataLog.txt";
långa int LastLog;
void setup()
{
Serial.BEGIN(9600);
pinMode (TempPin, indata);
pinMode (PhotoresistorPin, indata);
pinMode (13, OUTPUT);
Serial.Print ("initiera SD-kortet...");
se till att den standard chip välja stiftet är inställd
utgång, även om du inte använder det:
pinMode (10, OUTPUT);
se om kortet är närvarande och kan initieras:
IF (!. SD.begin(chipSelect)) {
Serial.println ("kort misslyckades, eller inte finns");
vänder på ombord ledde till signalerar att något är fel
digitalWrite(13,HIGH);
inte göra något mer:
hemkomst.
}
Serial.Print ("kort initierats.");
}
void loop()
{
förseningar 10 minuter
medan (LastLog + 600000 > millis()) {
Delay(1000);
}
int PhotoResistance = GetPhotoresistence();
flyta Temparature = GetTemperature();
LogData (PhotoResistance, Temparature);
}
void LogData (int motstånd, int Temparature) {
filen du redigera
Fil dataFile;
dataFile = SD.open (filnamn, FILE_WRITE);
dataFile.print ("minuter kör:");
dataFile.print(millis() / 60000);
dataFile.print ("fotomotstånd:");
dataFile.print(Resistance);
dataFile.print ("Temparature:");
dataFile.print(Temparature);
dataFile.println("C");
dataFile.close();
LastLog = millis();
}
GetTemperature() {float
flyta temperatur = analogRead(TempPin);
Temperatur = temperatur * 0.48828125;
Delay(1000);
returnera temperatur;
}
int GetPhotoresistence() {
int Photoresistence = analogRead(PhotoresistorPin);
återvända Photoresistence;
}