Module circulaire MR4131D initiation

.

Mise à jour le 20/10/2019 :Dans cet article ,nous allons traiter du principe du fonctionnement  du module circulaire MR4131

Sommaire :

.

separateur-redohm-001

Fonctionnement du disque MR4131

Pilotage du module MR4131

Pilotage du module MR4131

.

 

 

//
//
//
//####################################################################
//
// Programme : Pilotage des led du disque MR4131  
// Version 1.00
// Par :RedOhm Mazelin-H
//
// Connections:
// * BOARD -> ARDUINO
// * GND   -> GND
// * OE    -> 2
// * SDA   -> A4
// * SCL   -> A5
// * +5V   -> 5V
//
//  A savoir:
//  Module circulaire basé sur un PCA9635, comportant 16 Leds bleues possédant 
//  chacune 2 segments soit 32 segments au total.
//
//####################################################################### 


// Librairie constructeur 
#include <pca9635.h>
// je charge la bibliothèque qui nous permet de communiquer
// avec les composants utilisant le protocole I2C
#include <Wire.h>   // library used with I2C protocol

pca9635 PCA9635;


// ---------------------------------------------------------------------------
// Un programme Arduino doit impérativement contenir la fonction "setup"
// Elle ne sera exécutée une seule fois au démarrage du microcontroleur
// Elle sert à configurer globalement les entrées sorties
// ---------------------------------------------------------------------------

void setup() {
    // Déclare la pin de l'arduino en sortie ( la pin 2)
    pinMode(OEpin, OUTPUT);
    // je forçe ma sortie à zéro
    digitalWrite(OEpin, LOW);
    //Initialise la librairie Wire et se connecte au bus I2C en tant que maître 
    Wire.begin();
    //initialisation du module 
    PCA9635.initialize();

}

// ---------------------------------------------------------------------------
// Le programme principal s’exécute par une boucle infinie appelée Loop () 
// ---------------------------------------------------------------------------
void loop() {
    
    // detaillons une ligne de commande 
    // PCA9635.setBrightness cette fonction nous permet de valider
    // la led choisie dans notre exemple la led numero 0
    // PCA9635.setBrightness(PWM0,0);
    // et la valeur se trouvant derriere le numero de led PWM0 indique la 
    // valeur de la luminosité
    
       
    PCA9635.setBrightness(PWM0,255);
    PCA9635.setBrightness(PWM1,255);
    PCA9635.setBrightness(PWM2,0);
    PCA9635.setBrightness(PWM3,0);
    PCA9635.setBrightness(PWM4,0);
    PCA9635.setBrightness(PWM5,0);
    PCA9635.setBrightness(PWM6,0);
    PCA9635.setBrightness(PWM7,0);
    PCA9635.setBrightness(PWM8,0);
    PCA9635.setBrightness(PWM9,0);
    PCA9635.setBrightness(PWM10,0);
    PCA9635.setBrightness(PWM11,0);
    PCA9635.setBrightness(PWM12,0);
    PCA9635.setBrightness(PWM13,0);
    PCA9635.setBrightness(PWM14,0);
    PCA9635.setBrightness(PWM15,0);
    
    // Met le programme en pause pendant la durée (en millisecondes) spécifiée
    // en tant que paramètre.
    // dans notre exemple 2000 millisecondes daonc 2 secondes 
    delay(2000);
  

}

.

Retour au sommaire

.

separateur-redohm-001

Fonctionnement du disque MR4131 avec un potentiomètre

.

Matériel nécessaire pour cette démonstration .

1 carte arduino uno : La carte Arduino Uno est basée sur un ATMega328 cadencé à 16 MHz. C’est la plus récente et la plus économique carte à microcontrôleur d’Arduino. Des connecteurs situés sur les bords extérieurs du circuit imprimé permettent d’enficher une série de modules complémentaires.

1 Module Grove Base Shield 103030000 : Le module Grove Base Shield de Seeedstudio est une carte d’interface permettant de raccorder facilement, rapidement et sans soudure les capteurs et les actionneurs Grove de Seeedstudio sur une carte compatible Arduino. Il est compatible notamment avec les cartes Arduino Uno, Leonardo, Seeeduino, etc. Ce shield comporte un sélecteur le rendant compatible avec les microcontrôleurs 3,3 ou 5 Vcc.

