Stap 4: De code
De code is vrij eenvoudig en het is gemakkelijk te begrijpen.
Eerst omvatten benodigde bibliotheek en adres globale variabelen.
#include #include "rgb_lcd.h" #include #include const int pinTemp = A0; const int chipSelect = 4; float temperature; int B=3975; float resistance; rgb_lcd lcd;
Daarna is tijd om te bouwen van void setup.
Dit is nodig in elk programma.
In de setup is er begin voor de serie en voor het LCD-scherm. De SD-kaart is ook hier toegepast.
void setup(){ Serial.begin(115200); lcd.begin(16, 2); lcd.print("Temperature"); Serial.print("Start write to card.");
if (!SD.begin(chipSelect)) { Serial.println("No card or failure"); return; } Serial.println("Card found");
}
VOID adem variabele wordt hier gedaan. Deze heeft de mogelijkheid om de kleur te vervagen als deze verandert.
void breath(unsigned char color){
for (int i = 0; ik < 255; i ++) {lcd.setPWM(color, i); delay(5); for(int i=0; i<255; i++) { lcd.setPWM(color, i); delay(5); }
delay(500); for (int i = 254; ik > = 0; i--) {lcd.setPWM(color, i); delay(5); delay(500); for(int i=254; i>=0; i--) { lcd.setPWM(color, i); delay(5); }
}
VOID lus is ook nodig in een willekeurig programma.
Dit is waar het hele programma wordt in ingesteld. De lus betekent dat het programma voor altijd zal blijven.
void loop {als (temperatuur > 25) {breath(REG_RED); void loop(){ if (temperature >25){ breath(REG_RED); } if (temperature <25){ breath(REG_GREEN); } if (temperature <20) { breath(REG_BLUE); } lcd.setCursor(5,1); lcd.write(0b11011111); lcd.setCursor(6,1); lcd.print("C"); int val = analogRead(pinTemp); resistance=(float)(1023-val)*10000/val; temperature=1/(log(resistance/10000)/B+1/298.15)-273.15; Serial.println(temperature); lcd.setCursor(0,1); lcd.print(temperature); String dataString = ""; Als (temperatuur < 25) {breath(REG_GREEN); File dataFile = SD.open("Temperatures.txt", FILE_WRITE); Als (temperatuur < 20) {breath(REG_BLUE); if (dataFile) { dataFile.println(temperature); dataFile.close(); } else { Serial.println("error opening datalog.txt"); } }
Als (dataFile) {dataFile.println(temperature); dataFile.close();else {Serial.println ("fout bij openen datalog.txt");