# Heart LEDs that blink in Morse Code

**URL:** <https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001>\
**Category:** Projects\
**Created:** [July 4, 2014, 6:58am UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001 "2014-07-04T06:58:15Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![raydar670](https://avatars.discourse-cdn.com/v4/letter/r/49beb7/32.png) [@raydar670](https://community.sparkfun.com/u/raydar670)\
**Post date:** [July 4, 2014, 6:58am UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001/1 "2014-07-04T06:58:15Z")

</div>

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](http://www.amazon.com/Velleman-MK101-Flashing-Led-Sweetheart/dp/B000LQGC00/ref=cm_wl_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.

Thanks for your help!

---

<div class="post-metadata">

**Author:** ![lyndon](https://avatars.discourse-cdn.com/v4/letter/l/7993a0/32.png) [@lyndon](https://community.sparkfun.com/u/lyndon)\
**Post date:** [July 4, 2014, 2:02pm UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001/2 "2014-07-04T14:02:52Z")

</div>

**Possible**? Yes. Reasonable? No.

---

<div class="post-metadata">

**Author:** ![raydar670](https://avatars.discourse-cdn.com/v4/letter/r/49beb7/32.png) [@raydar670](https://community.sparkfun.com/u/raydar670)\
**Post date:** [July 4, 2014, 9:17pm UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001/3 "2014-07-04T21:17:15Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Ross\_Robotics](https://avatars.discourse-cdn.com/v4/letter/r/cc9497/32.png) [@Ross\_Robotics](https://community.sparkfun.com/u/Ross_Robotics)\
**Post date:** [July 5, 2014, 2:39am UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001/4 "2014-07-05T02:39:49Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Mee\_n\_Mac](https://avatars.discourse-cdn.com/v4/letter/m/aeb1de/32.png) [@Mee\_n\_Mac](https://community.sparkfun.com/u/Mee_n_Mac)\
**Post date:** [July 5, 2014, 4:41pm UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001/5 "2014-07-05T16:41:49Z")

</div>

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.

[http://www.adafruit.com/products/1501](http://www.adafruit.com/products/1501)

---

<div class="post-metadata">

**Author:** ![lyndon](https://avatars.discourse-cdn.com/v4/letter/l/7993a0/32.png) [@lyndon](https://community.sparkfun.com/u/lyndon)\
**Post date:** [July 7, 2014, 4:37pm UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001/6 "2014-07-07T16:37:51Z")

</div>

[[Here](http://www.sophphx.caltech.edu/Physics_5/Data_sheets/555appnote.pdf) 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.

So it is possible, but not worth it with other, much easier solutions out there.]([http://www.sophphx.caltech.edu/Physics\_5/Data\_sheets/555appnote.pdf](http://www.sophphx.caltech.edu/Physics_5/Data_sheets/555appnote.pdf))

---

<div class="post-metadata">

**Author:** ![n1ist](https://avatars.discourse-cdn.com/v4/letter/n/5daacb/32.png) [@n1ist](https://community.sparkfun.com/u/n1ist)\
**Post date:** [July 8, 2014, 12:19pm UTC](https://community.sparkfun.com/t/heart-leds-that-blink-in-morse-code/29001/7 "2014-07-08T12:19:29Z")

</div>

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.

/mike
