element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Open Arduino
  • Challenges & Projects
  • Project14
  • Open Arduino
  • More
  • Cancel
Open Arduino
Blog The blind's man clock
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Open Arduino to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: idanre1
  • Date Created: 17 Apr 2018 10:22 AM Date Created
  • Views 2890 views
  • Likes 16 likes
  • Comments 12 comments
  • ardbeginner
  • accessibility_projects
  • openarduinoch
Related
Recommended

The blind's man clock

idanre1
idanre1
17 Apr 2018
image

Open Arduino

Enter Your Project for a chance to win a grand prize for the most innovative use of Arduino or a $200 shopping cart! The Birthday Special: Arduino Projects for Arduino Day!

Back to The Project14 homepage image

Project14 Home
Monthly Themes
Monthly Theme Poll

 

Hi everybody!

I wear eye glasses since I know myself and during the years the number are only going one way, UP

Without them I cannot see almost anything, everything is blurry.

There is one problem, if my kids wake in the middle of the night, I really want to know what time is it, and wearing my glasses several times at night is not an option.

 

Then I came with a solution, even though I can see digits, the colour stays correct.

I wanted to build a clock that will consist of 1 RGB led, and every hour during the night will have different colour coding.

image

And it goes like this on fritzing:

02010-CommonAnodeCircuit

 

And goes like this on breadboard:

I removed some unrelated circuitry from other projects that still on my breadboard

image

 

How to remember colour-hour index?

Since remembering 24 colour by heart is too much I thought using some nice colour palette that will represent sunrise/sundown so remembering the exact hour won't be that hard.

Also, I don't really need 24 hours but only dark hours, so I only included 19:00 -> 07:00 hours.

My draft is:

image

Arduino code

I will be using two libraries:

https://github.com/BretStateham/RGBLED

https://github.com/PaulStoffregen/Time

Complete code can be found in my github: https://github.com/idanre1/rgb_clock

Colour palette relies in separate H file in double array, so I could easily change palette without diving into the code too much...

 

The community voice

I would like to thank genebren, neilk, mcb1, jc2048, balearicdynamics and jw0752 for their helpful comments.

It is great seeing that projects you think are great, also seems interesting for other people.

I will try to summarize the comment so far and also add offline comments I got from other people I talked to regarding this project.

Accuracy

Arduino by itself cannot provide accurate clock over time without aux devices.

Solutions I know so far are (ordered by complexity):

  • RTC
  • NTP (From internet time server).
    • ETH module is needed.
    • Using esp8266 board instead of Arduino, e.g. node-MCU. I am not sure the solution will apply to open-arduino project since there is no Arduino anymore image
  • MSF Radio Time Signal
    • Sync clock by receiving radio signal
    • e.g. UK
      • MSF Radio Time Signal : Time : Products & Services : Time & Frequency : Science + Technology : National Physical Laborat…
    • Other countries might have other methods
  • GPS
    • Costly

Arduino time library actually supports all of the solutions above, so from SW perspective its no big change.

 

I think my solution will be to add RTC, I am not sure the module will arrive on time for the contest schedule, but I will order one for long term solution...

 

LED contrast issues

For start, I would like to say I accidentally connected the RED pin to a non-PWM pin in arduino (pin 8), I moved it to pin 6 and now the colors are much more rich than I thought. +1 to cheap RGB led image

Additional improvements are:

  • Flashing different colors
  • Using neopixel module
    • https://github.com/adafruit/Adafruit_NeoPixel
    • Colors contrast is great!
    • Limits to finite numbers of colors
  • Using st7735 SPI true color screen
    • https://github.com/adafruit/Adafruit-ST7735-Library
    • All screen will be with 1 big square with solid color
    • Screen can now support more delicate colors
    • Instead of flashing two colors maybe use split screen of two colors can also work.

 

I must say after playing around with the color values and move RED pin to PWM,

I did managed to find more than 12 distinguishable colors to project on cheap RGB LED.

 

LED replacement approaches people mentioned:

  • Use Braille code
  • Using text to speech engine to speak the time

Both approaches are much more complicated

 

Thanks again for all the people that are interested in the project image

 

Making it like arduino brick

I have decided to try and build the module as an arduino brick.

The pins of the board will suite exactly in the right arduino's pins so it will be easy to make it portable and extensionable.

imageimage

