top of page

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".

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);                                                 
}

bottom of page