Stap 3: Schoonmaken van de code van de DS3231
Voordat de DS3231 real timerklok en de DHT22 te combineren, is het beter alle regels die we niet nodig in het ds3231.ino bestand vroeger hebben te wissen.
Zoals gewoonlijk we bevestigd de code klaar voor gebruik, maar toch is het beter te begrijpen hoe het werkt.
Verwijderen van wat we niet nodig hebt
Open de DS3231-code en verwijder de lijnen van 3 tot en met 7:
// Convert normal decimal numbers to binary coded decimal byte decToBcd(byte val) { return( (val/10*16) + (val%10) ); }
Ze zijn niet meer nodig omdat getallen omzetten van decimaal naar binair alleen nuttig is wanneer je instelling datum en tijd bent.
Om dezelfde reden als hierboven, verwijder de lijnen van 17 tot en met 19, gelegen in de void setup functie...
Stel de eerste tijd hier: / / DS3231 seconden, minuten, uur, dag, datum, maand, jaar // set the initial time here: // DS3231 seconds, minutes, hours, day, date, month, year //setDS3231time(30,12,21,6,1,05,15);
.. en de lijnen van 21 tot en met 35:
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year) { // sets time and date data to DS3231 Wire.beginTransmission(DS3231_I2C_ADDRESS); Wire.write(0); // set next input to start at the seconds register Wire.write(decToBcd(second)); // set seconds Wire.write(decToBcd(minute)); // set minutes Wire.write(decToBcd(hour)); // set hours Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday) Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31) Wire.write(decToBcd(month)); // set month Wire.write(decToBcd(year)); // set year (0 to 99) Wire.endTransmission(); }
Het bestand ds3231_bis.ino bevat de verlichte code.