Silicon Chip – April 2019

(Ben Green) #1

siliconchip.com.au Australia’s electronics magazine April 2019 31


suit what you are using. If you are us-
ing a microcontroller which has been
previously programmed for other pur-
poses, we suggest that you re-program
it with the software for this project
before wiring it up, since if it drives
the enable pin high without resetting
the latch ICs first, that could cause the
driver ICs to overheat.


Testing


Our first test program for either the
Arduino or Micromite just cycles be-
tween all pixels white and all pixels
black. Load this into your micro board
(at this point, we’re assuming you’re
comfortable working with Arduino or
Micromite modules).
Both programs define which micro
output pins control the flip-dot display
via constants at the top of the program
code. The pin configuration can be
changed by changing the #define or
CONST values. The default pins are
grouped together, in order, for sim-
plicity of wiring.
Check that the board works as ex-
pected and that the driver ICs and
the coils don’t get hot. They may get
warm, but if any are too hot to touch,
something is not right. If this case,
there may be a wiring problem or the
driver PCB may be assembled wrong.
For example, swapping the clock (CK)
and latch (LT) lines between the micro
and driver board will cause problems.
If you see multiple pixels flipping at
the same time, that is also a sign that
the wrong data is being received from
the board, pointing to a wiring error SC


between the micro and the driver PCB.
Depending on the rating of your
power supply, a fault may cause
the L293Ds or the coil PCB to
get very hot. Take care when
touching the display if you
suspect a fault.
Once you have confirmed
that it’s working correctly,
check that the pixels flip in se-
quence. If you find one or two
are not turning over correctly, the
tabs at the end of the flaps may be
catching against the adjacent pixel.
In that case, remove any sticky
pixels by gently pushing them
down against the frame and tilting
them out of the mounting holes. File
the ends with just one or two passes of
a file, again being wary of the PCB dust.
Double-check that the other pixels
are seated correctly in their mounting
holes and that they can rotate freely.
Then refit the ones you filed, ensuring
that the colours line up correctly. You
may find that they will operate more
smoothly after bedding in (ie, running
the test program for a while). Once you
are happy with the operation and wir-
ing, try the other example programs.
The Flip-dot ASCII 2 example
sketch also contains a routine that
only changes pixels that need to be
changed, improving the update speed
and reducing the power requirement.

Using the display
Both the Micromite and Arduino
programs make use of a 16-bit value
to store the displayed data for a single
board. Fig.4 shows the bit mask values
of each pixel. To create a particular
configuration, add up the values for
each pixel that you want to be black
and ignore those which you want to
be white. The resulting number repre-
sents that configuration and can then
be used in the software.
If you find the colours are reversed
to what you expect, then there are con-
stants defined at the start of the pro-
gram which can be changed to reverse
the colours. Check the comments in
the files to see.
This can be caused by all the mag-
nets being reversed relative to what
the program expects. So it’s entirely
possible that you will have to change
these constants.

Multi-character displays
As mentioned earlier, multiple dis-
plays can be chained together to make

a larger display by fitting a male head-
er for CON1/CON3 on the second and
subsequent boards and soldering these
to the CON2/CON4 positions on the
adjacent board.
This results in all the control and
power pins being connected in paral-
lel, except for the data pin.
The data out signal (pin 3 of CON2)
connects to the data in signal (pin 3
of CON1) on the subsequent board, so
that serial data passes from one board
to the next and therefore, the control-
ling micro can independently set the
state of all pixels in the chain.
Note that the enable pull-down re-
sistors of connected boards are effec-
tively connected in parallel, so you
only need to fit this resistor to the first
board (ie, the one that will be connect-
ed to the micro).
The coil PCBs can also be joined by
soldering the tabs of the frame PCBs
on adjacent boards. This can also be
done to connect multiple rows of
boards vertically.
While a single Flip-dot display is
modestly sized by itself, with four
or six units placed side by side, you
could create an attention-demanding
clock which gives you a gentle audible
alert every time the minutes or seconds
digit changes.
With multiple displays, each panel
is capable of updating one pixel at a
time, so the update time does not in-
crease as you add more characters, as
long as your power supply is capable
of supplying enough current for all the
displays to be driven simultaneously.

12V supply
You may need a 12V supply capable
of several amps for a multi-character
display, and we recommend that you
parallel the 12V bus with wires that
have a decent current-carrying capa-
bility, to help deliver that extra current
to all the boards.
The software uses the shift registers
to shift in the new data for each panel,
then toggles the global enable line and
they all update in sync.
The largest and most complicated
sample program provided allows you
to define the number of characters in
your display, then update them all
with a new text string as required.
Note that lower case letters in this
string are automatically mapped to up-
per case, since those are much clearer
when displayed on a 3 x 5 pixel matrix.
Numbers and symbols are left as-is.

A small amount of epoxy resin is all
that is needed to hold the magnets in
the flaps. The steel panel (underneath)
keeps the magnets flush, and the
plastic inbetween stops the magnets
sticking to the steel.

Free download pdf