Pages: 1 ... 3 4 [5]   Go Down
Author Topic: Arduino WordClock  (Read 13566 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Once again many thanks to Riva for his code and his help.
After many hours fiddling and learning a bit of C++ I've come up with my own branch of his code.

Features:
Uses push buttons rather than a rotary encoder
 - set button if pressed briefly displays date and temp. If held for >2 seconds enter setup.
 - once in setup use up & down buttons to change value, and hit set to enter that value
 - brightness button to change LED brightness in steps
Added explanation prompts to setup (time entry)
 - now display 'Hour' before entering hours, then 'Min' before entering minutes etc. Easier than remembering order!
(quite happy with this one, mainly because I worked out how to implement it logically and did so quite quickly rather than headbutting a wall for hours as with my other changes!)
Font adjusted for 6 row high matrix
 - needs a little more work
 - an odd numbered matrix is better for font display (e.g. showing a 5 on an even number row display means the sizing is not equal to other characters)
Adjusted clock display to suit my requirements.



I currently have 5 buttons (set, up, down, mode, brightness). I'm thinking I can minimise that to 3 but using 'mode' and 'brightness' as 'up' and 'down' once in setup

* Clock_v6006_mod_19.ino (46.46 KB - downloaded 8 times.)
« Last Edit: January 09, 2014, 06:33:55 am by pippin88 » Logged

Norfolk UK
Offline Offline
Edison Member
*
Karma: 52
Posts: 2214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi pippin88,
Glad your managing to adapt the hardware/code to your needs.

The first word clock I built (code attached) used 3 buttons but I did not like them sticking out so opted for a rotary encoder hidden behind the back panel instead. It's spindle length is set so pressing the back panel will trigger the encoder button. I have only had to adjust the time about twice in the last 18 months so taking the back off to do so is no real problem. I was considering implementing a wireless connection so I could update/adjust over bluetooth or using a radio clock module . I cannot get GPS time in the house so that was not an option.

The time adjust code should/does light a character to denote what your adjusting but the prompt you have is a good idea.
You have prompt strings defined in PROGMEM but choose to built them in RAM one char at a time Is this an oversight or orphan code?

I'm looking forward to some pictures/video when you finished/happy with your clock.

* Clock_v5013.ino (47 KB - downloaded 7 times.)
Logged

Handle every stressful situation like a dog. If you can't eat it or hump it. Piss on it and walk away.

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Riva,

I'd planned to implement the prompt strings in PROGMEM up the top, but late last night found it easier to just implement a character at a time at that point in code. I've now done so (was easier than I thought, but hey - you don't have to understand code to copy it and fiddle it in to working!)

I plan to have my buttons recessed into the side. I've built up a few toys (CNC router, laser) that I'll be using in the build. I plan to make the clock body with light baffles etc all from one piece of wood, with an acrylic (perspex) from and back cover.

Attached is new revision which uses messages defined up top of program (easy to change) for the prompts in time setup.

I should note I haven't actually changed the daylight saving stuff (dates etc) just changed the naming to DST (terminology with use in Australia)

* Clock_v6006_mod_20.ino (45.14 KB - downloaded 8 times.)
Logged

Norfolk UK
Offline Offline
Edison Member
*
Karma: 52
Posts: 2214
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'd planned to implement the prompt strings in PROGMEM up the top, but late last night found it easier to just implement a character at a time at that point in code. I've now done so (was easier than I thought, but hey - you don't have to understand code to copy it and fiddle it in to working!).
The code I wrote may not be the best as this was the first project I had done using C++ but I could get the idea of what to do by looking at others code. Also I used a program that converts VB to C++ to see how to implement some of the conditional stuff

I plan to have my buttons recessed into the side. I've built up a few toys (CNC router, laser) that I'll be using in the build. I plan to make the clock body with light baffles etc all from one piece of wood, with an acrylic (perspex) from and back cover.
<Sigh> CNC router & laser. I wish I had the time/money & space for such items.

I should note I haven't actually changed the daylight saving stuff (dates etc) just changed the naming to DST (terminology with use in Australia)
BST is the Brit terminology but most people here would probably understand DST.
Logged

Handle every stressful situation like a dog. If you can't eat it or hump it. Piss on it and walk away.

Pages: 1 ... 3 4 [5]   Go Up
Jump to: