Go Down

Topic: SoftwareSerial et deuxième UART pour Arduino nano (Read 5395 times) previous topic - next topic

ptitnitro62000

#15
Jan 28, 2016, 07:31 pm Last Edit: Jan 28, 2016, 10:13 pm by ptitnitro62000
j'ai réalise le montage,  et mis tes codes....   c'est  une usine à gaz...

je vais tenter de réécrire un code ... et commencer par des échanges simple


https://www.arduino.cc/en/Tutorial/MasterWriter

https://www.arduino.cc/en/Tutorial/MasterReader


Il faudra que tu renseigne sur les caractéristiques de la librairie wire (qui gère l'I2C)!!!
parce que vouloir faire passer d'un coup 255 char,  alors que les échanges I2C sont limité à 30 octets !!!!

Concernant la librairie Softserial, elle intégré un buffer de 64 bytes (-2)  soit 62 caractères.
Arduino uno R3, Arduino Nano V3, Arduino Mega 2560, Arduino DUE, Shield Ethernet + Micro SD, Tiny RTC (DS1307+24c32) , module RTC ( module DS3231 + AT24C32) stater kit de base et plein d'autres trucs sympa ;-)

ptitnitro62000

code carte mega: (maitre)
Code: [Select]
char c;
#include <Wire.h>

void setup() {
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
    Serial.print("Hello demanrrage MEGA");
}

void loop() {
  Wire.requestFrom(8, 1);   

  while (Wire.available()) { // slave may send less than requested
    c = Wire.read(); // receive a byte as character
    Serial.print(c);         // print the character
  }

  delay(50);
  Wire.beginTransmission(8); // transmit to device #8
  Wire.write("char is ");        // sends five bytes
  Wire.write(c);              // sends one byte
  Wire.endTransmission();    // stop transmitting
  delay(50);
}


code carte nano: (esclave)
Code: [Select]
#include <Wire.h>
#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 4);

void setup() {
  Wire.begin(8);                // join i2c bus with address #8
  Wire.onRequest(requestEvent); // register event
  Wire.onReceive(receiveEvent); // register event
  Serial.begin(9600);           // start serial for output
  Serial.print("Hello demanrrage du nano");
  mySerial.begin(9600);
}

void loop() {
  delay(100);
}

void requestEvent() {
  byte c;
  if (mySerial.available())
  {
    c = mySerial.read();
  }
  else {
    c = 0;  //(Null char.)
  }
  Serial.print("Char :");
  Serial.println((char)(c));
  Wire.write(c);
}

void receiveEvent(int howMany) {
  while (1 < Wire.available()) { // loop through all but the last
    char d = Wire.read(); // receive byte as a character
    Serial.print(d);         // print the character
  }
  char e = Wire.read();    // receive byte as an integer
  Serial.println(e);         // print the integer
}
Arduino uno R3, Arduino Nano V3, Arduino Mega 2560, Arduino DUE, Shield Ethernet + Micro SD, Tiny RTC (DS1307+24c32) , module RTC ( module DS3231 + AT24C32) stater kit de base et plein d'autres trucs sympa ;-)

Go Up