On this page you will find a scrolling LED sign based on the ATtiny2313 AVR microcontroller, which you

can build yourself (when finished) Other names for this device can be: Moving message sign, Message crawler, Scrolling message, message display, etc. The idea is to let a text scroll over the LED dot-matrix displays. A dot-matrix display is a display which contains 5x7 dots (LEDs) in one case, the LEDs are connected like a matrix, there are two types CC and CA, the LEDs are simply put the other way around, here the drawings (inside and front):

If you put 1.8 Volt e.g. at the lines 4 and 10, that LED (dot) will lit, the trick of multiplexing is to scan the columns (5) and set the data on the rows (7) (or visa-versa), the multiplex-frequency must be greater than approx. 40Hz else you will see the flickering of the LEDs to much (take about 5 msec per column, thats about 25 msec for one frame) The scanning goes as follows, first set the rows data on the 7 rows e.g. 1010010, then activate (0 or 1 -> depends on which type CA = common cathode, or CC = common anode) the first column, now these LEDs (dots) will lit, wait 5 msec, then switch the column off, now load the next rows data, and set the second column on, wait 5 msecs again, and switch it off again, if you repeat this sequence very fast, you

a 74HCT164 you can only shift the bits into the outputs. Don't forget that multiplexing causes the LEDs only lit up for a fraction. that are Data (Ds). How does the 74HC595 works? First shift the 8 bits into the stages with SHcp. the advantage of the 74HC595 is the storage register. connect like the diagram. with e. and 2 shift inputs (SHcp. you can also take an external EEPROM/flash IC. from the EEPROM or flash memory of the AVR. this diagram is for practice and programming. don't take twice or half the artificial light-frequency of 50/60 Hz) The rows data comes e.g. STcp). what you can do is put the character data (ASCII) into the flash memory (read below for more details) Next the test-diagram: The 74HC595 is an 8-bit shift-register IC. so if you want the same intensity you must put more current through them. wants you have it working you can put transistors and resistors .g.will see the data (character data) appear on the display (refresh frequency 40 . the ATtiny2313 has 128 bytes EEPROM and 2k of flash memory.70Hz is ok. then shift the stages to the outputs with STcp. with this IC you can shift 8 bits to the outputs with only 3 wires. this causes the outputs to switch in one go.

that are 5 x 8 bit = 40 bits / 5 columns = 8 dot-matrix displays. . making it a nice tiny message sign. (the refresh goes so fast that your brain can't keep up.. this will give the effect of a walking text accross the dot-matrix display.on. and after that. and what you see is the R scrolling over the display) Btw.) How to scroll a character accross the display ? The trick is to build one character on the display by scanning the columns very fast. I will take five 74HC595's shiftregisters IC's. Here I put the letter R on the display as you can see. and let say each 20 times (20 frames) scroll it one position to the left. repeat this 20 times.. if you do this 5 times (5 columns) the character scroll from right to left from the display. using a little breadboard: (next: How the scrolling is don e. read the data one address later. So first build one frame.

because I used only 69 lines (69 instructions) of program so far.255. so e. and that scrolls characters fluently accross the dot-matrix display. this type of rotary encoder has a push-function in the shaft. then I have 704 words left for my program.g.What I am going to do is putting ASCII data (thats 128 x 5 bytes = 640 bytes) into the 2k flash memory of the ATtiny2313. so you can edit messages. 25 fps (frames/second) is a nice speed. without a keyboard. . after you select a character you can store that in memory. with this encoder I will make an edit function in the software. that can really be a huge program!. so 256 speeds. I made the program so that you can set the scroll-speed. this save space. On one of my pages (this page) I am using a 2-bit Gray code rotary encoder. from 0 .