nanoFramework.Iot.Device.Bh1745 1.0.288-preview.93

Prefix Reserved
This is a prerelease version of nanoFramework.Iot.Device.Bh1745.
There is a newer version of this package available.
See the version list below for details.
dotnet add package nanoFramework.Iot.Device.Bh1745 --version 1.0.288-preview.93                
NuGet\Install-Package nanoFramework.Iot.Device.Bh1745 -Version 1.0.288-preview.93                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="nanoFramework.Iot.Device.Bh1745" Version="1.0.288-preview.93" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add nanoFramework.Iot.Device.Bh1745 --version 1.0.288-preview.93                
#r "nuget: nanoFramework.Iot.Device.Bh1745, 1.0.288-preview.93"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install nanoFramework.Iot.Device.Bh1745 as a Cake Addin
#addin nuget:?package=nanoFramework.Iot.Device.Bh1745&version=1.0.288-preview.93&prerelease

// Install nanoFramework.Iot.Device.Bh1745 as a Cake Tool
#tool nuget:?package=nanoFramework.Iot.Device.Bh1745&version=1.0.288-preview.93&prerelease                

Bh1745 - RGB Sensor

The Bh1745 is a digital color sensor able to detect 3 distinct channels of light (red, green, blue) and is most suitable to obtain the illuminance and color temperature of ambient light. The device can detect light intensity in a range of 0.005 to 40 000 lux.

Documentation

Datasheet of the Bh1745

Usage

Important: make sure you properly setup the I2C pins especially for ESP32 before creating the I2cDevice, make sure you install the nanoFramework.Hardware.ESP32 nuget:

//////////////////////////////////////////////////////////////////////
// when connecting to an ESP32 device, need to configure the I2C GPIOs
// used for the bus
Configuration.SetPinFunction(21, DeviceFunction.I2C1_DATA);
Configuration.SetPinFunction(22, DeviceFunction.I2C1_CLOCK);

For other devices like STM32, please make sure you're using the preset pins for the I2C bus you want to use.

2 examples on how to use this device binding are available in the samples folder.

sensor

The quality of the color measurements is very reliant on the lighting. For accurate color readings it is advisable to calibrate the sensor on first use and to use it under stable lighting conditions.

Some breakout boards come with built in LEDs for this purpose (some of the API functionality may also have been repurposed to control these LEDs).

Basic usage:

using System;
using System.Device.I2c;
using System.Threading;
using Iot.Device.Bh1745;

// bus id on the MCU
const int busId = 1;

// create device
I2cConnectionSettings i2cSettings = new(busId, Bh1745.DefaultI2cAddress);
using I2cDevice i2cDevice = I2cDevice.Create(i2cSettings);
using Bh1745 i2cBh1745 = new Bh1745(i2cDevice);
// wait for first measurement
Thread.Sleep(i2cBh1745.MeasurementTimeAsTimeSpan());

