This is an analogue display unit for inside/outside temperature. It is built into an oak cabinet which also holds an valve amplifier (for Ipod & DAB radio), it is intended to be used in a conservatory. It displays Temperature now, max temp, min temp and rate of change of temp for internal & external temperature. The dials are updated every 5 mins and the temperature values and UNIX time are logged to an SD card.
I wanted analogue dials so originally spec'd aircore movements but had problems in sourcing. Next idea was to use one turn winch servos but these were noisy, had low position resolution and have large deadbands. In the end I used analogue servos for most dials (with 180 degree pointer movement on 320 degree dials). The two large temp displays needed more than 180 degrees so I made servos with external motors and ceramic 360 pot and used the analogue control boards from some old servos.
The servos have a common -ve rail which is switched by a MOSFET so the arduino can set the needle position and then freeze them by turning off the power.
Originally the design used solar cells and batteries but I changed this to mains adaptor as I needed to be able to charge the ipod from time to time (the valve amp charges the ipod but is very power hungry), the arduino controls a triac to turn on/off the amplifier and also a DAB radio, either via a push of the power switch or if the ipod has not been used for a while.
The circuit is very simple, arduino plus adafruit datalogging card (for SD card & RTC), two DS1307 temp sensors and a mosfet to switch the servos power, a triac to switch the valve amp power. I ran out of pins so the power switch and demo switch are used on a single analogue input pin with resistor ladder. A 7v5 laptop PSU powers the arduino and DAB radio and a simple linear 5v reg powers the servos.
Hardest part was turning the small shafts on a lathe which connect the servos to the dial pointers.
Palm_House_8.ino (20.9 KB)