Challenge

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

//MASTER CODE

#include
#include
LiquidCrystal lcd (2,7,8,9,10,11);   //DEFINE LCD DISPLAY MODULE PINS
 void setup()
 {
   lcd.begin(16,2);                 //INITIALIZE LCD DISPLAY
   lcd.setcursor(0,0);
   lcd.print("skill lynch");
   lcd.setcursor(0,1);
   lcd.print("I2C ARDUINO 2 ARDUINO");
   for (int i=0; i<16; i++)            //FOR LOOP REPEATING 16 TIMES
   {
     lcd.scroll displayleft();          //SCROLL WHOLE SCREEN
     delay(100);
   }
   delay(2000);
   lcd.clear();
   serial.begin(9600);                   //BAUD RATE
   Wire.begin();                        //I2C COMMUNCIATION (A4,A5)
   }

   void loop()
   {
     Wire.requestFrom(8,1);                    //REQUEST BYTE FROM SLAVE ARDUINO(8)
     byte MasterReceive = wire.read();          //RECIVED FROM SLAVE AND STORE IN MASTER
     int potvalue = analogRead(A0);                 //READ ANAOLOG VALUE
     byte MasterSend = map (potvalue,0,1023,0,127);
     Wire.beginTransmission(8);                 //TRANSMISSION TO SLAVE
     Wire.write(MasterSend);                    
     Wire.endTransmission();                    //STOP TRANSMISSION
     lcd.setcursor(0,0);
     lcd.print(">>the master<<");                //PRINT "THE MASTER" IN LCD
     lcd.setcursor(0,1);
     lcd.print("slave val:");                     //PRINT "SLAVE VAL" IN LCD
     lcd.print(master receive);
     serial.print(master received from slave);
     serial.println(masterreceive);
     delay(600);
     
   }
lcd.clear();
 }
 
 
//SLAVECODE

#include
#include
LiquidCrystal lcd(2,7,8,9,10,11);         //DEFINE LCD MODULE PINS
byte slaveRecived = 0;

void setup()
{
  lcd.begin(16,2);                        //INITIALIZING LCD DISPLAY
  lcd.setcursor(0,0);
  lcd.print("skill lync");
  lcd.setcursor(0,1);
  lcd.print("I2C 2 ARDUINO");
  delay(5000);                           //DELAY FOR 5 SEC
  lcd.clear();
  serial.begin(9600);                    //BAUD RATE
  Wire.begin(8);                         //BEGIN SLAVE ADDRESS AS 8 AT PIN (A4,A5)
  Wire.onReceive(receiveEvent);          // FUNCTION CALL (SLAVE RECEIVES VALUE FROM MASTER)
  Wire.onRequest(requestEvent);          // FUNCTION CALL (MASTER RECEIVES VALUE FROM SLAVE)
}

void loop(void)
{
  lcd.setcursor(0,0);
  lcd.print(">>the slave<<");
  lcd.setcursor(0,1);
  lcd.print("MasterVal");
  lcd.print(SlaveRecived);
  serial.println("Slave Received From Master");      //PRINT SERIAL MONITOR
  serial.println(SlaveRecived);
  delay(500);
  lcd.clear();
}

void receive event (int howmany)
{
  slave received =  wire.read();                      //READ VALUE RECEIVED FROM MASATER
}

void request event()                                 //USED WHEN MASTER WANT VALUE FROM SLAVE
{
  int potvalue = analogRead(AO);
  byte slavesend = map (potvalue,0,1023,0,127);
  wire.write(slave send);

}
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.