Aeduino Mega with Atmega88PA (serial communication)

Hi !..

I want to interface with Arduino mega with 3 numbers of Atmega88PA via serial link

Master-Mega
slave 1 -Atmega88PA-ID-A
slave 2-Atmega88PA-ID-B
slave 3-Atmega88PA-ID-C

Mega Send a Command (A,B,C) to all the slaves one by one, and it get data from corresponding slaves and it should be store in array.

I have written code for slave, its working good but i have trouble with master, pls guide me

/*
  Software serial multple serial test

 Receives from the two software serial ports,
 sends to the hardware serial port.

 In order to listen on a software port, you call port.listen().
 When using two software serial ports, you have to switch ports
 by listen()ing on each one in turn. Pick a logical time to switch
 ports, like the end of an expected transmission, or when the
 buffer is empty. This example switches ports when there is nothing
 more to read from a port

 The circuit:
 Two devices which communicate serially are needed.
 * First serial device's TX attached to digital pin 2, RX to pin 3
 * Second serial device's TX attached to digital pin 4, RX to pin 5

 Note:
 Not all pins on the Mega and Mega 2560 support change interrupts,
 so only the following can be used for RX:
 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

 Not all pins on the Leonardo support change interrupts,
 so only the following can be used for RX:
 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

 created 18 Apr. 2011
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's twoPortRXExample

 This example code is in the public domain.

 */

#include <SoftwareSerial.h>
// software serial #1: TX = digital pin 10, RX = digital pin 11
SoftwareSerial portOne(1, 0);

// software serial #2: TX = digital pin 8, RX = digital pin 9
// on the Mega, use other pins instead, since 8 and 9 don't work on the Mega


void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  // Start each software serial port
  portOne.begin(9600);
 // portTwo.begin(9600);
}

void loop() {
  // By default, the last intialized port is listening.
  // when you want to listen on a port, explicitly select it:
  portOne.listen();
  Serial.println("A");
  // while there is data coming in, read it
  // and send to the hardware serial port:
  while (portOne.available() > 0);
    
    char inByte = Serial.read();
    Serial.write(inByte);
    
  
  
   Serial.println();
  delay(300);
  
   portOne.listen();
  Serial.println("B");
  // while there is data coming in, read it
  // and send to the hardware serial port:
  while (portOne.available() > 0);
    
    char inByte = Serial.read();
    Serial.write(inByte);
    
  
  
   Serial.println();
  delay(300);
 
  portOne.listen();
  Serial.println("C");
  // while there is data coming in, read it
  // and send to the hardware serial port:
  while (portOne.available() > 0);
    
    char inByte = Serial.read();
    Serial.write(inByte);
    
  
  
   Serial.println();
  delay(300);
 
  

  // blank line to separate data from the two ports:
  
}

but i have trouble with master

That’s a shame.

pls guide me

Pls doesn’t mean squat. Please does.

The door’s that way.

Did you need help with something? Is that code for the slave or the master? How are the slaves connected to the master?

Why on Earth are you using SoftwareSerial on a Mega which has four HardwareSerial ports?

You make portOne use the same pins as Serial. No wonder you get trouble.

SoftwareSerial portOne(1, 0);

Just ditch SoftwareSerial and use Serial1, Serial2 and Serial3 to communicate with the slaves.