Introduction: Morse Code Station
Dit-dit-dah-dah! Learn Morse Code with this easy Arduino Uno project.
This easy Arduino project is a Morse Code station. Morse Code is a communication method that encodes characters as a series of dots and dashes. This circuit uses a piezo buzzer to make the dots and dashes audible.
Using the button, you tap in the Morse code, the buzzer sounds with each press of the button and the OLED display shows the decoded message. Most people aren't familiar with Morse Code, so I have included an image showing all of the International Morse Codes above for your convenience.
How To Enter Morse Code
Code is entered by tapping the button. Give one short tap for a dot and a longer tap (at least twice as long) for a dash. As soon as you enter a recognized code, the letter, or number it represents is displayed. If you pause for approximately 1.5 seconds between taps, then the display will insert a space thus allowing you to enter words. If a code is unrecognized a '?' character is displayed.
- Arduino Uno
- Piezo buzzer
- Resistor 220 Ohm
- Resistor 10K Ohm
- Graphic OLED display 128x64
- 5mm LED: red
- Tactile button
Step 1: Build the Hardware
Use the Fritzing diagram above to wire up the circuit.
Step 2: Upload Arduino Code
Before you compile and upload the Arduino code, you need to install a couple of libraries into your Arduino IDE. Open the Sketch->Include Library->Manage Libraries... menu item and search for and install the following libraries:
You are now ready to compile the Arduino sketch. The Arduino source code for the sketch
morse_code_station.ino is available for download from my GitHub repository.
Step 3: Build a Printed Circuit Board
If you would prefer to build a permanent version I have produced a printed circuit board. The Gerber file is available for download from my GitHub repository. Alternatively, you can browse the schematic and PCB on the EasyEda web site. The site is linked to a PCB manufacturer, and with a few clicks you can order the board for just a few dollars.
That's it, enjoy! Until next time...