Démarrage difficile avec arduino

Forum dédié à tous les sujets sans liens avec DomoticZ.
Discuter de tout et de rien, c'est ici.
RaspOlivier
Messages : 129
Inscription : 10 déc. 2016, 09:40
Localisation : 44 - NANTES

Démarrage difficile avec arduino

Message par RaspOlivier »

Bonjour,
Dans le cadre de ma réalisation d'une sonnette connectée (https://easydomoticz.com/forum/viewtopi ... 815#p85815), j'essaye de réaliser le programme suivant issu du topic : https://easydomoticz.com/forum/viewtopi ... 620#p70620 afin de l'adapter :

Code : Tout sélectionner

#include <NewRemoteTransmitter.h>

int led = 13;

NewRemoteTransmitter transmitter(00000002, 2, 265, 1);

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

void loop()
{  

  // Envoi du signal

  transmitter.sendUnit(1, true);
  
  // Allumage de la led de diag, puis attente

  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(20000);

}
J'ai téléchargé la bibliothèque : NewRemoteTransmitter que j'ai dézippée ici :
C:\Program Files (x86)\Arduino\libraries\NewRemoteTransmitter

Je débute avec Arduino et le C mais j'ai cru comprendre que cela devrait suffire pour que ça fonctionne.

Lors de la vérification dans l'IDE Arduino (Arduino non connecté), j'ai les erreurs suivantes :

Code : Tout sélectionner

C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::_state'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::_minRepeats'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::_inCallback'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::_callback'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::interruptHandler()'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::_enabled'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::enable()'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::init(signed char, unsigned char, void (*)(unsigned int, unsigned long, unsigned long, unsigned long, unsigned long))'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::_interrupt'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::disable()'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::deinit()'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteReceiver.cpp.o (symbol from plugin): In function `NewRemoteReceiver::_state':
(.text+0x0): multiple definition of `NewRemoteReceiver::isReceiving(int)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteReceiver.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::_sendStartPulse()'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::_sendStopPulse()'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::_sendBit(bool)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::_sendAddress()'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::_sendUnit(unsigned char)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::sendGroup(bool)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::sendUnit(unsigned char, bool)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::sendDim(unsigned char, unsigned char)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\libraries\NewRemoteTransmitter\NewRemoteTransmitter.cpp.o (symbol from plugin): In function `NewRemoteTransmitter::NewRemoteTransmitter(unsigned long, unsigned char, unsigned int, unsigned char)':
(.text+0x0): multiple definition of `NewRemoteTransmitter::sendGroupDim(unsigned char)'
C:\Users\Olivier\AppData\Local\Temp\arduino_build_325035\sketch\NewRemoteTransmitter.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Utilisation de la bibliothèque NewRemoteTransmitter prise dans le dossier : C:\Program Files (x86)\Arduino\libraries\NewRemoteTransmitter (legacy)
exit status 1
Erreur de compilation pour la carte Arduino Nano
Mes compétences en la matière sont comme je le disais plus haut trop limitées pour l'instant et je suis stoppé dans mon étude.

Une idée d'erreur de débutant que j'ai dû commettre ?

Merci.
higgins91
Messages : 668
Inscription : 17 nov. 2016, 11:06

Re: Démarrage difficile avec arduino

Message par higgins91 »

pour installer une bibliothèque tu peux passer par le menu croquis -> inclure une biblio -> ajouter un ZIP
de cette façon la biblio est installée proprement !
Dz version : 2023.2
Rpi 4 avec dongle téléinfo, RFXCom, sondes 1-wire et GPIO
RaspOlivier
Messages : 129
Inscription : 10 déc. 2016, 09:40
Localisation : 44 - NANTES

Re: Démarrage difficile avec arduino

Message par RaspOlivier »

Bonjour et merci Higgins91,

Du coup, j'ai supprimé le répertoire que j'avais créé manuellement et suivi ta méthode, je n'ai plus d'erreur, je vais pouvoir avancer.

Le fait d'inclure la bibliothèque de cette façon m'a inséré un autre fichier : NewRemoteReceiver.h

Code : Tout sélectionner

#include <NewRemoteReceiver.h>
#include <NewRemoteTransmitter.h>

int led = 13;

NewRemoteTransmitter transmitter(00000002, 2, 265, 1);

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

void loop() {  

  // Envoi du signal
  transmitter.sendUnit(1, true);
  
  // Allumage de la led de diag, puis attente
  digitalWrite(led, HIGH);
  delay(500);
  digitalWrite(led, LOW);
  delay(20000);

}
J'ai commenté le include du NewRemoteReceiver.h, je ne pense pas que ce soit utile dans mon futur programme et en vérifiant avec l'IDE, je n'ai pas d'erreur.

Question subsidiaire à 100 balles :

J'ai suivi le cours sur le C d'Open Class Room qui est très bien fait(jusqu'à ce qu'on attaque la SDL, qui à besoin d'une MAJ).Ce que j'ai compris, c'est qu'on créait des .h, que le .c allait chercher pour l'inclure lors de la compilation.

Du coup je suis étonné de voir que quand on inclus des bibliothèques avec l'IDE Arduino, il faut inclure le .h (dans ma tête, je me dis que le programme en C que l'on écrit dans l'IDE et qu'on enregistre en .ino devrait plutôt avoir besoin du .c (qui est le programme principal?) qui lui même a besoin du .h (y'a pas vraiment de programme dans le .h, c'est plutôt pour des initialisations, non ?).
Répondre