nanoFramework.Iot.Device.Mcp3428
1.2.737
Prefix Reserved
dotnet add package nanoFramework.Iot.Device.Mcp3428 --version 1.2.737
NuGet\Install-Package nanoFramework.Iot.Device.Mcp3428 -Version 1.2.737
<PackageReference Include="nanoFramework.Iot.Device.Mcp3428" Version="1.2.737" />
paket add nanoFramework.Iot.Device.Mcp3428 --version 1.2.737
#r "nuget: nanoFramework.Iot.Device.Mcp3428, 1.2.737"
// Install nanoFramework.Iot.Device.Mcp3428 as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.Mcp3428&version=1.2.737 // Install nanoFramework.Iot.Device.Mcp3428 as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.Mcp3428&version=1.2.737
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.15.5)
- nanoFramework.System.Buffers.Binary.BinaryPrimitives (>= 1.2.699)
- nanoFramework.System.Device.I2c (>= 1.1.16)
- nanoFramework.System.Threading (>= 1.1.32)
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.737 | 35 | 1/13/2025 |
1.2.704 | 93 | 12/18/2024 |
1.2.696 | 98 | 12/16/2024 |
1.2.673 | 102 | 10/23/2024 |
1.2.631 | 109 | 8/28/2024 |
1.2.590 | 124 | 7/17/2024 |
1.2.570 | 116 | 6/14/2024 |
1.2.436 | 323 | 11/10/2023 |
1.2.416 | 132 | 11/8/2023 |
1.2.329 | 202 | 5/26/2023 |
1.2.313 | 159 | 5/12/2023 |
1.2.297 | 162 | 5/3/2023 |
1.2.212 | 322 | 1/5/2023 |
1.2.203 | 317 | 12/28/2022 |
1.2.159 | 390 | 11/14/2022 |
1.2.153 | 394 | 11/5/2022 |
1.2.141 | 409 | 10/25/2022 |
1.2.95 | 450 | 9/22/2022 |
1.2.87 | 522 | 9/15/2022 |
1.2.82 | 502 | 9/14/2022 |
1.1.116.8772 | 469 | 6/24/2022 |
1.1.113.2032 | 451 | 6/23/2022 |
1.1.97.17326 | 488 | 6/13/2022 |
1.1.92.53000 | 451 | 6/8/2022 |
1.1.58.10097 | 468 | 5/23/2022 |
1.1.3 | 469 | 4/15/2022 |
1.1.1 | 471 | 4/14/2022 |
1.0.300 | 500 | 3/31/2022 |
1.0.288-preview.114 | 134 | 3/25/2022 |
1.0.288-preview.113 | 122 | 3/25/2022 |
1.0.288-preview.104 | 117 | 3/22/2022 |
1.0.288-preview.100 | 126 | 3/19/2022 |
1.0.288-preview.98 | 129 | 3/18/2022 |
1.0.288-preview.93 | 125 | 3/15/2022 |
1.0.288-preview.65 | 132 | 2/18/2022 |
1.0.288-preview.48 | 144 | 2/4/2022 |
1.0.288-preview.42 | 139 | 1/31/2022 |
1.0.288-preview.29 | 139 | 1/28/2022 |
1.0.288-preview.22 | 136 | 1/27/2022 |
1.0.288-preview.20 | 143 | 1/27/2022 |
1.0.288-preview.18 | 141 | 1/27/2022 |
1.0.288-preview.1 | 142 | 1/21/2022 |
1.0.260 | 331 | 12/10/2021 |
1.0.259 | 326 | 12/9/2021 |
1.0.258 | 313 | 12/8/2021 |
1.0.189 | 434 | 9/25/2021 |
1.0.155 | 353 | 8/31/2021 |
1.0.138 | 390 | 7/18/2021 |
1.0.136 | 428 | 7/17/2021 |
1.0.135 | 178 | 7/16/2021 |
1.0.134 | 191 | 7/15/2021 |
1.0.133 | 214 | 7/14/2021 |
1.0.130 | 173 | 7/6/2021 |
1.0.125 | 220 | 7/5/2021 |
1.0.121 | 222 | 6/29/2021 |
1.0.119 | 239 | 6/28/2021 |
1.0.112 | 222 | 6/16/2021 |
1.0.105 | 296 | 5/29/2021 |
1.0.55 | 226 | 5/25/2021 |