Il est équipé de 16 connecteurs 4 broches dont 4 entrées analogiques, 7 entrées-sorties logiques, 4 interfaces I2C et 1 interface UART.

Brochage des connecteurs: GND – +Vcc – signal 2 – signal 1

 

Brochage de la carte Grove

.

1 Module potentiomètre Grove 101020048

Ce module potentiomètre compatible Grove délivre un signal analogique et est équipé d’une résistance de 10 kΩ idéale pour une utilisation avec les cartes Arduino ou compatibles.

Ce module se raccorde sur une entrée analogique du Grove Base Shield ou du Mega Shield via un câble 4 conducteurs . Il est similaire au COM22735P mais le connecteur est au dos du circuit pour pouvoir le placer sur une façade.

  • Interface : compatible Grove
  • Alimentation : 5 Vcc
  • Potentiomètre : 10 kΩ
  • Rotation : 300°
  • Dimensions : 20 x 20 x 30 mm
  • Référence Seeedstudio : 101020048 (remplace SEN11303P)

.

Programme Arduino uno . Faire defiler les leds en fonction de la position  du potentiometre 

.

//
//
//
//####################################################################
//
// Programme : Pilotage des led du disque MR4131  
// Version 1.00
// Par :RedOhm Mazelin-H
//
// Connections:
// * BOARD -> ARDUINO
// * GND   -> GND
// * OE    -> 2
// * SDA   -> A4
// * SCL   -> A5
// * +5V   -> 5V
//
// Objectif de ce programme : Faire defiler les leds en fonction de la position 
// du potentiometre 
//
//  A savoir:
//  Module circulaire basé sur un PCA9635, comportant 16 Leds bleues possédant 
//  chacune 2 segments soit 32 segments au total.
//
//####################################################################### 


// Librairie constructeur 
#include <pca9635.h>
// je charge la bibliothèque qui nous permet de communiquer
// avec les composants utilisant le protocole I2C
#include <Wire.h>   // library used with I2C protocol

pca9635 PCA9635;


// le potentiomètre, est branché sur la broche analogique 1
const int potar = 1 ;
// Variable pour stoker la valeur lue sur la broche analogique 1
int valeurlue ;


// ---------------------------------------------------------------------------
// Un programme Arduino doit impérativement contenir la fonction "setup"
// Elle ne sera exécutée une seule fois au démarrage du microcontroleur
// Elle sert à configurer globalement les entrées sorties
// ---------------------------------------------------------------------------

void setup() {

    // démarrage de la liaison série reglage de la vitesse à 9600 baud 
    Serial.begin(9600);
    // on attent que le port de communication soit pret
    while(!Serial); 

  
    // Déclare la pin de l'arduino en sortie ( la pin 2)
    pinMode(OEpin, OUTPUT);
    // je forçe ma sortie à zéro
    digitalWrite(OEpin, LOW);
    //Initialise la librairie Wire et se connecte au bus I2C en tant que maître 
    Wire.begin();
    //initialisation du module 
    PCA9635.initialize();
    // Forçage des valeurs des leds à 0 donc extinction des leds
    PCA9635.setBrightness(PWM0,0);
    PCA9635.setBrightness(PWM1,0);
    PCA9635.setBrightness(PWM2,0);
    PCA9635.setBrightness(PWM3,0);
    PCA9635.setBrightness(PWM4,0);
    PCA9635.setBrightness(PWM5,0);
    PCA9635.setBrightness(PWM6,0);
    PCA9635.setBrightness(PWM7,0);
    PCA9635.setBrightness(PWM8,0);
    PCA9635.setBrightness(PWM9,0);
    PCA9635.setBrightness(PWM10,0);
    PCA9635.setBrightness(PWM11,0);
    PCA9635.setBrightness(PWM12,0);
    PCA9635.setBrightness(PWM13,0);
    PCA9635.setBrightness(PWM14,0);
    PCA9635.setBrightness(PWM15,0); 



    

}

