Arduino Projects - 2020

September to December

Time on My Hands
The Clock Section


Clock with 7-Segment LED display. Don't use the Arduino Nano (right edge) as the multiplexer... way too many wires !!


In the end, it wasn't even a bright display


Much easier with the MAX7219 LED multiplexer mounted on the back of the display. Only two power wires and three data wires to the display.
The board mounted vertically is a DS3231 battery-backed clock module. The microprocessor at the top formats the time data for the display.
A 1 Hz interrupt from the clock module times the data read.


Clock variant with small LCD display. The clock module in the middle is accurate to two minutes per year.


Clock variant with large 4-line x 20-character LCD display and buttons to set the date and time.
The display is driven with an IIC/I2C interface that requires only SCL and SCA inputs.


Frequency Synthesizer

Frequency Synthesizer, 2 to 30 MHz. Rotate the knob to change frequency, push the knob in to change step size.
The code initially running in the Nano has been moved to a single ATmega328p chip.



The temperature sensor is the black transistor-sized device in the middle.
The 10-bit Analog to Digital converter in the Nano microprocessor gives what appears to be a very
precise reading, but the step-size is almost 0.8 degrees Celsius.


Outdoor Temperature and Humidity

I bought a few Sensirion SHT35 temperature/humidity modules and hooked one up to an Arduino Nano microprocessor board.
It's the tiny black square on the blue circuit board held by the clothes-pin.
My first cut fed the data to an 8-digit, 2-line monochrome LCD. I upgraded the display to a 1.8-inch 128x160 pixel color OLED
display that was uncovered in an archeological dig in the garage.


I moved the sensor to another board, added a 100 mW UHF data transmitter, and moved it to the backyard.
The transceiver is the module with the spring antenna. It sits idle until TTL level serial data is fed in.
The transmitted data format uses starting and ending symbols ( "<" and ">") and puts the comma-separated temp and humidity values in between.


The receiver, indoors, uses a transceiver identical to the one used for transmitting.
Software in the Nano has a function that inspects the incoming serial stream and starts saving the data in an array when the "<" is found and stops when the ">" is found.
Another Arduino library function separates the values in the array by looking for the "comma" separator.
That made parsing the data to display a lot easier than I expected it to be.
The top line displays the low and high temperature since the last reset.


Data Logger

Data logger reads three analog values and saves time-stamped CSV (Comma-Separated Variable) data to the SD card mounted on the back of the display module.
Power consumption is 20 mA at 5 volts.


When I take the SD memory card out and move it to the EeePC laptop, I can use Excel to plot the time-stamped data.
The data range shown here is zero to 5 volts on each channel.


Scaling resistors added and inputs connected to solar-panel-charged battery bank
Yellow trace is the solar panel voltage from 2:28 PM, through the night, until 8:45 AM the next morning.
Blue trace is the battery voltage, dipping slighty at night, and being recharged after sunrise.
Magenta trace, reading zero, is a disconnected channel.