Stap 5: Capacitieve bodem vocht meten: I2C-slave-code
De code om de sensor met I2C ziet er zo uit:
Het is belangrijk dat de Attiny op ten minste 8Mhz werkt.
Alle van het krediet voor de code kan ik nemen als ik gewoon één van de voorbeelden in de TinyWireS bibliotheek herwerkt.
Ik heb pulseIn gebruikt voor het meten van de pulselength. PulseIn is een commando dat wacht. Het is wellicht niet de beste beleid, maar het werkt. Als iemand een suggestie voor een betere code heeft, ben ik altijd geïnteresseerd om te horen dat.
Ten aanzien van de NTC, ik nu lees de waarde op de analoge poort, die worden toegewezen aan 1 byte en presenteren dat voor verdere verwerking. Natuurlijk is het ook possibe formule te gebruiken de Steinhart-Hart het herwerken tot een temperatuur in graden te zetten die in het register.
Als u bij benadering de temperatuur met th Steinhart-Hart formule youneed één van deze berekeningen
RNTC = Rseries/((1023/ADC)-1)); met een pull up weerstand
RNTC = Rseries*((1023/ADC)-1); / / met een pull-down weerstand zoals in dit circuit