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:



  • Clocks Contest

    Clocks Contest
  • Oil Contest

    Oil Contest
  • Casting Contest

    Casting Contest

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?

3 replies

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!

4 replies

Thank you for posting the notes :-)

I have only this module with the 0x27 address.

The resource you posted is very good!

btw the Visuino UI is very similar to LOXONE Config (Home automation), which im using at home. is it just coincidence or do you own it also? :)

Maybe LOXONE has seen the OpenWire before ;-)

No, I have never seen the LOXONE . Visuino is based on the OpenWire Studio -, and OpenWire Studio has been around for few years, otherwise the core technology was developed by me about 15 years ago ;-) -

Hello, ive start this one as my first try with arduino, but im getting:

exit status 1

'Arduino' is not a member of 'Declarations'


Where is the problem? Thanks ;)

5 replies

Thank you! This si a bug in the latest build :-( . I am working to fix it, and will try to make another release with the fix tomorrow.
Thank you for discovering and reporting the bug!

thanks for fast mean build of arduino 1.6.7 or Visuino build?

Ahh you are the Visuino developer , now it makes sense :D

Thanks! will try

For now you should be able to just delete the line and compile. It is an extra line generated by the Visuino :-( . I think I will have the fix tomorrow.