Challenge

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

sent by Master

  #include<Wire.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 7, 8, 9, 10, 11);
void setup()
{
  lcd.begin(16,2);
  
  Serial.begin(9600);
  Wire.begin();
}
void loop()
{
  Wire.requestFrom(8,1); //request 1 byte from slave arduino (8)
  byte MasterReceive = Wire.read();
  int potvalue = analogRead(A0);
  byte MasterSend = map(potvalue,0,1023,0,127);
  Wire.beginTransmission(8);
  Wire.write(MasterSend);
  Wire.endTransmission();
  lcd.setCursor(0,0);
  lcd.print(">> the Master <<");
  lcd.setCursor(0,1);
  lcd.print("SlaveVal");
  lcd.print(MasterReceive);
  Serial.println("Master ReceivedFrom Slave");
  Serial.println(MasterReceive);
  delay(500);	
  lcd.clear();
}

received by slave

  
#include<Wire.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 7, 8, 9, 10, 11);
byte SlaveReceived = 0;
void setup()
{
  lcd.begin(16,2);
  
  Serial.begin(9600);
  Wire.begin(8);
  Wire.onReceive(receiveEvent);
  Wire.onRequest(requestEvent);
}
void loop(void)
{
  lcd.setCursor(0,0);
  lcd.print(">> the Slave <<");
  lcd.setCursor(0,1);
  lcd.print("MasterVal");
  lcd.print(SlaveReceived);
  Serial.println("Slave ReceivedFrom Master");
  Serial.println(SlaveReceived);
  delay(500);	
  lcd.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);
}
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.