Arduino Projects

A list of serious Arduino based projects I have made that I think are worth making by others if you so wish. I have not included any experimental or prototype projects; if you want to see everything I’ve dabbled with and talked about please see the home page.

Dual colour version of animated clock

This is a different version of my earlier pong clock that uses a bi colour 16×32 LED matrix that is loosely based on the HUB75 standard. It uses Adafruit’s standard library and has some different modes to my older version. The modules are not perfect and can be hard to read but it was mainly made for something to do whilst we are all in quarantine.

An arduino Mega 2560 pro clone was used as the controller and this is the most complex project I’ve put together so far.


NIMH AA and AAA battery tester

An automatic battery tester which discharges up to 3 AA or AAA cells and displays the resulting true mAh rating on an LCD. Can be adapted to test lithium cells with code modification. Originally based on a project by Brian Hobbs but has some modifications by me to improve ease of use and accuracy. Uses an Arduino nano (Mega 328) as the controller. Proved to be quite accurate as long as the 5V supply voltage is kept to as close to 5V as possible e.g use a good quality regulator.

LCD alarm clock with multiple alarms and 1 sec per month accuracy with DS1307 RTC.

A decent alarm clock which displays time, date and temperature on a 16×2 LCD. Features multiple alarms with several melodies and up to 1 second per month accuracy with a standard DS1307 by using code to compensate for time drift. Again uses an Arduino nano but a Uno can be used with the case used in the project. Due to some of the changes I made to the code this should be used in 24 hour time display mode but a larger LCD could be used instead.

2.4Ghz (wifi) band scanner

A simple wifi band scanner which was built to detect interference from other non wifi devices that use the 2.4Ghz band. Displays output on a serial port and uses the poor man’s wifi scanner base source code. Useful for diagnosing wifi signal problems. This came in handy for finding the cause of wireless signal dropouts when signal strength was OK and routers replaced to no avail. The problem was external interference which only this scanner can detect rather than your usual smartphone app.

Scrolling message display

Not really a serious project as such but this was completed and cased and would come in handy for a educational project or simply to display a custom message during special events. Two further revisions were made, the first added a clock function that would show the date and time before the message and the third did the same replacing the message if a sensor input threshold was met. This was used with a gas sensor for experimentation during the planning of a future project. It serves as a clock / scrolling message display now.

Gas & smoke detector / air quality meter

This is another quick gadget I built as I have been experimenting with gas sensors for a planned project in the near future. This is an arduino based gas monitor which uses a MQ-2 sensor to detect hydrogen, methane, natural gas, alcohol and smoke. I had finished my experiments with the MQ-2 sensor and decided it was unsuitable for the planned project which was to detect unsafe levels of gas in battery charging rooms. I had a spare case and a Mega 328 microcontroller which had some faulty pins so I used it to build this simple device as I didn’t need all pins. I have removed the original version of this project as all it did was display the analog value on the 7 segment display. The new version of the code uses a formula from the datasheet to calibrate the sensor to give a more meaningful result. What this does is calculate the approximate PPM value of the gas the sensor is reading from the slope curve response from the device’s datasheet. It’s still not going to be accurate but much better than displaying just the raw analog value.

6 input digital voltmeter with up to 50V range

6 input Digital Voltmeter 0-50V range.This was designed as an add-on for a battery tester we use at work but can be used for any situation where the need to measure up to 6 voltages at once. It is powered from a 24V DC supply and uses an Arduino nano as the microcontroller. The incoming 24V supply is dropped to 9V via a regulator so it can be fed into the nano board. It uses the default analog reference as accuracy wasn’t a must have in our application (its only accurate to one decimal place) but for other uses an external precision reference IC should be used. However the code has the ability to calibrate the input channels to a reasonable level.

H2S Gas detector & monitor with automatic charger disconnection

This is a project I made for work which monitors Hydrogen Sulphide levels in the area where we charge our lead acid batteries. Often batteries are left on charge unattended so I designed a system that would automatically turn off the power to the chargers if gas from a faulty battery was detected. With it simply turning on a relay to disconnect the power it could also turn on an extractor fan. The monitor will also sound an alarm and continue to do so even if gas levels return to normal. An LCD shows how long ago the alarm was tripped. The system can then be reset after the faulty battery identified and the power is restored.


Animated LED matrix clock with Pong and other modes

An animated clock showing the time and date on a large red LED matrix display. This has 6 display modes one of which is where it plays pong with itself making something that’s both retro and modern. It is based on Nick’s LED projects clock but with my own modifications such as a separate 7 segment display showing the time when the matrix is off and the room temperature when it’s on. I changed some of the modes as well and housed it in a modern looking white case. This is ideal for a kitchen, lounge or conservatory as there is no built in alarm and there’s an optional PIR sensor that can turn off the main display when there is no-one in the vicinity. Saves on power and less attraction to burglars.

Basic AA cell tester –  can be adapted to test lithium cells and 12V SLA batteries

This is actually an improved version of the very first Arduino project I made that was put together as a permanent project. It’s a basic battery tester which with the code as it is can test AA and AAA NiMH cells but with code modification and load resistor selection can be used to test lithium cells and even 12V SLA batteries (via a voltage divider circuit of course, you don’t want to apply 12V directly to the Arduino’s pins!)

I’ve improved the display layout and included an elapsed time indicator as the tester’s ability to accurately measure the mAh rating of the battery is just not possible with the design. What we are really interested in is the length of time the battery will last for with a given load. Unless you use a constant current load or add the ability to measure the voltage drop across the load resistor and factor this into your formula for calculating the capacity it just won’t produce accurate results. I did originally intend to make a 12V SLA tester version of this which I eventually may do but I will release the code as-is for example purposes. All information is on the project page if you want to check it out.


Arduino based water pump timer using a 240×64 pixel GLCD

Another project I made using old parts that wouldn’t have been used for anything else. This time I used a GLCD for a water timer (OTT yeah I know) but rather than throw out unfinished projects from years ago it is better to repurpose them.

This timer is fairly simple as precision timing is not required for watering a garden. Two switches select the hour at which the pump turns on and the second for the duration required. It is ‘on’ the hour so if you select 11 the pump turns on at 11:00 and runs for up to 360 seconds depending on the values selected. Data is stored in EEPROM so that is not lost if there is a power failure. I’ve also added a few lines of code that turns the pump on again after 8 hours but this can be taken out if needed. A manual override switch completes the front panel so you can water manually on those exceptionally dry days without having to adjust the timer. It’s all a bit too complex for a simple task but I was fed up of those cheap timers that are either rubbish or just go faulty within a year. This could be installed in a garage, cellar or outbuilding with a long cable to the pump to minimise failure due to the weather. The display looks cool too. 🙂