// ---------------------------------------------------------------------------
// Le programme principal s’exécute par une boucle infinie appelée Loop () 
// ---------------------------------------------------------------------------
void loop() {

    // Stockage de la valeur analogique dans la variable valeurlue
    valeurlue =  analogRead(potar);
    // on affiche la valeur lue sur la liaison série
    Serial.print("valeurlue = ");
    // affiche la valeur du potentiometre pour eventuellement deboguer 
    Serial.println(valeurlue);
    delay(20);
    
    // detaillons une ligne de commande 
    // PCA9635.setBrightness cette fonction nous permet de valider
    // la led choisie dans notre exemple la led numero 0
    // PCA9635.setBrightness(PWM0,0);
    // et la valeur se trouvant derriere le numero de led PWM0 indique la 
    // valeur de la luminosité

    if (( valeurlue > 0)&&(valeurlue <63))
    {
     PCA9635.setBrightness(PWM0,255);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);
    }
    else if (( valeurlue > 64)&&(valeurlue <127))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,255);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);
    }
    else if (( valeurlue > 127)&&(valeurlue <190))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,255);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);
    }
    else if (( valeurlue > 190)&&(valeurlue <253))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,255);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0); 
    }
    else if (( valeurlue > 253)&&(valeurlue <316))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,255);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0); 
    } 
    else if (( valeurlue > 316)&&(valeurlue <379))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,255);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);  
    } 
    else if (( valeurlue > 379)&&(valeurlue <442))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,255);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);      
    } 
    else if (( valeurlue > 442)&&(valeurlue <505))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,255);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);    
    } 
     else if (( valeurlue > 505)&&(valeurlue <568))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,255);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);
    }    
    else if (( valeurlue > 568)&&(valeurlue <631))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,255);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);          
    } 
    else if (( valeurlue > 631)&&(valeurlue <694))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,255);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);  
    }  
    else if (( valeurlue > 694)&&(valeurlue <767))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,255);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);      
    } 
    else if (( valeurlue > 767)&&(valeurlue <830))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,255);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);    
            
    } 
    else if (( valeurlue > 830)&&(valeurlue <893))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,255);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,0);    
    }
    else if (( valeurlue > 893)&&(valeurlue <956))
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,255);
     PCA9635.setBrightness(PWM15,0);        
    } 
    else if (( valeurlue > 956)&&(valeurlue <1023)) 
    {
     PCA9635.setBrightness(PWM0,0);
     PCA9635.setBrightness(PWM1,0);
     PCA9635.setBrightness(PWM2,0);
     PCA9635.setBrightness(PWM3,0);
     PCA9635.setBrightness(PWM4,0);
     PCA9635.setBrightness(PWM5,0);
     PCA9635.setBrightness(PWM6,0);
     PCA9635.setBrightness(PWM7,0);
     PCA9635.setBrightness(PWM8,0);
     PCA9635.setBrightness(PWM9,0);
     PCA9635.setBrightness(PWM10,0);
     PCA9635.setBrightness(PWM11,0);
     PCA9635.setBrightness(PWM12,0);
     PCA9635.setBrightness(PWM13,0);
     PCA9635.setBrightness(PWM14,0);
     PCA9635.setBrightness(PWM15,255); 
    }   
    else 
    {     
    }
    
   

}

 

.separateur-redohm-001

 vidéo sur  le module circulaire MR4131D

.

.

Retour au sommaire

.

separateur-redohm-001

A savoir sur l’utilisation des informations sur le module MR4131D 

Les informations sur les caractéristiques et spécificités du module  circulaire à leds bleues MR4131D qui sont fournis sur cette page correspondent  aux informations des fiches techniques du constructeur si malgré le soin apporté à la réalisation de cet article une erreur s’est glissée dans ces lignes nous ne pourrions en être tenu responsable.

Les programmes , schémas et autres que ceux donnés par le constructeur font parti des montages utiles à nos applications si malgré le soin apporté à nos montages une erreur s’est glissée dans ces lignes nous ne pourrions en être tenu responsable . 

L’ensemble des informations techniques de cet article a été utilisé pour nos applications, elles vous sont fournies comme un exemple de document de travail. Mais nous ne pourrions être tenu responsables d’une mauvaise utilisation de celle-ci.

.

Retour au sommaire

.

separateur-redohm-001

Pour tout probléme 

Pour tout problème de téléchargement ou pour nous suivre sur les réseaux sociaux voici les plateformes  sur lesquelles nous éditons.
Cliquez sur celle qui vous intéresse .

Facebook  Twitter  Youtube 

.

Retour au sommaire