BIG Alpha-numeric DISPLAY

by oldmaninSC in Circuits > Arduino

5053 Views, 45 Favorites, 0 Comments

BIG Alpha-numeric DISPLAY

this or this.jpg
best open.jpg
single.jpg

There are few choices if you need a display that can be seen from across the room, a big display. You can make one like my 'time squared' or 'leds on glass' but this takes about 40 hours of tedious work. So here is an EASY to make large display. The build has 4 basic wires, 5 volts, ground, SDA, SCL. Each character display cost about two to three dollars. So a 8x2 display is about $30. Not counting RTC, Arduino, 3d prints, enclosure.

The sketch is basic and easy to understand. Easy to modify for any alphanumeric display. The letters are 1/2 size with 1/2 size numbers and a set of full size numbers.

The drawback is you can only make a display of 64 char. The TCA9548 runs out of addresses (8). The Hitachi lcd is very SLOW and any larger display and the write time takes about a full second to fill the entire display. So if you wanted a wall size display it will be slow. There are many ways to cheat and use more than 64 lcds but I will not cover that in this post as this is an EASY to make display.

YES the photos of a LCD......DO NOT come out well. These displays look GREAT in real life.

Supplies

Any uno 328 ... nano, pro-mini, uno...

popular RTC ZS-042 module (DS3231)

TCA9548 I2c mux splitter

Hitachi 1602 with backpack I2c as many as 64

3d print of pcb cover. I have 2 types to choose from

wooden enclosure like a picture frame made from 1.5 inch wood trim (stock at Lowes)

basic skills : solder, wire, hookup, adj, M2 nuts and bolts

Basic PARTS

case.jpg
IMG_20201202_125724.jpg
IMG_20201202_125737.jpg
IMG_20201202_125826.jpg

basic parts for the build

The wood frame is standard wood trim at Lowes. You can not see the inside lip that is about 1/4 inch deep. This lip allows the 3d cover to fit inside the frame and touch the front without falling through.

ANYTHING YOU WANT

IMG_20201202_125943.jpg
IMG_20201202_131325.jpg
overlap.jpg

some basic construction and hints:

I overlap the lcd pcb to make them closer then screw through the overlapping holes. Put tape or some insulation between the two as they will short out. I got some lcd with the I2c backpack attached and I had to remove the backpack and remount it as the legs were too deep and would not allow the overlap. Try to get separated lcd and backpacks. Solder the backpack just flush with the lcd so they can overlap.

The lcds are separated into banks of 8. But my 3d printer bed wont print that wide so I made a cover for a bank of 6 lcds. then I made a chain like cover that can be any width. Just add the final end piece. I use a black hobby paint to cover the lcd led so the led wont shine through the front. Paint downward as to allow any runs to flow off the lcd instead of flowing INTO the lcd and destroying it.

Stack as many lcds as you need. The 8x2 picture frame has the best shape but you could make a 16x2 or any size you like.

SCHEMATIC and 3d Prints

sch I2c.jpg
fit printer.jpg
ends any size.jpg
any length.jpg

The hookup is EASY just 4 wires. You can use jumper cables but if this is a long term project I would solder wires instead.

A 6 led bank is all that fits on my printer so I made the any size frame. Just keep adding and then attach the end piece.

JUST PIC TO SHOW HOW

IMG_20201202_125401.jpg
IMG_20201202_125337.jpg
IMG_20201202_125345.jpg
I2c.jpg

As shown in the schematic each lcd goes to a different 'S' pin on the 9548. Not tied to the main SDA,SCL lines. The 9548 switches the I2c lines to each lcd. Keep this in mind.

I removed the red power on led from the backpack just because it was too bright I also use a diode across the led jumper instead of the zero ohm jumper. The diode is a standard silicon diode and it drops the voltage 0.7 to make the backlight just right. (not too bright at night)

SKETCH

The Sketch is simple and straight forward. I do not mind if someone makes a library of sideway alphanumeric...just give me some credit like, based on alphanumeric of Jim Jakubcin.

Reference to lcd is the Hitachi 16x02 standard lcd module. It has cc (custom characters) of 8 each. The cc can be modified at any time but if 2 of the same address is printed at the same time the latest cc will overwrite the other. So basically you can only use the set of 8. There is a slight way to overcome this but it it extremely limited. Each letter is formed from an array stored in PROGMEM. Then called from another 'cname' array using a function and 'xc' as the call variable. The 'displayChr(bank, #lcd, top/btm, cname)' is used to make the display.In this sketch I have only 2 banks of 8. The maximum could be 8x8. Just add another 'if bank' to the displayChr() with the correct address of the 9548. (see address truth table). To switch the I2c line to another 'S' pin of the 9548 the call is write(0-7). In the library of MUX I2c he forgot to say that B00000000 turns off all output switches. So to use lcd # 3 (0-7) B00000100 or 4. The switching is so easy that I removed the library from my sketch but you may want to download and see how easy the library is.

To print a char just call the displayChr(x, x1, x2, x3).

X = This will be the bank 0-7

X1 = lcd # 0-7 (left to right)

X2 = topS or botS to print the small letters in 1/2 the lcd. The larger numbers will automatically know to fill the whole lcd

X3 = is the letter name or ARRAY PLACE in cname[]

---------------------------------------------------------------------------------------------------------

The RTC has a built in temperature so an indoor reading can be used.

I have a easy DOW that I copied from ????

To start the clock connect to the computer and enter the correct times at the 'SETUP()' The RTC has a battery so the times will be good. The hours will need to be adjusted at daylight savings so you will either install a simple switch of just update via the computer.

| A2 | A1 | A0 | I2C Address |
| :---: | :---: | :---: | :---------: | | 0 | 0 | 0 | 0X70 | | 0 | 0 | 1 | 0X71 | | 0 | 1 | 0 | 0X72 | | 0 | 1 | 1 | 0X73 | | 1 | 0 | 0 | 0X74 | | 1 | 0 | 1 | 0X75 | | 1 | 1 | 0 | 0X76 | | 1 | 1 | 1 | 0X77

OTHER SETUPS

2nd open.jpg
single+big.jpg
enable.jpg

My first lcd array used nand gates and switched the lcd enable to the separate lcds. I then used the CD4051 chip that is made to switch data. It has an in and switched 8 line out. Just like an old fashion rotor switch. I have a pcb here. With this setup you can use an I2c and break the enable pin and connect iot to the input of the 4051 which switches the enable to the selected lcd. You can keep cascading the enable forever to lcds. But this limits the 4051 to only 7 switches and the 8th goes to the next 4051. this makes the banks = 7 not 8. I used all 8 and changed the address of another backpack in the second bank. this second backpack has a 4051 tied to the enable and does the same switching as in the first bank. Just has a second address on the SDA,SCL lines.

This setup requires ALL the 6 data lines of the lcd to be connected in parallel. The RW to ground. This takes much longer and I would recommend a plug in connector for each lcd. This setup is for only ONE backpack per bank instead of a backpack for each lcd.

Add a comment if you want more info about this setup. it is much harder and involved than the other.

FINAL PICs

IMG_20201217_182935.jpg
big small.jpg
IMG_20201217_182948.jpg
IMG_20201217_182814.jpg
outside temp + TX voltage.jpg
clock + date.jpg
clock + in temperature.jpg
clock + outside tmp.jpg
IMG_20201217_182739_1.jpg

Just some other photos. I have an outdoor HC12 GPS clock that sends updates to another lcd screen (in photos). Just to show what can be done. This is east to make ANY KIND of LARGE DISPLAY.

thanks for reading...

Please see my other projects..oldmaninSC.

and you WILL like my "BUD BALL"