Simple test

Ensure your device works with this simple test.

examples/mcp9808_simpletest.py
import time
from machine import Pin, I2C
from micropython_mcp9808 import mcp9808

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mcp = mcp9808.MCP9808(i2c)

while True:
    print(f"Temperature: {mcp.temperature:.2f}°C")
    print()
    time.sleep(0.5)

Hysteresis settings

Example showing the Hysteresis setting

examples/mcp9808_hysteresis.py
import time
from machine import Pin, I2C
from micropython_mcp9808 import mcp9808

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mcp = mcp9808.MCP9808(i2c)

mcp.hysteresis = mcp9808.HYSTERESIS_0

while True:
    for hysteresis in mcp9808.hysteresis_values:
        print("Current Hysteresis setting: ", mcp.hysteresis)
        for _ in range(10):
            print(f"Temperature: {mcp.temperature:.2f}°C")
            print()
            time.sleep(0.5)
        mcp.hysteresis = hysteresis

Power mode settings

Example showing the Power mode setting

examples/mcp9808_power_mode.py
import time
from machine import Pin, I2C
from micropython_mcp9808 import mcp9808

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mcp = mcp9808.MCP9808(i2c)

mcp.power_mode = mcp9808.SHUTDOWN

while True:
    for power_mode in mcp9808.power_mode_values:
        print("Current Power mode setting: ", mcp.power_mode)
        for _ in range(10):
            print(f"Temperature: {mcp.temperature:.2f}°C")
            print()
            time.sleep(0.5)
        mcp.power_mode = power_mode

Temperature Limits

Example showing temperature limits

examples/mcp9808_temperature_limits.py
import time
from machine import Pin, I2C
from micropython_mcp9808 import mcp9808

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mcp = mcp9808.MCP9808(i2c)

mcp.temperature_lower = 10
mcp.temperature_upper = 25
mcp.temperature_critical = 35

while True:
    print(f"Temperature: {mcp.temperature:.2f}°C")
    print()
    alert_status = mcp.alert_status
    if alert_status.high_alert:
        print("Temperature above high set limit!")
    if alert_status.low_alert:
        print("Temperature below low set limit!")
    if alert_status.critical_alert:
        print("Temperature above critical set limit!")
    time.sleep(1)

Temperature resolution settings

Example showing the Temperature resolution setting

examples/mcp9808_temperature_resolution.py
import time
from machine import Pin, I2C
from micropython_mcp9808 import mcp9808

i2c = I2C(1, sda=Pin(2), scl=Pin(3))  # Correct I2C pins for RP2040
mcp = mcp9808.MCP9808(i2c)

mcp.temperature_resolution = mcp9808.RESOLUTION_0_625_C

while True:
    for temperature_resolution in mcp9808.temperature_resolution_values:
        print("Current Temperature resolution setting: ", mcp.temperature_resolution)
        for _ in range(10):
            print(f"Temperature: {mcp.temperature:.2f}°C")
            print()
            time.sleep(0.5)
        mcp.temperature_resolution = temperature_resolution