Sensor

Sensor Temperatur MCP9808

Sensor Temperatur MCP9808 #

Berikut ini contoh program untuk membaca data temperatur dari sensor MCP9808 Jika alamat MCP9808 tidak diketahui atau dicurigai I2C tidak berfungsi, sebaiknya cek dulu menggunakan I2C Scanner

// sumber: https://github.com/adafruit/Adafruit_MCP9808_Library/blob/master/examples/mcp9808test/mcp9808test.ino

#define SDA 15  // sesuaikan dengan port yang dipakai untuk SDA dan SCL
#define SCL 13

#include <Wire.h>
#include "Adafruit_MCP9808.h"

// Create the MCP9808 temperature sensor object
Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();

void setup() {
  Wire.begin(SDA, SCL);
  Serial.begin(115200);
  while (!Serial)
    ;  //waits for serial terminal to be open, necessary in newer arduino boards.
  Serial.println("MCP9808 demo");

  // Make sure the sensor is found, you can also pass in a different i2c
  // address with tempsensor.begin(0x19) for example, also can be left in blank for default address use
  // Also there is a table with all addres possible for this sensor, you can connect multiple sensors
  // to the same i2c bus, just configure each sensor with a different address and define multiple objects for that
  //  A2 A1 A0 address
  //  0  0  0   0x18  this is the default address
  //  0  0  1   0x19
  //  0  1  0   0x1A
  //  0  1  1   0x1B
  //  1  0  0   0x1C
  //  1  0  1   0x1D
  //  1  1  0   0x1E
  //  1  1  1   0x1F
  if (!tempsensor.begin(0x18)) {
    Serial.println("Couldn't find MCP9808! Check your connections and verify the address is correct.");
    while (1)
      ;
  }

  Serial.println("Found MCP9808!");

  tempsensor.setResolution(3);  // sets the resolution mode of reading, the modes are defined in the table bellow:
  // Mode Resolution SampleTime
  //  0    0.5°C       30 ms
  //  1    0.25°C      65 ms
  //  2    0.125°C     130 ms
  //  3    0.0625°C    250 ms
}

void loop() {

  // Read and print out the temperature, also shows the resolution mode used for reading.
  Serial.print("Resolution in mode: ");
  Serial.println(tempsensor.getResolution());
  float c = tempsensor.readTempC();
  float f = tempsensor.readTempF();
  Serial.print("Temp: ");
  Serial.print(c, 4);
  Serial.print("*C\t and ");
  Serial.print(f, 4);
  Serial.println("*F.");
}

Referensi #

Sensor MPU6050

Modul MPU6050 #

Ulasan #

Modul ini menggunakan AP2112 sebagai regulator 5V ke 3,3V Dengan adanya regulator, seharusnya diberi tegangan VCC 5 volt tidak masalah. Namun dalam prakteknya beberapa artikel menggunakan VCC 3,3 volt. Regulator yang digunakan adalah tipe ’low drop out voltage (LDO)’. Regulator AP2112 memiliki drop tegangan 0,25 volt, yang nampaknya tidak terlalu masalah bagi modul ini. Tegangan output di I2C tidak terpengaruh karena I2C menggunakan pull up ke 3,3 volt.