Project 1 - Interfacing a 16*2 LCD with Arduino using I2C protocol
// I2C MASTER CODE
//Communication between two arduino
#include<wire.h
#include<Liquidcrystal.h>
Liquidcrystal lcd(2,7,8,9,10,11);
void setup()
{
led.begin(16,2);
led.setCursor(0,0);
led.print("skill lync");
led.setCursor(0,1);
led.print("I2C ARDUNIO 2 ARDUNIO");
for(int i=0;i<16;i++)
{
led.scrollDisplayLeft();
delay(100);
}
delay(2000);
led.clear();
serial.begin(9600);
wire.begin();
}
void loop()
{
Wire.requestFrom(8,1);
byte MasterReceive = Wire.read();
int potvalue = analogRead(AO);
byte MasterSend = map(potvalue,0,1023,0,127);
Wire.beginTransmission(8);
Wire.Write(MasterSend);
Wire.endTransmission();
led.setCursor(0,0);
led.print(">> the master <<");
led.setCursor(0,1);
led.print("SlaveVal:");
led.print(MasterReceive);
Serial.println("Master Received From Slave");
delay(500);
}
//I2C Slave code
//I2C Comunication between Two Ardunio
#include<wire.h>
#include<LiquidCrystal.h>
Liquidcrystal lcd(2,7,8,9,10,11);
byte SlaveReceived =0;
void setup()
{
led.begin(16,2);
led.setCursor(0,0);
led.print("skill lync");
led.setCursor(0,1);
led.print("I2C ARDUNIO 2 ARDUNIO");
delay(5000);
led.clear();
serial.begin(9600);
wire.begin(8);
wire.onReceive(receiveEvent);
Wire.onRequest(requestEvent);
}
void loop(void)
{
led.setCursor(0,0);
led.print(">> the slave <<");
led.setCursor(0,1);
led.print("MasterVal:");
led.print(Slave Received);
Serial.println("Slave Received From Master:");
delay(500);
led.clear();
}
void receiveEvent(int howMany)
{
SlaveReceived =Wire.read();
}
void requestEvent()
{
int potValue = analogRead(A0);
byte slavesend = map potvalue(0,1023,0,127);
Wire.Write(Slavesend;
}