Contrôler et varier éclairage de ma chambre avec une télécommande

Bonjour,
C'est bien tard que j'écrit ce sujet, en effet je l'ai résolu en Mars 2020

Tout d'abord je remercie les bénévoles de ce forum, qui m'ont aidé, et sans eux je serais pas à écrire ce post.

Le projet:
Mon projet était de pouvoir éteindre et allumer la lumière de ma chambre (flemmard que je suis), je me suis ensuite dit que autant rajouter une fonction en plus: faire varier la puissance de la lumière, ma commande de plusieurs boutons.

Le matériel:
-Arduino Uno avec son câble USB et tout autres câbles male-femelle et male-male
-RobotDyn AC Light Dimmer Module, 1 Channel, 3.3V/5V logic, AC 50/60hz, 220V/110V (bref un variateur de lumiere que je peux contrôler avec ma carte Arduino)
-Un récepteur infrarouge
-Le télécommande (Car MP3 infrarouge elle aussi)
-Le circuit électrique de mon ampoule

Le code :

//Voici mon code, les pins sont à adapter

#include <IRremote.h> //Librairie pour traiter l'infrarouge de la télécommande
#include <RBDdimmer.h> //Librairie pour les commandes du variateur de lumière
#define outputPin  6  //Pin du PWM sur le variateur
#define zerocross  11 //Pin du Z-C sur le variateur
dimmerLamp dimmer(outputPin);
long val; //

int RECV_PIN = 3; //pin du recepteur infrarouge
IRrecv irrecv(RECV_PIN); //Initialisation du recepteur infrarouge
decode_results results;


void setup() {
  dimmer.begin(NORMAL_MODE, ON); //Initialise le variateur
  dimmer.setState(ON); //Allume la lumière au début du programme
}
void loop() {
  if (irrecv.decode(&results) == 1)
  {
    val = results.value;
    irrecv.resume();
  }
  if (val == 0xFF6897) { //0
    dimmer.setState(OFF);
  }
  if (val == 0xFF30CF) {//1
    dimmer.setPower(10);
  }
  if (val == 0xFF18E7) {//2
    dimmer.setPower(20);
  }
  if (val == 0xFF7A85) {//3
    dimmer.setPower(30);
  }
  if (val == 0xFF10EF) {//4
    dimmer.setPower(40);
  }
  if (val == 0xFF38C7) {//5
    dimmer.setPower(50);
  }
  if (val == 0xFF5AA5) {//6
    dimmer.setPower(60);
  }
  if (val == 0xFF42BD) {//7
    dimmer.setPower(70);
  }
  if (val == 0xFF4AB5) {//8
    dimmer.setPower(80);
  }
  if (val == 0xFF52AD) {//9
    dimmer.setPower(90);
  }
  if (val == 0xFF9867) {//100+
    dimmer.setState(ON);
    dimmer.setPower(100);
  }

}

Branchements (schéma) :
Il est en fichier image

Voila, maintenant le principal :
Mon principal problème était un conflit entre la librairie de l'infrarouge (IRremote) et celle du variateur de lumière (RBDdimmer)
C'est bête, ce sont les deux seules librairies que j'utilise !
C'est la que ce forum m'a sauvé car trouver la ligne de code dans toute la librairie qui allait pas, n'étant pas spécialiste, j'y passerai des heures (j'ai d'ailleurs commencé par essayer de trouver moi même)
Voici la solution (je remercie encore les membres de ce forum) :
Il faut modifier la ligne 51 de cette ligne de code de la librairie RBDdimmer/src/avr/RBDmcuAVR.h
Au lieu de

#define DIMMER_TIMER 2

Il faut mettre

#define DIMMER_TIMER 1

Voila, la, ça marche !
Voici le lien du problème que j'ai eu avec toute la discussion et la résolution : https://forum.arduino.cc/index.php?topic=659688
Je rajouterai peut-être des fonctions (s'éteins après quelques minutes sans mouvement, voir même commander depuis son téléphone avec un module Bluetooth ou Wifi)
Voila c'était un bon gros projet pour moi qui m'a pris du temps, mais je suis arrivé au résultat voulu, et j'en suis bien content !
Merci encore a tout le monde !
Louis

Projet_lumiere_copie.ino (1.43 KB)

Bonjour et merci du retour!