Simple test¶
Ensure your device works with this simple test.
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
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
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
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
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