Spa thermostat LCD display improvement suggestions please!
pmrobert
Posts: 675
I'm using a 16x2 LCD display in a spa thermostat. I have 4 buttons that do what I want - pump enable (which turns pump on), heat enable (which enables the LPG heater meaning other thermostat code can turn it on and off to maintain the set temp with a little hysteresis), set temp up and set temp down. Attached image is of my current display which is quite functional but I'm not happy with the inconsistency between pump enable and heat enable which I've described above. The last 5 characters of the display toggle "Heat-" and "Heat+' as an indicator of the actual heater operational state. I know I don't have a lot of display real estate to work with here but am open to any suggestions. "P+" and "H+" indicate enable/disable state of the pump and heater. I have thought of perhaps creating an alternating display screen that is more informative, again ideas and suggestions are requested. Also, there are multiple safeguards, both in my code and the heater control circuitry itself to prevent a heat on/pump off situation or runaway stuck heater on situation. It's very nice having these multiple cogs so you can dedicate one to just being the safeguard/watchdog.
-Mike
-Mike
Comments
One of the neat things you can do is re-define a custom character while it's on screen to change its look. And if you're using something fast like the Propeller, and can run your main code in a fixed-time loop, it becomes pretty easy to do.
I would replace "Heat+" and "Heat-" with "HTR" when the heater is on and either blanks or "---" when it's off.
http://www.digikey.com/product-search/en?x=0&y=0&lang=en&site=us&KeyWords=NHD-4.3-480272EF-ATXL%23-CTP-ND
Rayman on the forums makes a controller board to easily have this up and running with demo code. You can create your own fonts and buttons into bitmaps and store them in eeprom, then load them onto the display as needed. The LCD is touch sensitive and you can layout your touch areas over your graphics. There is more cost for the LCD and controller, but you get a lot more space and flexibility.
Add a bluetooth serial (HC05, HC06 etc) and use an android device (or nearby PC if available) as a very fancy display. Using the bluetooth module for serial means you don't need any additional code, unless you add ANSI control code support, which is a a few bytes.
We use Blue Term on a Nexus Tablet for many things. Since we already have the android for other purposes, the display is basically free. And you can use to same display for as many projects as you want.
Here is an example of this method, it for a robot and its in forth, but you should be able to get the general idea.
http://code.google.com/p/propforth/wiki/LittleRobotBluetooth