Challenge

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

offline batch 2

MASTER ARDUINO CODE

#include  //LIBREARY FOR LCD display
#include   //libreay for I2C communication
LiquidCrystal lcd(12,11,2,3,4,5); //declaring lcd pins
void setup()
{

lcd.begin(16,2); //initialize lcd
lcd.setCursor(0,0); //set cursor @ 1st line
lcd.print("MASTER"); //print in lcd display
delay(1000); //wait for 1sec
lcd.setCursor(0,0); //set cursor @ 1st line
lcd.print("I2C PROTCOL ARDUINO TO ARDIUNO"); //print in lcd display
for (int i=0;i<=16;i++) //for loop for 16 times
{
lcd.scrollDisplayLeft(); // scroll lcd to right for display all letetr
delay(100); //slight delay
}
delay(2000); //wait for 2sec
lcd.clear(); //clear lcd
Serial.begin(9600); // initialize serial monitor
Wire.begin(); //initialize I2C communication
}

void loop()
{
Wire.requestFrom(8,1); //request 1 byte from ardiuno 8
byte masterreciever =Wire.read(); //read byte & store in varuable
int potvalue = analogRead(A0); //read analog data & store in variable
byte mastersend = map(potvalue,0,1023,0,127); //cenverting 10 bit analog data to 4 bit data
Wire.beginTransmission(8); //start transmission

Wire.write(mastersend); // send potvalue to slave
Wire.endTransmission(); //stop transmission
lcd.setCursor(0,0); //set cursor @ 1st line
lcd.print(" --MASTER--"); //print in lcd display
lcd.setCursor(0,1); //set cursor @ 2nd line
lcd.print("Slave DATA:"); //print in lcd display
lcd.print(masterreciever); //print in lcd display
Serial.println("Master recieved from Slave"); //print in serial monitor
Serial.println(masterreciever);
delay(500);
}

SLAVE ARDUINO CODE

// C++ code
//
#include //LIBREARY FOR LCD display
#include //libreay for I2C communication
LiquidCrystal lcd(12,11,5,4,3,2); //declaring lcd pins
byte slavereciever =0; //declaring variable for storing recieving data
void setup()
{
lcd.begin(16,2); //initialize lcd
lcd.setCursor(0,0); //set cursor @ 1st line
lcd.print("SLAVE"); //print in lcd display
delay(1000); //wait for 1sec
lcd.setCursor(0,0); //set cursor @ 1st line
lcd.print("I2C PROTOCOL ARDUINO to ARDIUNO"); //print in lcd display
for (int i=0;i<=16;i++)
{
lcd.scrollDisplayLeft(); // scroll lcd to right for display all letetr
delay(100);
}
delay(2000);
lcd.clear(); //clear lcd
Serial.begin(9600); // initialize serial monitor
Wire.begin(8); //initialize I2C communication
Wire.onReceive(recieveEvent); //function for recive from master
Wire.onRequest(requestEvent); //function for send to master

}

void loop(void)
{
lcd.setCursor(0,0); //set cursor @ 1st line
lcd.print(" --SLAVE--"); //print in lcd display
lcd.setCursor(0,1); //set cursor @ 2nd line
lcd.print("Master DATA:"); //print in lcd display
lcd.print(slavereciever); //print in lcd display
Serial.println("Master recieved from Slave"); //print in serial monitor
Serial.println(slavereciever); //print in serial monitor
delay(500);
lcd.clear();

}
void recieveEvent (int howmany) //defining recieveEvent functiom
{
slavereciever =Wire.read(); //read & store data
}
void requestEvent()
{
int potvalue = analogRead(A0); //storing analog data to variable
byte slavesend = map(potvalue,0,1023,0,127); //coverting 10 bit data to 4 bit
Wire.write(slavesend); // send potvalue to master
Serial.println("SLAVE recieved from MASTER"); //print in serial monitor
Serial.println(slavereciever); //print in serial monitor
delay(500);
}

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.