Shop OBEX P1 Docs P2 Docs Learn Events
Spa thermostat LCD display improvement suggestions please! — Parallax Forums

Spa thermostat LCD display improvement suggestions please!

pmrobertpmrobert Posts: 675
edited 2013-12-24 08:42 in General Discussion
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

spathermo.jpg
605 x 807 - 36K

Comments

  • JonnyMacJonnyMac Posts: 9,107
    edited 2013-12-22 17:13
    Have you considered custom characters, or even a animation? I've done lots of work with character LCDs and a customer character or the creative use of an animation can go a long way to improve the user interface.

    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.
  • SapphireSapphire Posts: 496
    edited 2013-12-22 20:00
    Try using upper case and lower case letters. For LCD displays, I use lower case for off and upper case for on. So "H" or "h" and "P" or "p" could be used to indicate the states.

    I would replace "Heat+" and "Heat-" with "HTR" when the heater is on and either blanks or "---" when it's off.
  • T ChapT Chap Posts: 4,223
    edited 2013-12-22 20:51
    If space is an issue but you want to stick with the 2x16 you can use a menu system if it is ok not to have all info showing at a single glance. I use a 2x16 with a menu, with buttons for up/down the menu and buttons for +/- input. If you want to do something a lot more flexible and customizable, then get something like the Newhaven here:

    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.
  • pmrobertpmrobert Posts: 675
    edited 2013-12-24 08:27
    Thanks to all, I have a lot of new ideas running through my head now! The next project, probably a fuel injector tester, will be getting that Newhaven. I already have one tester in daily production that uses a 4x20 VFD and a SCADA type display on the controlling PC and it would be nice to ditch the PC. Of course, I'll have to figure out a way to connect to the SQL database that stores results and so forth but I think an Ethernet connection to the server will do the job.
  • prof_brainoprof_braino Posts: 4,313
    edited 2013-12-24 08:42
    This might be too far outside the box, but since you asked:

    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
Sign In or Register to comment.