Challenge

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

Objective: In this project implementing the Code for “Interfacing a 16*2 LCD with two Arduino’s (one for Master and one for Slave) using Inter-Integrated Circuit (I2C) communication protocol” by sending the message to LCD using I2C communication protocol and display the message on LCD screen.

  • Communication between Arduino and 16*2 LCD using I2C protocol.
  • Displaying the message sent by Master and received by slave i.e, LCD display.

Circuit:

  1. In order to build the circuit for interfacing LCD display with two Arduino boards in master and slave configuration, I have used 2 Arduino Uno boards and two I2C LCD display's.
  2. First Analog pins A4 and A5 in Arduino are used for used for I2C communication. The digital pin 2 is connected to RS of LCD. Digital pin 3 connected to E of LCD.
  3. I connected the A5 pin of the first board with the A5 pin of the second board and the A4 pin of the first board with the A4 pin of the second board using two wires.
  4. I connected the ground of the first board with the ground of the second board through the Bread-board.
  5. The Digital pins 4, 5, 6, 7 are connected to DB4, DB5, DB6, DB7 of LCD. Input supply 5v and ground are connected to the LCD's and Breadboards from Arduino. The potentiometer's is used to turn ON and OFF the LCD's.
  6. With this, all the hardware connection were complete and the circuit was ready to be programmed.

Code:

Master Arduino:

#include<Wire.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd(2,3,4,5,6,7); //pins connected to LCD

char MasterReceive[16]; //String to get the message

void setup()

{

Serial.begin(9600);

Wire.begin(); //To begin I2C communication

lcd.begin(16,2);

lcd.clear();

}

void loop()

{

Wire.requestFrom(8,16);

lcd.setCursor(0,0);

lcd.print("MASTER"); //To print in display

lcd.setCursor(0,1);

int i=0;

while(0<Wire.available())

{

MasterReceive[i]=Wire.read(); //To print character by character

i++;

}

lcd.print(MasterReceive);

delay(1000);

Wire.end();

}

Slave Arduino:

#include<Wire.h>

#include<LiquidCrystal.h>

LiquidCrystal lcd(2,3,4,5,6,7);

void setup()

{

Serial.begin(9600);

Wire.begin(8); //To begin I2C communication

Wire.onRequest(send);

lcd.begin(16,2); //To start the LCD display

lcd.clear(); //To clear the display

}

void loop()

{

lcd.setCursor(0,0);

lcd.print("SLAVE"); //To display in LCD

lcd.setCursor(0,1);

lcd.println("Message sent "); //To display in LCD

}

void send()

{

char ch[17]="Slave Message ";

Wire.write(ch);

}

Conclusion:

Send the message from master to slave and display in the LCD through I2C protocol.

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.