Project 1 - Interfacing a 16*2 LCD with Arduino using I2C protocol
// code for MASTER
#include<Wire.h> // header declaring for wire I2c protocol
#include<LiquidCrystal.h> //header declaring for LCD
LiquidCrystal lcd(12,11,5,4,3,2); //Arduino port declaring for LCD Comm
void setup()
{
pinMode(A0, INPUT); //assigning a0 as analog
Serial.begin(9600); //braut rate
Wire.begin(); //I2c communation function start
lcd.begin(16,2); //LCD row and coulom declaring
}
void loop()
{
float value=analogRead(A0); //storing alarm analog value
signed int voltage=(value*5)/1024; //convarting analog value in to 10vit value
Wire.beginTransmission(1); //I2c wire transmission start
Wire.write(voltage); //sending the voltage value
Wire.endTransmission(); //wire transmission end
lcd.setCursor(0,0); //Cursor set postion
lcd.print("transmission"); //printing statement
lcd.setCursor(1,1); //Cursor set posation
lcd.print("MASTER"); //printing statement
delay(50);
}
//code for SLAVE
#include<Wire.h> // header declaring for wire I2c protocol
#include<LiquidCrystal.h> //header declaring for LCD
LiquidCrystal lcd(12,11,5,4,3,2); //Arduino port declaring for LCD Comm
void setup()
{
Serial.begin(9600); //braut rate
Wire.begin(1); //I2c communation function start
Wire.onReceive(cap); //reciving data on declared function
lcd.begin(16,2);
}
void loop()
{
}
void cap(int y) //function declared
{
signed int voltage=Wire.read(); //storing voltage value
lcd.setCursor(0,0); //assign cursor position
lcd.print("the voltage is"); //printing statement
lcd.print(voltage); //printing voltage value
lcd.setCursor(1,1); //assign cursor position
lcd.print("project complete"); //printing statememnt
delay(50);
}