Erreur de compilation pour la carte Arduino/Genuino Uno

Bonjour,
Quand je fais verifier mon code, Arduino me met cette erreur : Erreur de compilation pour la carte Arduino/Genuino Uno

Voici le code :

#include <RBDdimmer.h>
#include <IRremote.h>

#define USE_SERIAL  Serial
#define outputPin  12
#define zerocross  5

dimmerLamp dimmer(outputPin);
int outVal = 0;

unsigned long IRCode = 0;
int IRpin = 10;
IRrecv irrecv(IRpin);
decode_results results;
unsigned long IRRequest ()
 {
  unsigned long IRResult = 0;
  if (irrecv.decode(&results))
     {
      IRResult = results.value;
      irrecv.resume();   // Receive the next value
     }
   return IRResult;
  }


void setup() {
  pinMode(IRpin, INPUT);
  irrecv.enableIRIn();

  dimmer.begin(NORMAL_MODE, ON);
  dimmer.toggleSettings(0, 100);
}

void loop() {
 
  if (IRRequest() == 16736813) {//ch
    delay(100);
    dimmer.setState(ON);
  }
  if (IRRequest() == 16738455) {//0
    delay(100);
    dimmer.setState(OFF);
  }
  if (IRRequest() == 16724175) {//1
    delay(100);
    dimmer.setPower(10);
  }
  if (IRRequest() == 16718055) {//2
    delay(100);
    dimmer.setPower(20);
  }
  if (IRRequest() == 16743045) {//3
    delay(100);
    dimmer.setPower(30);
  }
  if (IRRequest() == 16716015) {//4
    delay(100);
    dimmer.setPower(40);
  }
  if (IRRequest() == 16726223) {//5
    delay(100);
    dimmer.setPower(50);
  }
  if (IRRequest() == 16734885) {//6
    delay(100);
    dimmer.setPower(60);
  }
  if (IRRequest() == 16729533) {//7
    delay(100);
    dimmer.setPower(70);
  }
  if (IRRequest() == 16730805) {//8
    delay(100);
    dimmer.setPower(80);
  }
  if (IRRequest() == 16732845) {//9
    delay(100);
    dimmer.setPower(90);
  }
  if (IRRequest() == 16750695) {//100+
    delay(100);
    dimmer.setPower(100);
  }


}

Et voici le message d’erreur :

Arduino : 1.8.10 (Windows 10), Carte : "Arduino/Genuino Uno"

In file included from C:\Users\Louis\Documents\Projet_lumiere\Projet_lumiere.ino:1:0:

C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src/RBDdimmer.h:36:0: warning: "ALL_DIMMERS" redefined

 #define ALL_DIMMERS 30

 

In file included from C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src/RBDdimmer.h:7:0,

                 from C:\Users\Louis\Documents\Projet_lumiere\Projet_lumiere.ino:1:

C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src/avr/RBDmcuAVR.h:57:0: note: this is the location of the previous definition

 #define ALL_DIMMERS 13

 

In file included from C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src\avr\RBDmcuAVR.cpp:3:0:

C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src\avr\RBDmcuAVR.h:57:0: warning: "ALL_DIMMERS" redefined

 #define ALL_DIMMERS 13

 

In file included from C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src\avr\RBDmcuAVR.h:5:0,

                 from C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src\avr\RBDmcuAVR.cpp:3:

C:\Program Files (x86)\Arduino\libraries\RBDDimmer-master\src/RBDdimmer.h:36:0: note: this is the location of the previous definition

 #define ALL_DIMMERS 30

 

libraries\IRremote\IRremote.cpp.o (symbol from plugin): In function `MATCH(int, int)':

(.text+0x0): multiple definition of `__vector_7'

libraries\RBDDimmer-master\avr\RBDmcuAVR.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

Plusieurs bibliothèque trouvées pour "IRremote.h"
Utilisé : C:\Program
Plusieurs bibliothèque trouvées pour "RBDdimmer.h"
Utilisé : C:\Program
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Merci de votre aide !!!
Louis

