Scrolling text on 16×2 LCD controlled by pushbuttons

In this project I’m going to use an Arduino Uno to scroll some text on a 16×2 character LCD which is controlled with a pair of pushbuttons. Even if there’s nothing very fancy or original here I think I came out with some features that could be of interest for many beginners and the project can easily be extended to do more. You can consider it as an “advanced Hello World!” example.


In this project the 16×2 LCD (16 cols and 2 rows) is showing a scrollable text on a single line and the user can control the scrolling using two pushbuttons (left and right scrolling). A red LED is used to signal the user when it reaches the end (or the beginning) of the text and no more scrolling is possible. The brightness of the screen is controlled via code and the contrast of the text is controlled with a 10k potentiometer.

When connecting Arduino to a power source the LCD remains off (no backlight and no text showed) and the user needs to push the two pushbuttons simultaneously to turn it on. This is done implementing a very basic state machine (with only two states: OFF and ON) in the main loop.


This is what I used for this project:

  • 1x Arduino Uno
  • 1x large 700 tie-points breadboard
  • 1x 16×2 LCD
  • 1x 10K potentiometer
  • 2x pushbuttons
  • 1x 3mm red LED
  • 2x 10k? resistors
  • 2x 220?

    Leave a Comment

    Your email address will not be published. Required fields are marked *