21. Temperature I2C

Mål: Att kunna kommunicera med en temperatursensor genom I2C (inter integrated circuit) protokollet.

Koppling: Enligt bilden. Observera 10k pullup motstånd.


Fritzing kopplingsschema

21 temperature i2c


Arduino koden

#include <Wire.h>      // inkludera biblioteket

int temp_address = 72; // sensor adress
void setup()
  {
    Serial.begin(9600); // aktivera serial kommunikationen
    Wire.begin();       // aktivera wire kommunikationen 
  }

void loop()
  {
    Wire.beginTransmission(temp_address); // inled kommunikationen
    Wire.write(0);                        // fråga efter register 0
    Wire.endTransmission();               // avsluta kommunikationen
    Wire.requestFrom(temp_address, 1);    // be om 1 byte
    while(Wire.available() ==0);          // invänta svaret
    int c = Wire.read();                  // spara värdet i en variabel

    Serial.println(c);    // skriv värdet i serial monitorn 
    delay(1000);          // vänta en sekund
  }

Temperatursensorn kan användas t.ex. för att styra en fläkt. Om temperaturen går över ett tröskelvärde så startas fläkten.

 

Leave a comment