MCP3008 I/O Expander¶
The Microchip Technology Inc. MCP3008 devices are successive approximation 10-bit Analogto-Digital (A/D) converters with on-board sample and hold circuitry.
MCP3008¶
The MCP3008 component allows you to use MCP3008 8-Channel 10-Bit A/D Converter (datasheet, Adafruit) in ESPHome. It uses the SPI Bus for communication.
Once configured, you can use any of the 8 pins as sensors for your projects.
Each pin will respond with a voltage calculated off of the reference_voltage (default is 3.3v). It calculates the voltage by multplying the reference_voltage * value on the pin (basically the percentage of VREF)
Most configurations will set the reference_voltage = VREF (pin 13 on the chip)
- If you want just the scaled value you can use the read_data function
float MCP3008::read_data(uint8_t pin)
# Example configuration entry
mcp3008:
cs_pin: D8
# Example config of sensors.
# This is a NTCB3950 10K thermocoupler attached to pin 0
# of the MCP3008 with a 10K resistor as a voltage divider.
# See `resistance` and `ntc` platorms for other options
sensor:
- platform: mcp3008 # Attached to pin 0 of the MCP3008.
reference_voltage: 3.19
update_interval: 1s
id: freezer_temp_source
number: 0 # MCP3008 pin number
- platform: resistance
id: freezer_resistance_sensor
sensor: freezer_temp_source
configuration: DOWNSTREAM
resistor: 10kOhm
- platform: ntc
id: freezer_temp
sensor: freezer_resistance_sensor
calibration:
b_constant: 3950
reference_temperature: 25°C
reference_resistance: 10kOhm
name: Freezer Temperature