Mise à jour le 20/10/2019 :Dans cet article ,nous allons traiter du principe du fonctionnement du module circulaire MR4131
Sommaire :
- Fonctionnement du disque MR4131.
- Fonctionnement MR4131 avec un potentiomètre
- Matériel nécessaire pour cette démonstration .
- Programme Arduino uno . Faire defiler les leds en fonction de la position du potentiometre .
- Video.Tutoriel sur le module circulaire MR 4131 .
- A savoir sur l’utilisation des informations sur le module MR4131D
- Pour tout problème
- Retour au menu tutoriel .
![]()
Fonctionnement du disque 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![]()
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
{
}
}
vidéo sur le module circulaire MR4131D |
.
.
Retour au sommaire![]()
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
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 .
.
Retour au sommaire
