Pages: [1]   Go Down
Author Topic: communication Sérial1  (Read 1534 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour à tous,

Je découvre Arduino Duemilanove (ATmega328)

Apres quelques test avec Arduino 0022

- Clignotement d'une led
- Commande par bouton poussoir
- serveur Web avec une carte ENC28J60

Pas de problème ça fontionne comme prévu  smiley

J'ai voulu tester une communication via les liaisons serie
Et là je bloque : >smiley-sad

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 ?

Merci d'avance pour votre aide.
Logged

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,

Quote
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 ???

A+
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir Bidouille,

Merci pour ta reponse rapide,

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) smiley-wink

Quote
/*
  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

Je continue mes investigation  smiley
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3755
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


0
Offline Offline
Newbie
*
Karma: 0
Posts: 3
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

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.  

Quote
//Test communication serie avec remplacement de la librairie SoftwareSerial par NewSoftwareSerial
// Arduino lecture sur pin 4
// Arduino renvoi sur pin 3

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3, true);
SoftwareSerial mySerial2(4, 5, true);

int rx=0;

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 ?????

Logged

Pages: [1]   Go Up
Jump to: