Hello SparkFun forums! I had an idea for a simple project I could make for my girlfriend.
I was thinking of taking a LED heart kit (such as http://www.amazon.com/Velleman-MK101-Fl … l_huc_item) and hooking up a timing circuit that would make it blink “I love you” in Morse code. I know this is pretty simple to do with an Arduino but I was wondering if it would be possible with something like a 555 timing circuit or something similar. I know you can make oscillators with 555 timer circuits, but I’m not sure if you can vary the blinks and such.
In that case I’ll just go the Arduino route. Although I would like to know what is the most reasonable use for 555 timers just so I can have a realistic view of what they can and cannot do.
Google 555 timer uses and you’ll get +1,000,000 hits. 555 timers are the most versatile chips I know of. Although I am still an apprentice in most member’s eyes.
555’s are useful for lot’s of things but basically there are 2 classes; timing and oscillators. As timer it can take a trigger and produce a pulse of known length. So one basic function is a pulse-stretcher, taking a short pulse and making it longer. The problem with the OP’s application is that it requires some memory of some sort and the 555 has none. Given the ability of a 555 to change the threshold, the PW can be changed as well so as to get the .s and -s but you’d still need to store the sequence somehow. Seems that would be easiest going digital, a Trinket would suffice.
[Here is one of many application notes for the 555. It shows various uses of the 555.
For what you want to do, you need memory as Mee-n-Mac notes. A relatively simple way to do it is with shift registers. You will need one S-R bit for each element of “i love you.” At an average of 3(?) dot/dash elements per alphabetic character, you need around 30 bits, or four 8-bit shift registers. Each output bit would trigger a 555 to generate a dot, dash, or do nothing for a space. This simplistic method would sound odd since Morse code has a cadence of short pauses between dots/dashes and longer pauses between letters and words (not to mention the individual’s keying “fist”) but it should work.
Back in the day, I would have programmed the pattern into a 2716, add a counter to the address pins driven by a 555, and use D0 to drive the LEDs. You could also use a whole bucket of 555s set up as timers, one per morse element, and one per inter-element gap, and diode-or the outputs together.
Nowadays, of course, a single-chip micro would be MUCH easier.