In the video below you can see clearly how the brick fits inside the arduino uno.

I also provided debug hooks for allowing to test the colors of the LED in a more quick way

By pressing r,R,g,G,b,B one can change the values of the LED for finding better colors as he wish.

Prints to serial are also included, I also made the debug code enabled with macro for saving MIPS in operational mode (hopefully for better clock accuracy)

Power source

image

Pretty simple, 5v cellp hone wall wart with type B USB cable

Making the colors more precise

I have tried many methods for making the colors more distinguishable.

The most accurate method found so far is putting the clock inside an open box and during the night the emitted light is very soft and accurate

image

The sunrise/sundown colors are easy to remember and the quality of my life has been improved, at least at night image

Wish list

1. Adding RTC. The module has enough room for adding RTC, I just need to wait until the item will reach my post office.

2. Config time

     Currently the simplest method I am using is to set it to 19:00 upon reset of the arduino.

     I can build screen and button with the whole bloat but I prefer other way.

     I have bought an IR receiver, I will also search for old TV remote and will try to find and easy and simple clock setup

     Something like: 1 button to enter setup mode, (LED will blink), press 4 digits 1725 will be to set the time for 17:25:00, then press setup again (LED will be solid)

Demonstration

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

Next steps

Receive the RTC

Final notes

I must say the last couple of weeks were great.

I was able to approximate the time during the night, since the granularity of the indication is per hour the time drift is fairly insignificant. I set the time 2 weeks ago and i didnt even notice 1 min drift.

Also the sun colors also help to quickly remember by heart the color to hour transformation.

I am sure RTC will probably minimize the drift further but since the arduino code is simple and all debug hooks can be turned off by macro the drift is minimized to bare min.

 

I hope that anybody that will want to build the piece have enough info in this walkthrough.

 

Regards

Idan

  • Sign in to reply

Top Comments

  • balearicdynamics
    balearicdynamics over 7 years ago +4
    Sounds very good. As you can see correct colors, why not a version based - instead of an RGB LED - with Nexopixel? A small 8 LEDs array is cheap, light is more readable and better quality and it can be…
  • idanre1
    idanre1 over 7 years ago in reply to genebren +4
    You are absolutely right When trying to play with colors I see that its a problem to actually generate all sorts of colors and its not "true" RGB... Flashing of of colors sounds a good idea. Though I did…
  • genebren
    genebren over 7 years ago +3
    Nice solution to the problem of not being able to see the digits on a clock. I have used LED colors to show data on small projects, but sometimes it is difficult do distinguish yellow from orange and other…
  • idanre1
    idanre1 over 7 years ago in reply to jc2048

    Thanks for the suggestion Jon

    I have added the methos to the list image

     

    Idan

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jc2048
    jc2048 over 7 years ago

    A further solution to setting the time that you might add to your list is reception of a radio time signal.

     

    Here's some information on the one that covers the UK (it used to be called 'Rugby time' until they moved the transmitter site):

     

    http://www.npl.co.uk/science-technology/time-frequency/products-and-services/time/msf-radio-time-signal

     

    It's very accurate as it comes from an atomic clock that is synchronised to the national time standard. It has the advantage that your clock could set itself and you then don't need a manual way to do that. It also automatically handles the changes from summer time to GMT.

     

    Other countries have similar transmissions. There's a higher powered station in Germany that covers most of Europe. I don't know about the US - they certainly used to have one. Note that the carrier frequencies and the form of modulation and coding of the data are different, so you need a receiver board that's specific to the one you want to receive.

     

    If you took this approach, you'd also need a RTC as a backup as they take the transmitter off air a couple of times a year for maintenance.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • jw0752
    jw0752 over 7 years ago

    Hi Idan,

    This will be a great project and it will solve a real world problem. I really like some of the suggestions made in the comments and I bet you can incorporate one or two of them.

    John

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • neilk
    neilk over 7 years ago in reply to idanre1

    It's a great idea! image

     

    I've also been disappointed with the range of colours that I could generate from an RGB LED.

     

    Maybe diffusing, as Jon Clift suggests, might also improve the colour range/perception.

     

    Neil

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • idanre1
    idanre1 over 7 years ago in reply to jc2048

    Hi

    That's a good point

    I will try project the LED through some milky glass or something

    Maybe even thin white paper will do the trick

     

    Idan

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube