Project 1 - Interfacing a 16*2 LCD with Arduino using I2C protocol
Aim:
Overview of the Project:
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.
Goals:
Communication between Arduino and 16*2 LCD using I2C protocol.
Displaying the message sent by Master and received by slave i.e. LCD display.
Key Highlights of the Project:
Using the inter-integrated circuit communication protocol, transferring the data i.e. the message we want to display is sent to the LCD.
Two Arduino’s connected to the LCD display and the communication is executed using I2C protocol between Arduino and the LDC display.
Deliverables of this project:
Communication between the Arduino’s and LCD using I2C.
The message passed from master to slave and displayed on the 16*2 LCD.
- Expected Outcomes:
Students will get the Knowledge of I2C communication Protocol and the Arduino.
The Hardware connection of all components used in this project.
Displaying the message sent by master (Arduino) and received by the slave (16*2 LCD display).
Solutions:
Master code:
#include<LiquidCrystal.h> //Library for LCD display function
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Define LCD Module Pins (RS,EN,D4,D5,D6,D7)
int val1=A4;
int val2=A5;
void setup()
{
lccd.begin(16,2);
}
void loop()
{
lcd.setCursor(0,0); //Sets Cursor at line one of LCD
lcd.print(">> Master <<"); //Prints >> Master << at LCD
lcd.setCursor(0,1); //Sets Cursor at line two of LCD
lcd.Print("SlaveVal: 99"); //Prints SlaveVal: in LCD
LCD
delay(1000);
}
Slave Code:
#include <LiquidCrystal.h> //Library for LCD Display Function
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Define LCD
Module Pins(RS,EN,D4,D5,D6,D7)
int val1=A4;
int val2=A5;
void setup()
{
lcd.begin(16,2);
}
void loop()
{
lcd.setCursor(0,0); //Sets Cursor at line one of LCD
lcd.print(">> Slave <<"); //Prints >> Slave << at LCD
lcd.setCursor?(0,1); // Sets Cursor ar line two of LCD
lcd.print("MasterVal: 100"); //Prints MasterVal: in LCD
delay(1000);
}