Project 1 - Interfacing a 16*2 LCD with Arduino using I2C protocol

//MASTER CODE
#include
#include
LiquidCrystal lcd (2,7,8,9,10,11); //DEFINE LCD DISPLAY MODULE PINS
void setup()
{
lcd.begin(16,2); //INITIALIZE LCD DISPLAY
lcd.setcursor(0,0);
lcd.print("skill lynch");
lcd.setcursor(0,1);
lcd.print("I2C ARDUINO 2 ARDUINO");
for (int i=0; i<16; i++) //FOR LOOP REPEATING 16 TIMES
{
lcd.scroll displayleft(); //SCROLL WHOLE SCREEN
delay(100);
}
delay(2000);
lcd.clear();
serial.begin(9600); //BAUD RATE
Wire.begin(); //I2C COMMUNCIATION (A4,A5)
}
void loop()
{
Wire.requestFrom(8,1); //REQUEST BYTE FROM SLAVE ARDUINO(8)
byte MasterReceive = wire.read(); //RECIVED FROM SLAVE AND STORE IN MASTER
int potvalue = analogRead(A0); //READ ANAOLOG VALUE
byte MasterSend = map (potvalue,0,1023,0,127);
Wire.beginTransmission(8); //TRANSMISSION TO SLAVE
Wire.write(MasterSend);
Wire.endTransmission(); //STOP TRANSMISSION
lcd.setcursor(0,0);
lcd.print(">>the master<<"); //PRINT "THE MASTER" IN LCD
lcd.setcursor(0,1);
lcd.print("slave val:"); //PRINT "SLAVE VAL" IN LCD
lcd.print(master receive);
serial.print(master received from slave);
serial.println(masterreceive);
delay(600);
}
lcd.clear();
}
//SLAVECODE
#include
#include
LiquidCrystal lcd(2,7,8,9,10,11); //DEFINE LCD MODULE PINS
byte slaveRecived = 0;
void setup()
{
lcd.begin(16,2); //INITIALIZING LCD DISPLAY
lcd.setcursor(0,0);
lcd.print("skill lync");
lcd.setcursor(0,1);
lcd.print("I2C 2 ARDUINO");
delay(5000); //DELAY FOR 5 SEC
lcd.clear();
serial.begin(9600); //BAUD RATE
Wire.begin(8); //BEGIN SLAVE ADDRESS AS 8 AT PIN (A4,A5)
Wire.onReceive(receiveEvent); // FUNCTION CALL (SLAVE RECEIVES VALUE FROM MASTER)
Wire.onRequest(requestEvent); // FUNCTION CALL (MASTER RECEIVES VALUE FROM SLAVE)
}
void loop(void)
{
lcd.setcursor(0,0);
lcd.print(">>the slave<<");
lcd.setcursor(0,1);
lcd.print("MasterVal");
lcd.print(SlaveRecived);
serial.println("Slave Received From Master"); //PRINT SERIAL MONITOR
serial.println(SlaveRecived);
delay(500);
lcd.clear();
}
void receive event (int howmany)
{
slave received = wire.read(); //READ VALUE RECEIVED FROM MASATER
}
void request event() //USED WHEN MASTER WANT VALUE FROM SLAVE
{
int potvalue = analogRead(AO);
byte slavesend = map (potvalue,0,1023,0,127);
wire.write(slave send);
}