Arduino Nano: I2C 2 X 16 LCD Display With Visuino





Introduction: Arduino Nano: I2C 2 X 16 LCD Display With Visuino

Character LCD Displays are a very commonly used for Arduino projects, to display small amounts of textual information. The most common types are the basic directly connected displays, and the ones with I2C adapter. The I2C version is more expensive but needs only 4 wires to connect to Arduino, which makes it very attractive, and easy to use option for Arduino projects.

In this Instructable, I will show you how easy it is to connect such I2C LCD Display to Arduino Nano, and program it with Visuino to display whatever is typed in a Serial Terminal.

In a following Instructable, I will also show you how you can connect LCD Display directly to Arduino without using I2C adapter.

Step 1: Components

  1. One Arduino compatible board (I use Arduino Nano, because I have one, but any other will be just fine)
  2. One I2C 16x2 LCD Display (Back side of the LCD with the I2C adapter showed on Picture 2)
  3. 4 Female-Female jumper wires

Step 2: Connect the LCD Display to Arduino

  1. Connect Ground(Black wire), Power(Red wire), SDA(Green wire), and SCL(Yellow wire) to the LCD Module (Picture 1)
  2. Connect the other end of the Power wire(Red wire) to the 5V power pin of the Arduino board(Picture 2)
  3. Connect the other end of the Ground wire(Black wire) to Ground pin of the Arduino board(Picture 2)
  4. Connect the SDA wire(Green wire) to SDA/Analog pin 4 of the Arduino Nano board(Picture 2)
  5. Connect the SCL wire(Yellow wire) to SCL/Analog pin 5 of the Arduino Nano board(Picture 2)
  6. Picture 3 shows where are the Ground, 5V Power, SDA/Analog pin 4, and SCL/Analog pin 5 pins of the Arduino Nano

Step 3: Start Visuino, and Select the Arduino Board Type

To start programming the Arduino, you will need to have the Arduino IDE installed from here: .

Please be aware that there are some critical bugs in Arduino IDE 1.6.6.

Make sure that you install 1.6.7 or higher, otherwise this Instructable will not work!

The Visuino: also needs to be installed.

  1. Start Visuino as shown in the first picture
  2. Click on the "Tools" button on the Arduino component (Picture 1) in Visuino
  3. When the dialog appears, select Arduino Nano as shown in Picture 2

Step 4: In Visuino: Add LCD Component, and Connect It

  1. Type "lcd" in the Filter box of the Component Toolbox then select the "Liquid Crystal Display (LCD) - I2C" component (Picture 1), and drop it in the design area
  2. Connect the "Out" pin of the LCD component to the to the "In" pin of the I2C channel of the Arduino component (Picture 2)
  3. Connect the "Out" pin of the "Serial[ 0 ]" channel of the Arduino component(Picture 3) to the "In" pin of the LCD component (Picture 4)

Step 5: Generate, Compile, and Upload the Arduino Code

  1. In Visuino, Press F9 or click on the button shown on Picture 1 to generate the Arduino code, and open the Arduino IDE
  2. In the Arduino IDE, click on the Upload button, to compile and upload the code (Picture 2)

Step 6: And Play...

Congratulations! You have completed the project.

Picture 1 shows the connected and powered up project.

If you open Serial Terminal in the Arduino IDE or Visuino, type some text and press Enter, you should see the text appearing on the LCD.

Avoid entering lines of text of more characters than the LCD has per line, as you can overflow its buffers.

On Picture 3 you can see the complete Visuino diagram.

Also attached is the Visuino project, that I created for this Instructable. You can download and open it in Visuino:



  • Paper Contest 2018

    Paper Contest 2018
  • Pocket-Sized Contest

    Pocket-Sized Contest
  • Science of Cooking

    Science of Cooking

We have a be nice policy.
Please be positive and constructive.




It doesn't work for me. I don't know what the problem is. anny suggestions?


Thank you!

Can you try to open the Visuino_I2CIO.cpp file, and change the line:


#include <../Wire/Wire.h>


#include <Wire.h>

then try to compile?

It works! Thank a lot, really like the Visuino program, keep up the good work!

Thank you! Enjoy :-)

I have made the change, and it will be in the next version.

Yes, you can. Take a look at this one:

Thanks for the link post, I really appreciate the hits.

You are Welcome! :-) Thank you for the great blog posts!

Finally working :)

So as this is my first try wit Arduino i faced few issues:

- I2C Adress 0x27 but a FEW use 0x3F (my case)

- also the contrast circle from back was on low so i wasnt able to see anything

This was very helpful page:

hope u dont mind posting it, thanks!