View on GitHub

Capteur de luminosité ambiante TSL2561 (I²C)

Description de la classe TSL2561 développée en C# sous .NETMF 4.3 pour les cartes Netduino et FEZ (PANDA, COBRA...)

Download this project as a .zip file Download this project as a tar.gz file

Sommaire

  1. LE MATERIEL
    1. Le circuit intégré TSL2561: LIGHT-TO-DIGITAL CONVERTER
    2. Les cartes Netduino
    3. Les cartes FEZ
  2. LE LOGICIEL
    1. Contenu du répertoire proposé au téléchargement
    2. Le NuGet MicroToolsKit
    3. Le wiki .NetMF v4.3
    4. Description et utilisation de la classe TSL2561
  3. LES LIENS
    1. Exemples codés en C# pour les cartes Netduino et Fez (Panda 3, BrainPad)
    2. La page du projet MicroToolsKit

1. LE MATERIEL


1.1 Le circuit intégré TSL2561: LIGHT-TO-DIGITAL CONVERTER


Le capteur TSL2561 mesure la luminosité ambiante de 0,1 à 40000 Lux. Il communique avec un microcontrôleur via un bus I²C.

Ce capteur couvre la lumière visible et les infrarouges grâce à deux diodes. Cela signifie que vous pouvez mesurer séparément la lumière infrarouge, la lumière visible ou le spectre complet.


Modules TSL2561


Adafruit Grove
Documentation - Schéma Documentation - Schéma

1.2 Les cartes Netduino

Secret Labs

Netduino plus 2 Netduino 3 wifi
Netduino 3 Ethernet Netduino 3 wifi*

1.3 Les cartes FEZ

GHI Electonics (Extrait)

PANDA III COBRA III
PANDA III COBRA III* (compatible Gadgeteer)

2. LE LOGICIEL


2.1 Contenu du répertoire proposé au téléchargement

Le répertoire proposé au téléchargement (au format zip ou tar.gz) contient la solution TSL2561 composée :


2.2 Le NuGet MicroToolsKit

La dernière version compilée de la classe TSL2561 se situe dans la bibliothèque MicroToolsKit disponible sur nuget.org.

Organisation des classes contenues dans MicroToolsKit [lien]

Installer cette bibliothèque dans le projet simplifie l'utilisation de la classe.


2.3 Le wiki .NetMF v4.3


2.4 Description et utilisation de la classe TSL2561


Création d'un projet avec l'IDE Visual Studio

  1. Créer un nouveau projet en suivant la démarche décrite dans le chapitre "Premier programme en C# étape par étape" avec une carte Netduino ou avec une carte Fez (Panda 3, BrainPad, etc.). [lien]
  2. Utiliser le gestionnaire de paquets NuGet pour ajouter l'assembly MicroToolsKit (disponible sur nuget.org) dans le répertoire Références du projet.(clic droit sur Références dans le gestionnaire de solutions de Visual Studio puis Gérer les packages NuGet...)
  3. Ajouter l'espace de noms Microtoolskit.Hardware.Sensors dans l'en-tête du fichier source.
  4. Créer un objet en utilisant un des constructeurs TSL2561.
  5. Initialiser le circuit avec la méthode Init et les paramètres appropriés.
  6. Lire la luminosité ambiante avec la méthode CalculateLux

Constructeurs

Syntaxe Description
TSL2561() Instancie un objet "TSL2561".
Addresse SLA sur le bus I²C = 0x29.
Fréquence du signal SCL = 100kHz.
TSL2561( byte I2C_Add_7bits) Instancie un objet "TSL2561".
I2C_Add_7bits: à définir en fonction de l'état de la broche d'adresse (GND)0x29, (VDD)0x49, (FLOAT)0x69.
Fréquence du signal SCL = 100kHz.
TSL2561( byte I2C_Add_7bits, UInt16 Frequency) Instancie un objet "TSL2561".
I2C_Add_7bits: à définir en fonction de l'état de la broche d'adresse (GND)0x29, (VDD)0x49, (FLOAT)0x69.
Fréquence du signal SCL: à définir dans l'intervalle [100kHz,400kHz].

Enumérations

Syntaxe Description
Gain x1 : Fixe le gain à 1 (par défaut)
x16 : Fixe le gain à 16
IntegrationTime _13MS : 13,7ms (par défaut)
_101MS : 101ms
_402MS : 402ms

Propriétés

Syntaxe Description
Channel0 Retourne un mot de 16 bits non signé représentatif de la lumière ambiante.
Channel1 Retourne un mot de 16 bits non signé représentatif des infrarouges.
Control Retourne la valeur contenue dans le registre "CONTROL". Octet non signé.
id Retourne la valeur contenue dans le registre "ID".
Octet non signé:
- quartet de poids fort : (0)TSL2560 (1)TSL2561
- quartet de poids faible : valeur de l'identifiant du composant
interrupt Retourne une valeur représentative du réglage des interruptions. Octet non signé.
threshhighhigh Retourne ou fixe la valeur maximum du seuil haut de luminosité. Octet non signé.
threshhighLow Retourne ou fixe la valeur minimum du seuil haut de luminosité. Octet non signé.
threshLowhigh Retourne ou fixe la valeur maximum du seuil bas de luminosité. Octet non signé.
threshLowLow Retourne ou fixe la valeur minimum du seuil bas de luminosité. Octet non signé.
timing Retourne la valeur contenue dans le registre "TIMING". Octet non signé.

Méthodes

Syntaxe Description
float CalculateLux() Renvoi la mesure de la luminosité ambiante en Lux.
void Dispose() Libère le bus I²C.
void Init() Initialise le composant avec:
gain = 1 et
integrationTime = 13ms
void Init( Gain gain, IntegrationTime IT) Les paramètres gain et IT peuvent être réglés avec les valeurs des énumérations ci-dessus.