Challenge

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

MASTER CODE:

#include <Wire.h>

void setup()
{
Wire.begin(4); // join i2c bus
}

void loop()
{
char *x = "Project1 - I2C ";
Wire.beginTransmission(4); // transmit to device #4
Wire.write(x); // sends one byte
Wire.endTransmission(); // stop transmitting
delay(500);
}

SLAVE CODE:

#include <Wire.h>
#include<LiquidCrystal.h>
LiquidCrystal lcd(2,7,8,9,10,11); //setting for data receiving

void setup()
{
lcd.begin(16,2);
Wire.begin(4); // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}

void loop()
{
delay(100);
}

// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany)
{
while(1 < Wire.available()) // loop through all but the last
{
char c = Wire.read(); // receive byte as a character
Serial.print(c); // print the character
lcd.print(c);
}
delay(200);
}

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.