Path:
Home =>
AVR-EN =>
Applications =>
Ticker 16-8 => Hardware schematics
Text ticker with 16*8 LEDs and an ATtiny- or an ATmega-Controller
Those who are not familiar with 4094 CMOS shift registers can find more
on those in the application here.
There you'll also find more on the currents that the 4094 delivers
if operated with 5V in Source and in Sink mode. Please uses the CMOS
type only, never use 74HC4094 or even 74HCT4094 instead if you love
your LEDs and you want to preserve them from heat death.
These schematics here work with 2mA-LED types only. Other LEDs do not
provide enough light at those currents (see the booster version for
those LEDs).
All four schematics are equipped with an ISP6 plug, the controller
can be programmed via this interface. The 5V power supply can also
be connected via this plug.
This here is the first and most simple schematic. The ATtiny24 shifts
eight single bits into the most right shift register (pin DATA of
4094-1).
With each shifting the highest bit in the shift register is shifted
into the next 4094 (pin QS of 4094-1 to pin DATA of 4094-2). As all
4094 are connected like this, each clock pulse on the CLK pin shifts
the highest bit to the next 4094. All CLK pins are driven by the
I/O port pin PB1, so eight pulses on those inputs shift the whole
column by one position to the left. The 16 shift registers so extend
the storage space by 128 bits.
After all eight bits of the first column are shifted in, the STROBE
or STB input pin of all 4094s is driven high for at least 1µs
long. This latches the state of the shift registers within the 4094s.
On the ADC0 input pin of the ATtiny24 the potentiometer provides
a voltage between 0 and 5V. The result of the AD conversion influences
the pulse width on TC0's output pin OC0A, which switches all
ENABLE pins of the 4094s and provides a brightness regulation for
the LEDs.
The potentiometer on the ADC1 input pin of the ATtiny24 selects the
text to be displayed on the LEDs. The text is stored in the flash
memory of the ATtiny24 as a sequence of bytes to be displayed. The
potentiometer switches between the up to 256 different texts (if
those fit into the flash). If you run out of space space, use an
ATtiny44 or 84 instead.
The potentiometer which is connected with input pin ADC2 of the
ATtiny24 determines the speed of the display by increasing the
frequency of the shift and by decreasing the time delay between
those shift events.
When programming please consider that after eight shifts the
content of all 4094s has been shifted one column to the left.
And you'll have to detect the end of the text, so shifting
has to restart from the beginning. And: if the text to be
displayed has changed via potentiometer, an immediate stop and
a restart of the display with the new text should go on.
All in all a nice task for a beginner in assembler. See the
assembler software section for more hints.
This is version 2 with the ATtiny24. In this version each CLK
pulse transfers eight bits to the shift registers 1, 3, 5, 7, 9,
11, 13 and 15. The content of the odd shift registers is shifted
into the even shift registers, so 16 shifts change the complete
content of the shift registers. This version is fit for displaying
any combination of displays, not only as a right-to-left ticker.
As all AD converter pins are occupied, no potentiometers can be
attached. Only the brightness can be programmed in a fixed mode,
because the ENABLE pins can be attached to pin OC0A. Text and
speed adjustment finds not enough pins on the ATtiny24.
This version increases the text display speed, because the ATmega48
can transfer 16 bits per clock pulse into all 4094s.
The three regulating potentiometers are also available in this
version.
Only the brightness admustment is not as simple, because no PWM
output pin is available. So the ENABLE pin has to be pulsed by
two interrupt service routines (Overflow and Compare match),
that set and clear the PC5 output pin.
The second version with the ATtiny24 and the third version with
the ATmega48 both lack a PWM output pin for brightness control.
The ATmega324 used here has all this in a 40-pin package, with
OC0A controlling the ENABLE pins of the 4094s.
And this version provides additional opportunities. On the two
pins XTAL1 and XTAL2 a crystal can be attached to drive the
controller with an exact clock frequency. This can be useful, if
you want to build a clock application with ticker design. I that
case the line "Tu, 15.02.22, 13:29:00" can be displayed
in right-to-left and left-to-right shift mode. Pin INT2 on PB2
and PCINT on PB0 or/and PB1 can be used to attach two or three
switches for manual adjustment of date and time.
Because the serial output to the 4094s is very fast here, the
crystal can be a 32.768kHz, if your programmer can clock the
ISP with 4kHz and below.
Which of the four version is best for your needs is up to your
decision. The PCB supports all four versions, if you use some
solderable enamed copper wire to connect the controller and
the 4094s.
©2022 by http://www.avr-asm-tutorial.net