multiple definition of `__vector_7'

C'est un conflit entre les deux bibliothèques que tu utilises, qui doivent utiliser les mêmes interruptions.

Si tu as vraiment besoin d'utiliser ces deux bibliothèques, il va falloir étudier leurs codes sources pour les modifier et les rendre compatibles.

Il serait plus simple de chercher à en remplacer une.

Bonjour,
Merci pour ton information mais je sais pas comment régler ce conflit et je n'ais pas d'autre bibliothèque (a moins que tu en ai d'autre pour une télécommande infrarouge ...)

Louis2530

RBDdimmer : cette librairie pourrait facilement être remplacée par un simple PWM.

analogWrite(pin, valeur);

valeur pouvant varier de 0 (0%) à 255 (100%).

Par contre tu ne dis pas ce qui est branché en pin 12 ?
Difficile d’être affirmatif.

J’ai essayé mais la puissance de la lampe ne varie pas en fonction des PMW !
A 0, elle s’éteins et a une valeur < a 0 elle est pleine puissance …
Avec l’autre librairies la ^puissance variait
Sinon merci pour l’idée !
Louis

Pour recevoir de l’aide, juste une suggestion : répondre aux questions.

Par contre tu ne dis pas ce qui est branché en pin 12 ?

Bonjour,
Désolé pour le retard,
J'ai donc supprimé l ligne decode qui deffinissait le pin 12 car ele servait effectivement a rien ...
Pour l'instant, ça marche très bien avec le PMW, c'est juste qu'il faut prendre une ampoule qui ne doit pas etre LED ...
Merci pour le conseil !
Louis

Pour l'instant, ça marche très bien avec le PMW, c'est juste qu'il faut prendre une ampoule qui ne doit pas etre LED ...

Hyper-étonnant !
Je fais couramment de la modulation PWM sur des LEDs.
Mais il faudrait que tu précises quel type de LED, et quelle résistance en série.

En fait, je reprend ce que j'ai dis désolé,
Je n'arrive pas a faire varier mon halogène avec le PWM
Si vous pouvez me dire concrètement quelle ampoule il faut mettre pour réussir a la faire varier ...
Merci a tous !
Louis

Au risque de me répéter :

Par contre tu ne dis pas ce qui est branché en pin 12 ?

Tu ne vas pas me dire que tu as branché un halogène directement sur D12 ?

Donc tu décris ton montage. Un dessin à main levée suffit.

D’autre part comme tu le remarqueras ici : analogWrite() - Arduino Reference

D12 n’est pas une sortie PWM.

Bon
J'ai un variateur de lumiere : https://robotdyn.com/ac-light-dimmer-module-1-channel-3-3v-5v-logic-ac-50-60hz-220v-110v.html

Qui est branché au courant d'un côté, à l'ampoule de l'autre ...
Il se contrôle avec une bibliothèque que je ne peu pas utiliser a cause de l’incompatibilité des biblios

Quand j'essaye de mettre une valeur en PWM entre 0 et 0.99 il s’éteint, de 1 à 255 il s'allume pleine puissance (j'utilise plus le programme de départ mais un programme qui met juste les valeurs)
J'ai essayé tout ça avec une ampoule halogène ...

J'utilise pas le zero cross du variateur ...

Louis2530:
Quand j’essaye de mettre une valeur en PWM entre 0 et 0.99 il s’éteint, de 1 à 255 il s’allume pleine puissance (j’utilise plus le programme de départ mais un programme qui met juste les valeurs)

Il faudrait que tu postes ton code, car je ne vois pas comment mettre une valeur décimale pour un PWM. Il faut un nombre entier…

Voici mon code :
}

void setup(){
   pinMode(3,OUTPUT);
}

void loop(){
   analogWrite(3,255);
   _loop();

Mais je crois la solution en apprenant qu’il y avait des ampoules spéciales pour variateurs et que les autres na marchaient pas, j’en achète une et je l’essaye, je vous tiens au courant, mais je ne pense pas être très rapide …
Merci

Je ne comprends pas ce code : est-ce qu'il compile ?
Moi je ferais :

void setup(){
   pinMode(3,OUTPUT);
}

void loop(){
   analogWrite(3,255);
}

Mais je ne peux pas affirmer que ça fera ce que tu cherches à faire...

Bonjour,
Désolé pour le retard,
Je retourne sur la solution d'avant qui est de verifier les deux librairies mais je n'ai pas réussi a trouver le probleme, bref si quelqu'un s'ennuie il peut toujours les verifier s'il le veut.
Merci de toute votre aide
Louis

Le lien de IRremote : http://www.teamrobobox.fr/DL/IRremote.rar
Le lien RBDdimmer : GitHub - RobotDynOfficial/RBDDimmer: The following library is used for work with dimmer, it gives ability to control large ammoun of dimmer. This lib uses with Leonardo, Mega, UNO, ESP8266, ESP32, Arduino M0, Arduino Zero, Arduino Due, STM32.

Là encore, il nous faut le code pour savoir comment ces bibliothèque sont utilisées

Le problème c'est que même si je fais un fichier blanc et que je fais que #include les deux bibliothèques, ça ne marche pas ...

Ok, poste le fichier blanc et les messages que tu obtiens (messages complets) qui te font dire que ça ne marche pas… Moi je ne sais pas ce que ça veut dire “ça ne marche pas”

Voici le fichier blanc :

#include <IRremote.h>
#include <RBDdimmer.h>

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

Et l’erreur :

Arduino : 1.8.10 (Windows 10), Carte : "Arduino/Genuino Uno"

libraries\RBDDimmer-master\avr\RBDmcuAVR.cpp.o (symbol from plugin): In function `dimmerLamp::dimmerLamp(int)':

(.text+0x0): multiple definition of `__vector_7'

libraries\IRremote\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

Plusieurs bibliothèque trouvées pour "IRremote.h"
Utilisé : C:\Program
Plusieurs bibliothèque trouvées pour "RBDdimmer.h"
Utilisé : C:\Program
exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.