Soms willen we om de een of andere reden de temperatuur van een ruimte of apparaat meten. Dit kunnen we met een thermometer doen of als we ook iets willen schakelen met een ouderwets bimetaal. Nu kunnen we dit ook op een andere manier doen, er zijn chips waar een temperatuur sensor en I2C bus zijn ingebouwd.
Het 'Egel werkboek beschrijft al een aantal voorbeelden schakelingen met I2C, met dit artikel voeg ik er nog een aan toe. Ik gebruik hier de LM75CIM, deze chip heeft drie adres ingangen, waardoor we acht van deze temperatuur sensors op een I2C bus aan kunnen sluiten.
Iets over de LM75
De LM75 meet temperaturen met stapjes van een halve graad, het temperatuur bereik loopt van -55 tot +125 graden Celcius, de nauwkeurigheid is 2 graden Celcius. Er is een thermostaat uitgang waarvan we de boven- en ondergrens via de I2C bus in kunnen stellen en er is een configuratie register waarmee we de chip in diverse modes in kunnen stellen. De LM75 geeft de temperatuur als een 9-bits signed getal waar 0, nul graden is.
In dit voorbeeld gebruiken we maar een deel van de mogelijkheden van deze chip, van de temperatuur worden slechts 8-bits gebruikt.
Over de software
Omdat de chip opstart met het temperatuur register geselecteerd kan het voorbeeld uitermate simpel blijven. Er is een routine TEMPERATUUR gedefinieerd, die de metingen van acht verschillende LM75 sensors als 8 bits signed getal op de stack kan zetten. De code maakt gebruik van de bibliotheek file I2C-PRIM.FRT om de LM75 uit te lezen en bestaat uit slechts 12 regels tekst. De rest van de code definieert een simpele datalogger, die 30 monsters kan bewaren.
Het woord THERMOMETER laat de leds op het AT51 bord even flitsen bij het opstarten. Daarna komt hij in een eindeloze lus terecht waar 30 maal achter elkaar, elke twee seconden, de temperatuur gemeten wordt. Deze wordt opgeslagen in de array METINGEN en tegelijkertijd getoond op de leds. Na elke 30 monsters, wordt het gemiddelde daarvan uitgerekend en nog eens 15 seconden op de leds getoond. Daarna begint het bemonsteren van de temperatuur weer opnieuw.
| |