LE MODULE ME DETECTEUR DE LUMIERE
Le module "Me Détecteur de lumière" comporte une phototransistor et la tension de sortie analogique de ce module est proportionnelle à la lumière qu'il reçoit. Les fonctions contenues dans la bibliothèque Makeblock sont :
-
MeLightSensor lumiere(PORT_X) où PORT_X est le port sur lequel est branché le module. Cette fonction permet de créer l'objet.
-
lumiere.read() renvoie la valeur du mot binaire proportionnelle à la quantité de lumière reçue.
Le tableau ci- dessous donne les ports des cartes "Me Orion" et "Me Auriga" pouvant être connectés au module "Me Adaptateur RJ25".
Exemple :
Nous souhaitons allumer les led d'un module "Me Led RGB" en fonction de la quantité de lumière reçue par un module "Me Détecteur de lumière".
Liste du matériel :
Programme :
/* Lumiere_Makeblock est un programme qui allume les 4 led du module "Me RGB LED" en fonction de la lumière captée par un module "Me Détecteur de lumière".*/
// #include "MeAuriga.h" // appel de la bibliothèque si carte Me Auriga
#include "MeOrion.h" // appel de la bibliothèque si carte Me Orion
MeRGBLed led(PORT_6); // création de l'objet led (module branché sur le PORT 6)
MeLightSensor lumiere(PORT_7); // création de l'objet lumiere (module branché sur le PORT 7)
int valeur;
void setup()
{
}
void loop()
{
valeur = lumiere.read();
if ((valeur>0)&&(valeur<=205))
{
for (int numero_led=0;numero_led<4;numero_led++) // allumage des 4 led du module
{
led.setColorAt(numero_led, 128, 0, 0);
led.show();
}
}
if ((valeur>205)&&(valeur<=410))
{
for (int numero_led=0;numero_led<3;numero_led++) // allumage de 3 led du module
{
led.setColorAt(numero_led,128, 0, 0);
led.show();
}
}
if ((valeur>410)&&(valeur<=615))
{
for (int numero_led=0;numero_led<2;numero_led++)
{
led.setColorAt(numero_led, 128, 0, 0); // allumage de 2 led
led.show();
}
}
if ((valeur>610)&&(valeur<=805))
{
for (int numero_led=0;numero_led<1;numero_led++) // allumage de 1 led
{
led.setColorAt(numero_led, 128, 0, 0);
led.show();
}
}
if (valeur>805)
{
for (int numero_led=0;numero_led<1;numero_led++) // extinction des led
{
led.setColorAt(numero_led, 0, 0, 0);
led.show();
}
}
delay(1000);
}