Home > Embedded Systems, Projects > Arduino: POV with ASCII bitmaps and algorithm “Walking 1’s”.

Arduino: POV with ASCII bitmaps and algorithm “Walking 1’s”.

This project refers to an Arduino sketch which implements a POV (Persistence Of Vision) case for the representation of text messages which can contain the visible characters of the character set ASCII.

As for the material part, such a POV implementation usually requires: an Arduino, 7 LEDs (depending on the height [in bits] of the characters), a DC motor, a spiral base that rotates (on which the Arduino, the LEDs and the battery powering the Arduino will be) by the moving motor, a base where to fix the DC motor steadily upon, and some essential components such as e.g. resistors, wires, diodes, transistors.

This implementation, however, was applied to a home fan so some of these components have been unnecessary. Of course, the adjustment of the Arduino with the propeller fan was not easy because there were many problems of imbalance. These problems were solved with artificial weights to balance the construction.

Regarding the software part of the implementation, each visible character is a specific bitmap of 35 bits (7×5). All these characters have a height of 7 bits (as many as the LEDs in the system) and a width of 5 bits (i.e. each character consists of 5 columns of 7 bits each [7×5 = 35 bits the map of each character]).

In order to properly display a message (having the above data structure) there is need of an algorithm which handles the characters of the message one by one and, for each one of them, displays the individual columns with a specific delay in the 7 LEDs of the system. At the end of each character (when the entire character bitmap has appeared in the 7 LEDs), then we display a blank column (we actually display the blank space character) so that the next character to be a space away from the previous one.

During the appearance of one character column we use an algorithm known as “Walking 1’s” (this algorithm is often used for error checking in integrated memory circuits). This algorithm is iterative and in this case used to obtain each bit separately from the column of the current character to achieve the renewal of the value of the appropriate LED. The advantage of this algorithm is that it performs well as regards the time complexity (it works with binary arithmetic and boolean operators).

For more information you can get the project itself:


Various images from the implementation POV:

POV with Arduino (show the message “Love!”).

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: