Introduction: Arduino LCD Metronome

Metronomes can be expensive but with an Arduino and a few parts you can make an extensible metronome.

Step 1: Parts

- Arduino (any normal sized Arduino will be fine)
- The Arduino IDE and the knowledge to use it
- Lots of wires
- HD44780 LCD Display (I've used a 20x4 but a 16x2 will work fine)
- 3x 100K Ohm Resisors
- A rotary encoder -- must have a button
- 1M Ohm Resistor
- TDA7052 Amp
- Speaker
- 44K Ohm Potentiometer
- 100k Ohm Potentiometer
- 100nF non-polarised capacitor
- 100uF 16v electrolytic capacitor

Step 2: Connecting the LCD

The first step is to wire up the LCD. The HD44780 has 16 pins:
Pin 1 - Vss
Pin 2 - Vdd
Pin 3 - Vo
Pin 4 - RS
Pin 5 - R/W
Pin 6 - E
Pin 7 - DB0
Pin 8 - DB1
Pin 9 - DB2
Pin 10 - DB3
Pin 11 - DB4
Pin 12 - DB5
Pin 13 - DB6
Pin 14 - DB7
Pin 15 - A
Pin 16 - K

This is how the pins should be connected:
2 - 5v
3 - Middle pin of 44K pot
4 - Arduino 12
5 - GDN
6 - Arduino 11
11 - Arduino 5
12 - Arduino 6
13 - Arduino 7
14 - Arduino 8
15 - 5v
16 - GND

The rest of the LCD pins can be left blank. The pot needs the other pins to be connected to 5v and GND. For a more in depth look see

Step 3: Testing the LCD

To test the LCD upload the attached code, you should see the words "Hello, world" and the number of seconds since you uploaded the code. If there is a backlight but no text try turning up the potentiometer

Step 4: Building the Amplifier

Next up is the amp circuit. Be very careful to get the IC and 100uF capacitor the right way round. The pot controls volume.

Step 5: Connecting the Rotary Encoder

The final hardware step is to connect the rotary encoder. The rotary encoder is like a pot but can rotate all the way round, have a button. They work by changing the voltage between two pins.

There are 5 pins, generally 3 on top and 2 at the bottom, you will need to solder wires to the pins (they'll short if you just plug them into a breadboard, due to the 2 at the bottom being in line with one at the top).

Pressing the button will allow you to increase the BPM in 10s, pressing again will make it go back to 1s.

Look at the drawing below for how to wire them.

Step 6: Uploading the Code

With all the connections made plug in your Arduino.

A problem!
When a button is pressed it can sometimes "bounce ", causing the signal to rapidly go from high to low to high to low, rather than a smooth transition from low to high then high to low. Luckily this problem can be solved by the brilliant Arduino Bounce Library . First, make a folder in your sketchbook folder called "libraries". Then unzip the Arduino Bounce Library into the library folder.

You will also need the Arduino Tone Library which is attatched (under GPLv3)

Next download the attached .pde and copy the code into the Arduino IDE. Click the upload button and you should now here the sound of win! ;)