while (true)
{
    var color = i2cBh1745.GetCompensatedColor();
    Debug.WriteLine("RGB color read: #{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B);
    Debug.WriteLine($"Raw illumination value: {i2cBh1745.ReadClearDataRegister()}");

    Thread.Sleep(i2cBh1745.MeasurementTimeAsTimeSpan());
}

Advance usage with configuration:

// bus id on the MCU
const int busId = 1;

// create device
var i2cSettings = new I2cConnectionSettings(busId, Bh1745.DefaultI2cAddress);
var i2cDevice = I2cDevice.Create(i2cSettings);

using Bh1745 i2cBh1745 = new Bh1745(i2cDevice)
{
    // multipliers affect the compensated values
    // ChannelCompensationMultipliers:  Red, Green, Blue, Clear
    ChannelCompensationMultipliers = new(2.5, 0.9, 1.9, 9.5),

    // set custom  measurement time
    MeasurementTime = MeasurementTime.Ms1280,

    // interrupt functionality is detailed in the datasheet
    // Reference: https://www.mouser.co.uk/datasheet/2/348/bh1745nuc-e-519994.pdf (page 13)
    LowerInterruptThreshold = 0xABFF,
    HigherInterruptThreshold = 0x0A10,

    LatchBehavior = LatchBehavior.LatchEachMeasurement,
    InterruptPersistence = InterruptPersistence.UpdateMeasurementEnd,
    InterruptIsEnabled = true,
};

// wait for first measurement
Thread.Sleep(i2cBh1745.MeasurementTimeAsTimeSpan());

while (true)
{
    var color = i2cBh1745.GetCompensatedColor();

    if (!i2cBh1745.ReadMeasurementIsValid())
    {
        Debug.WriteLine("Measurement was not valid!");
        continue;
    }

    Debug.WriteLine("RGB color read: #{0:X2}{1:X2}{2:X2}", color.R, color.G, color.B);
    Debug.WriteLine($"Raw illumination value: {i2cBh1745.ReadClearDataRegister()}");

    Thread.Sleep(i2cBh1745.MeasurementTimeAsTimeSpan());
}
Product Compatible and additional computed target framework versions.
.NET Framework net is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.639 74 9/6/2024
1.2.631 69 8/28/2024
1.2.613 85 8/9/2024
1.2.601 54 7/26/2024
1.2.590 73 7/17/2024
1.2.580 82 6/28/2024
1.2.573 93 6/19/2024
1.2.570 92 6/14/2024
1.2.560 90 5/29/2024
1.2.548 77 5/15/2024
1.2.536 92 4/15/2024
1.2.514 93 3/22/2024
1.2.494 92 2/28/2024
1.2.474 113 1/24/2024
1.2.462 137 1/5/2024
1.2.458 123 12/20/2023
1.2.436 146 11/10/2023
1.2.416 124 11/8/2023
1.2.403 117 10/6/2023
1.2.396 137 9/27/2023
1.2.384 137 9/6/2023
1.2.378 112 8/16/2023
1.2.369 136 8/2/2023
1.2.363 136 7/28/2023
1.2.357 144 7/19/2023
1.2.354 134 7/14/2023
1.2.345 118 6/21/2023
1.2.341 148 6/14/2023
1.2.337 130 6/7/2023
1.2.335 131 6/2/2023
1.2.329 142 5/26/2023
1.2.313 155 5/12/2023
1.2.308 152 5/11/2023
1.2.304 136 5/10/2023
1.2.302 119 5/10/2023
1.2.297 133 5/3/2023
1.2.273 214 3/17/2023
1.2.267 210 3/10/2023
1.2.263 235 3/8/2023
1.2.259 232 2/27/2023
1.2.256 254 2/24/2023
1.2.253 251 2/22/2023
1.2.236 255 2/13/2023
1.2.222 299 1/9/2023
1.2.217 294 1/6/2023
1.2.212 287 1/5/2023
1.2.208 316 1/3/2023
1.2.203 286 12/28/2022
1.2.159 368 11/14/2022
1.2.153 369 11/5/2022
1.2.141 385 10/25/2022
1.2.128 383 10/22/2022
1.2.122 448 10/12/2022
1.2.114 381 10/8/2022
1.2.95 442 9/22/2022
1.2.87 505 9/15/2022
1.2.73 415 9/8/2022
1.2.63 423 9/3/2022
1.2.47 402 8/15/2022
1.2.40 433 8/6/2022
1.2.38 431 8/5/2022
1.2.32 429 8/2/2022
1.2.28 437 8/1/2022
1.2.13 410 7/24/2022
1.2.10 406 7/23/2022
1.1.145.58726 444 7/7/2022
1.1.133.52556 425 6/30/2022
1.1.121.35854 467 6/26/2022
1.1.116.8772 421 6/24/2022
1.1.113.2032 409 6/23/2022
1.1.102.51394 425 6/15/2022
1.1.99.36719 440 6/14/2022
1.1.97.17326 443 6/13/2022
1.1.92.53000 434 6/8/2022
1.1.72.29765 426 5/31/2022
1.1.64.21380 437 5/26/2022
1.1.58.10097 454 5/23/2022
1.1.54.28879 462 5/23/2022
1.1.40 461 5/5/2022
1.1.3 478 4/15/2022
1.1.1 460 4/14/2022
1.0.300 451 3/31/2022
1.0.288-preview.114 118 3/25/2022
1.0.288-preview.113 112 3/25/2022
1.0.288-preview.110 105 3/25/2022
1.0.288-preview.104 103 3/22/2022
1.0.288-preview.103 106 3/21/2022
1.0.288-preview.100 108 3/19/2022
1.0.288-preview.99 119 3/18/2022
1.0.288-preview.98 111 3/18/2022
1.0.288-preview.93 109 3/15/2022
1.0.288-preview.86 115 3/8/2022
1.0.288-preview.77 115 2/27/2022
1.0.288-preview.75 112 2/26/2022
1.0.288-preview.65 111 2/18/2022
1.0.288-preview.63 108 2/16/2022
1.0.288-preview.61 120 2/12/2022
1.0.288-preview.58 113 2/10/2022
1.0.288-preview.53 105 2/9/2022
1.0.288-preview.48 129 2/4/2022
1.0.288-preview.41 122 1/31/2022
1.0.288-preview.29 128 1/28/2022
1.0.288-preview.22 123 1/27/2022
1.0.288-preview.20 127 1/27/2022
1.0.288-preview.19 127 1/27/2022
1.0.288-preview.18 125 1/27/2022
1.0.288-preview.5 131 1/24/2022
1.0.288-preview.3 124 1/21/2022
1.0.288-preview.1 127 1/21/2022
1.0.272 154 1/10/2022
1.0.270 278 1/6/2022
1.0.260 323 12/10/2021
1.0.259 314 12/9/2021
1.0.258 278 12/7/2021
1.0.218 196 10/18/2021
1.0.155 329 8/31/2021
1.0.136 232 7/17/2021
1.0.135 161 7/16/2021
1.0.134 166 7/15/2021
1.0.133 175 7/14/2021
1.0.130 156 7/6/2021
1.0.129 154 7/6/2021
1.0.125 189 7/5/2021
1.0.121 199 6/29/2021
1.0.119 220 6/28/2021
1.0.40 180 5/24/2021
1.0.23 210 5/21/2021