Led countdown strip

Hey all,
I work as a middle school teacher and recently saw an amazing daily schedule that had a bar of LEDs to the side that would count down as the day progressed (image attached). This was on the side of a white board that allowed you to write the time and activity for students. I contacted the manufacturer, and unfortunately I do not have the $920 that their unit retails for (it's an assistive technology company so insurance usually pays) as I am a teacher. I would love to make a similar LED strip for my white board but have no experience with coding/arduinos. Any advice on where to get started would be greatly appreciated! I'll list what I'm looking for and my initial thoughts:
An easily adjustable countdown clock/timer paired with an led strip. For example, at 6 o clock I would like all 12 LEDs to be lit up, at 7 o clock 11 LEDs, and so on.
Small form factor - I plan on using magnets to mount the whole thing on my whiteboard.
Power supply would be a plug preferably.
The ability to change the time intervals using a dial would be great, but I'm not sure on the feasibility.

Materials:
WS2812 strips seem to be a good option for this project based on cost/function.
Adafruit 5v trinket - not sure if this would work for my needs, but the cost is very budget friendly and I like the idea of less wires.

If any part of my project or questions are unclear just let me know.

Hi cocopufft,

This is definitely a very feasible and fun project.
In the case of your project i would probably just go for an adruino UNO.
It is the base model and can make your life a bit easier (especialy if you want to tinker around a bit before finalising your solution).
Also there are a lot of options for LED strips.
I would advice to an LED which is digitally controlled (like the WS2812 you suggested)
This means that you can "talk" to the individual LED's in the strip using the arduino.
Which in turn makes sure you don't have to run a wire from the arduino to every LED.
You can probably use a phone usb power supply to power the whole thing (LED's don't take that much and are usually 5V just like the Arduino).

In order to get started i would suggest you get an arduino UNO (they are also pretty cheap) and start doing some tutorials (there are many on the internet) to get a feel for how the coding works. Then just start tinkering with the LED strip.

If you have problems or anything just ask on the forum :wink:

Hopefully that is enough to get you going.

Regards,
Teunman

Hi there!

I did some googling and I found this article about using the Trinket and NeoPixels (similar to WS2812 leds). The idea of that project is different from yours, but it may be able to give some pointers.

Give it a read and let me know if it is helpful.

Both of your replies were very helpful along with the links. Just wanted to make sure the LEDs and board I was looking at would work for me before I ordered them. I'm sure I'll have some specific questions after I learn the basics.

Do you have any idea how you are going to set the time?

There are some pretty large tolerances on the resonators used by these microcontrollers, so they are terrible at keeping time.

You either need a Real Time Clock module, or use something like a Wemos D1 mini to get the time from the network.
I'd prefer the latter option, because then you don't need to add extra code or buttons to set the time. (But you need WiFi for it to work, of course.)
As for the code to get the time of the network: it sounds much harder than it is. Many people have already done this, so you can just copy their code.

Pieter

Cocopufft:
I contacted the manufacturer, and unfortunately I do not have the $920 that their unit retails for (it's an assistive technology company so insurance usually pays)

To say that they are ripping people off would be an understatement.

As for the thing you say you want: I have make exactly that before, except mine was a countdown timer for a game (50-minute rounds; start with 50 LEDs lit and turn one off each minute; show a flashing animation when time is up). If I remember correctly, it didn't even take too much playing around to come up with it. Again, you are being ripped off.

I did a bit of digging around and wasn't able to find my code, but I'm pretty sure I used the APA102 LEDs and either the FastLED library or something similar to FastLED.
Link to FastLED library page: Overview · FastLED/FastLED Wiki · GitHub

Unfortunately, I don't have an Arduino or an LED strip on me, so I can't do any testing for verification. But I do remember that making it work was stupidly easy.

By the way, I was just looking at the hour-numbering in the photo. I'm guessing that the company that sells the device is American, as that would explain both the hour numbering (apparently we can't count past 12) and the outrageous price (apparently, we can count past 12, as long as the numbers have dollar signs in front of them).

You can either:

  1. be fancy with how you keep the time (for example, by means of a DS3231)

or:

  1. take the "shaku-dokei" approach and just reset it at 06:00 every day
    What is a shaku-dokei?
    Shaku-dokei | wadokei.org

For my timer, I used (2).

Actually, I just realized there is a third option:

  1. "Shaku-dokei" but with an on/off timer. (The on/of timer is the same kind you use for your lights so as to fool burglars when you're on vacation.)

I'd recommend a Nano, there's no need for the big Uno board when you're just in need of 2 or 3 pins total. I wouldn't fret about timing accuracy on that scale.

PieterP:
Do you have any idea how you are going to set the time?

There are some pretty large tolerances on the resonators used by these microcontrollers, so they are terrible at keeping time.

In my experience, the Arduino is accurate to within 1 or 2 minutes per day. That reminds me of old, wind-up alarm clocks: they were not precision timekeepers, but they were good enough to get you up at about the right time.

If you just want something that works, use either option (2) or option (3) from my previous post. You and your students won't notice 1 minute one way or the other.

As for actual code, you can work it out based on the examples here: