# Johnny Five, how to work with an LCD Screen

> Learn how to wire and control a 1602A LCD screen with Johnny Five and Node.js, initializing the LCD class and showing text with the print() method.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2021-04-28 | Topics: [JavaScript](https://flaviocopes.com/tags/js/) | Canonical: https://flaviocopes.com/johnny-five-lcd/

> This post is part of the Johnny Five series. [See the first post here](https://flaviocopes.com/johnny-five/).

An LCD screen is a pretty cool component because we can use it for many different projects in creative ways.

![1602A LCD screen component with dark display and 16 pins along the top edge](https://flaviocopes.com/images/johnny-five-lcd/IMG_9071.jpg)

This one I have is named 1602A.

![Back side of 1602A LCD showing circuit board with labeled pins and components](https://flaviocopes.com/images/johnny-five-lcd/IMG_9072.jpg)

It has 16 pins. I wired it in this way:

![Complete wiring setup with Arduino connected to LCD screen and potentiometer on breadboard](https://flaviocopes.com/images/johnny-five-lcd/IMG_9073.jpg)

- Pin 1 goes to 0V
- Pin 2 goes to a potentiometer that controls the backlight
- Pin 3 is connected to 5V
- Pin 4 goes to Pin 7 on the Arduino
- Pin 5 goes to 0V
- Pin 6 goes to Pin 8 on the Arduino
- Pin 11 goes to Pin 9 on the Arduino
- Pin 12 goes to Pin 10 on the Arduino
- Pin 13 goes to Pin 11 on the Arduino
- Pin 14 goes to Pin 12 on the Arduino
- Pin 15 goes to 5V
- Pin 16 goes to 0V

![Close-up view of LCD connected to breadboard with colorful jumper wires](https://flaviocopes.com/images/johnny-five-lcd/IMG_9074.jpg)

The potentiometer has 3 pins. The middle one is connected to the LCD screen, the left one is 0V and the right one 5V:

![Potentiometer component with three pins wired on breadboard for LCD backlight control](https://flaviocopes.com/images/johnny-five-lcd/IMG_9075.jpg)

![Arduino Uno board connected to LCD project with jumper wires and USB cable](https://flaviocopes.com/images/johnny-five-lcd/IMG_9076.jpg)

That's it for the wiring.

Create a new `lcd.js` file and load this code:

```js
const { Board, LCD } = require("johnny-five")
const board = new Board()

board.on("ready", function () {})
```

Now initialize a new LCD object from the LCD class.

The exact initialization procedure depends on the kind of display used. In my case, it was this:

```js
const lcd = new LCD({ pins: [7, 8, 9, 10, 11, 12] })
```

Finally, call the `print()` method to display a string:

```js
const { Board, LCD } = require("johnny-five")
const board = new Board()

board.on("ready", function () {
  const lcd = new LCD({ pins: [7, 8, 9, 10, 11, 12] })
  lcd.print("Hello World!")
})
```

and run the program using `node lcd.js` to see it work:

![LCD screen displaying Hello World text in bright blue characters on dark background](https://flaviocopes.com/images/johnny-five-lcd/IMG_9077.jpg)

The LCD class also offers those cool methods:

- `clear()` to clear the screen
- `cursor()` to position the cursor at a specific place
- `off()` to disable the display
- `on()` to enable the display
- `blink()` to blink the cursor
- `noBlink()` to un-blink the cursor
- `autoscroll()` to turn on automatic scrolling when the message goes too long

You can find out more on http://johnny-five.io/api/lcd/.
