J'ai voulu tester une communication via les liaisons serie
Et là je bloque : >:(
Impossible de compiler si je veux utiliser serial1 sérial2 ou sérial3
Il me revoie ce message d'erreur
MultiSerialMega.cpp: In function 'void setup()':
MultiSerialMega:23: error: 'Serial1' was not declared in this scope
MultiSerialMega.cpp: In function 'void loop()':
MultiSerialMega:28: error: 'Serial1' was not declared in this scope
Après quelque recherche sur le net ils conseillent d'utiliser une autre librairie
newSoftwareSerial11
avec cette nouvelle librairie toujours impossible de compiler
et message d'erreur différent.
SoftwareSerialold\SoftwareSerial.cpp.o: In function SoftwareSerial::begin(long)': C:\arduino-0022\libraries\SoftwareSerialold/SoftwareSerial.cpp:46: multiple definition of SoftwareSerial::begin(long)'
SoftwareSerial\SoftwareSerial.cpp.o:C:\arduino-0022\libraries\SoftwareSerial/SoftwareSerial.cpp:378: first defined here
SoftwareSerialold\SoftwareSerial.cpp.o: In function SoftwareSerial::read()': C:\arduino-0022\libraries\SoftwareSerialold/SoftwareSerial.cpp:55: multiple definition of SoftwareSerial::read()'
SoftwareSerial\SoftwareSerial.cpp.o:C:\arduino-0022\libraries\SoftwareSerial/SoftwareSerial.cpp:424: first defined here
Si une personne à une idée je suis preneur
j'ai raté quelque chose ?
Il y a un problème de librairie ?
Impossible de compiler si je veux utiliser serial1 sérial2 ou sérial3
Il me revoie ce message d'erreur
MultiSerialMega.cpp: In function 'void setup()':
MultiSerialMega:23: error: 'Serial1' was not declared in this scope
MultiSerialMega.cpp: In function 'void loop()':
MultiSerialMega:28: error: 'Serial1' was not declared in this scope
Au risque de dire une anerie, ces instructions ne concernent pas uniquement les cartes Mega ???
Effectivement dans les commentaires il est ecrit "works only on the Arduino Mega" (Si les développeurs mettent des commentaires ce n'est pas pour rien)
/*
Mega multple serial test
Receives from the main serial port, sends to the others.
Receives from serial port 1, sends to the main serial (Serial 0).
This example works only on the Arduino Mega
The circuit:
Any serial device attached to Serial port 1
Serial monitor open on Serial port 0:
created 30 Dec. 2008
by Tom Igoe
This example code is in the public domain.
*/
void setup() {
// initialize both serial ports:
Serial.begin(9600);
Serial1.begin(9600);
}
void loop() {
// read from port 1, send to port 0:
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.print(inByte, BYTE);
}
}
Mais n'ayant rien trouvé de plus simple pour faire un premier test je pensais que ce code qui utilise uniquement des fonctions de base pourrait marcher avec un Duemilanove
Effectivement seule la mega posséde trois vrais port série. Il est cependant possible d'en créer des "logiciels" sur les autres carte avec les librairies adaptées.
Dommage que l' Arduino Duemilanove n'ai qu'un port physique
j'ai continué mes tests de communication et avec le code ci-dessous et la librairie NewSoftwareSerial
j'arrive maintenant à envoyer des caractères d'un PC vers un deuxième via hyper terminal et la carte Arduino.
//Test communication serie avec remplacement de la librairie SoftwareSerial par NewSoftwareSerial
// Arduino lecture sur pin 4
// Arduino renvoi sur pin 3
void setup()
{
// initialisation port 1
mySerial.begin(9600);
mySerial.flush(); //raz port.
// initilisation du port 2
mySerial2.begin(9600);
mySerial2.flush(); //raz port.
}
void loop() // run over and over again
{
if (mySerial2.available()) {
rx = mySerial2.read();
mySerial.print(rx, BYTE);
}
}
Tout est bien sauf le premier caractère envoyé après un upload ou un reset qui est erroné les suivants eux sont envoyés sans erreur ?????