nanoFramework.Iot.Device.Mcp3428
1.2.852
Prefix Reserved
dotnet add package nanoFramework.Iot.Device.Mcp3428 --version 1.2.852
NuGet\Install-Package nanoFramework.Iot.Device.Mcp3428 -Version 1.2.852
<PackageReference Include="nanoFramework.Iot.Device.Mcp3428" Version="1.2.852" />
paket add nanoFramework.Iot.Device.Mcp3428 --version 1.2.852
#r "nuget: nanoFramework.Iot.Device.Mcp3428, 1.2.852"
// Install nanoFramework.Iot.Device.Mcp3428 as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.Mcp3428&version=1.2.852 // Install nanoFramework.Iot.Device.Mcp3428 as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.Mcp3428&version=1.2.852
Mcp3428 - Analog to Digital Converter (I2C)
The library implements the Microchip MCP3428 16 bit A/D converter with I2C interface. It has hardware configurable I2C address and software configurable resolution and gain. Can work in continuous and on-demand conversion modes.
Documentation
"The MCP3426, MCP3427 and MCP3428 devices (MCP3426/7/8) are the low noise and high accuracy 16 Bit Delta-Sigma Analog-to-Digital (ΔΣ A/D) Converter family members of the MCP342X series from Microchip Technology Inc. These devices can convert analog inputs to digital codes with up to 16 bits of resolution." - Datasheet
The 3 devices differ only in addressing capability and channel number. The library implements all of them.
- MCP3428 datasheet
Board
Usage
Simple example for measuring LED forward voltage using the MCP3428 ADC and a MCU.
// I2C addres based on pin configuration
var addr = Mcp3428.AddressFromPins(PinState.Low, PinState.Low);
var options = new I2cConnectionSettings(1, addr);
using (var dev = new UnixI2cDevice(options))
using (var adc = new Mcp3428(dev, ModeEnum.OneShot, ResolutionEnum.Bit16, GainEnum.X1))
{
var ch1 = adc.ReadChannel(0);
Debug.WriteLine($"LED forward voltage value: {ch1} V");
}
On the MCP3428 you can select 8 different I2C addresses that the device answers on. It's done by connecting two pins, Adr0 and Adr1 to supply voltage or ground or leaving then floating. The library has a helper method to choose the address based on pin states.
With this instantiating the device and reading the first channel is done like this:
var options = new I2cConnectionSettings(1,
Mcp3428.AddressFromPins(PinState.Low, PinState.Floating));
using (var dev = new UnixI2cDevice(options))
using (var adc = new Mcp3428(dev)) // Default settings
{
var ch1 = adc.ReadChannel(0);
Debug.WriteLine($"ADC Channel value: {ch1} V");
}
The library provides an async API as reading with 16 bit resolution can take up to 60-80ms. It's in a separate class called Mcp3428Async
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.17.7)
- nanoFramework.System.Buffers.Binary.BinaryPrimitives (>= 1.2.848)
- nanoFramework.System.Device.I2c (>= 1.1.28)
- nanoFramework.System.Threading (>= 1.1.50)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.2.852 | 151 | 3/11/2025 |
1.2.829 | 95 | 2/27/2025 |
1.2.822 | 95 | 2/26/2025 |
1.2.775 | 92 | 2/4/2025 |
1.2.772 | 84 | 2/4/2025 |
1.2.755 | 96 | 1/31/2025 |
1.2.737 | 66 | 1/13/2025 |
1.2.704 | 98 | 12/18/2024 |
1.2.696 | 101 | 12/16/2024 |
1.2.673 | 107 | 10/23/2024 |
1.2.631 | 112 | 8/28/2024 |
1.2.590 | 124 | 7/17/2024 |
1.2.570 | 117 | 6/14/2024 |
1.2.436 | 324 | 11/10/2023 |
1.2.416 | 132 | 11/8/2023 |
1.2.329 | 206 | 5/26/2023 |
1.2.313 | 165 | 5/12/2023 |
1.2.297 | 169 | 5/3/2023 |
1.2.212 | 331 | 1/5/2023 |
1.2.203 | 326 | 12/28/2022 |
1.2.159 | 398 | 11/14/2022 |
1.2.153 | 402 | 11/5/2022 |
1.2.141 | 418 | 10/25/2022 |
1.2.95 | 460 | 9/22/2022 |
1.2.87 | 532 | 9/15/2022 |
1.2.82 | 512 | 9/14/2022 |
1.1.116.8772 | 479 | 6/24/2022 |
1.1.113.2032 | 462 | 6/23/2022 |
1.1.97.17326 | 499 | 6/13/2022 |
1.1.92.53000 | 461 | 6/8/2022 |
1.1.58.10097 | 480 | 5/23/2022 |
1.1.3 | 482 | 4/15/2022 |
1.1.1 | 483 | 4/14/2022 |
1.0.300 | 512 | 3/31/2022 |
1.0.288-preview.114 | 147 | 3/25/2022 |
1.0.288-preview.113 | 135 | 3/25/2022 |
1.0.288-preview.104 | 129 | 3/22/2022 |
1.0.288-preview.100 | 138 | 3/19/2022 |
1.0.288-preview.98 | 141 | 3/18/2022 |
1.0.288-preview.93 | 137 | 3/15/2022 |
1.0.288-preview.65 | 145 | 2/18/2022 |
1.0.288-preview.48 | 158 | 2/4/2022 |
1.0.288-preview.42 | 153 | 1/31/2022 |
1.0.288-preview.29 | 152 | 1/28/2022 |
1.0.288-preview.22 | 149 | 1/27/2022 |
1.0.288-preview.20 | 156 | 1/27/2022 |
1.0.288-preview.18 | 154 | 1/27/2022 |
1.0.288-preview.1 | 155 | 1/21/2022 |
1.0.260 | 345 | 12/10/2021 |
1.0.259 | 339 | 12/9/2021 |
1.0.258 | 326 | 12/8/2021 |
1.0.189 | 449 | 9/25/2021 |
1.0.155 | 367 | 8/31/2021 |
1.0.138 | 403 | 7/18/2021 |
1.0.136 | 440 | 7/17/2021 |
1.0.135 | 191 | 7/16/2021 |
1.0.134 | 203 | 7/15/2021 |
1.0.133 | 228 | 7/14/2021 |
1.0.130 | 187 | 7/6/2021 |
1.0.125 | 233 | 7/5/2021 |
1.0.121 | 235 | 6/29/2021 |
1.0.119 | 253 | 6/28/2021 |
1.0.112 | 236 | 6/16/2021 |
1.0.105 | 308 | 5/29/2021 |
1.0.55 | 239 | 5/25/2021 |