Shopping Cart

⚡️ We’re Helping 1 Million People Build Their First Robots

🇺🇸 Proudly Women-Owned Small Business

Arduino Hanukkah Menorah (Full Tutorial)

We sometimes use affiliate links in our content. This won't cost you anything, but it helps us to offset the costs of paying our writing team. You can support us directly on BuyMeACoffee. Thank you!

The holiday season is in full swing, and what better way to celebrate than with some robotics and prototyping! Regardless of what religion you believe in, these projects are designed to help you build technical and programming skills. We’ll be creating projects for celebrations around the world, so feel free to send us your holiday idea to info at learnrobotics.org.

The first holiday we’re going to celebrate is Hanukkah. Hanukkah is eight days long and starts December 2 through December 10th this year. Hanukkah is a Jewish holiday commemorating the rededication of the Second Temple in Jerusalem at the time of the Maccabean Revolt against the Seleucid Empire. You can read more about the religious celebration of Hanukkah here.

Create your own Arduino Hanukkah Menorah

For this project, you don’t have to know anything about Hanukkah except that we’ll be creating a Menorah. A Hanukkah Menorah is a type of candelabra that holds 9 candles. The center candle is called a Shamash. On either side of the Shamash there are four candles. Also, the Shamash is used to light the other candles. Finally, the candles are lit from right to left.

Why does this matter? We will use this information to develop both the hardware, and the software for the Menorah.

Wire Your Menorah on a Breadboard

First, let’s build the circuit for our Arduino Hanukkah Menorah. Here’s a wiring diagram for reference.

build a Hanukkah menorah using Arduino and LED's

You will need 8 blue LED’s, one white LED, 9 220-ohm resistors, one 10K-ohm resistor, one push button, some jumper wires, a breadboard, and an Arduino. You can pick up an I/O kit and an Arduino Uno, which has everything you need for this project. If you plan on doing additional Arduino projects, I recommend this kit because it includes a lot of modules for the price.

Remember to wire the LED’s with the correct polarity. The curved side will be plugged into a resistor, and the flat side will connect to ground.

If you’ve never wired a breadboard before, I recommend reading this overview first. Also, this tutorial assumes you have some basic experience with Arduino. If not, check out our Four Steps to Writing an Arduino Program before proceeding. We will not be setting up software in this tutorial.

Once your board is wired up, it’s time to write the program.

Write Code for the Arduino Menorah

Ideally, here’s how our Arduino Menorah will work.

When we press the button, the Shamash will light up and the first, right-most LED will turn on. Then as we press the button, subsequent lights will turn on from right to left. Finally, when we’ve reached the very last light (LED #8), and press the button again, the whole menorah will shut off.

We will use pins 2 through 10 to control the LED’s. The Shamash will be on pin 10. The button is connected to pin 12. Define some global variables to represent the pins. Then initialize the LED’s as OUTPUTS and the button as an INPUT. Next, begin the Serial monitor using the following code: Serial.begin(9600);

Now, we’re ready to create functionality for the Menorah. Because we’re using a button to turn on the LED’s, I recommend moving over the debouncing code. Copy the global variables and loop() method from the example Debounce code (File > Examples > Digital > Debounce).

Create a new method called lightMenorah() and paste the contents of loop() inside of it. We’re ready to modify this code. The Debounce code was written to control a single LED when the button is on (HIGH). We’ll change it so that when the button is HIGH, the Shamash is lit and then the first LED turns on. Here’s what the method looks like:

You’ll notice I created a counter so that we can illuminate the correct LED as the button is pressed. The main reason why the LED’s are plugged into consecutive pins, is to take advantage of the digitalWrite(pin, state) method. So, on each button click, we’ll increment the counter and light the “start” pin plus the counter. Then, when the counter hits 8, we’ll reset the counter to zero and shut off all of the LED’s.

We can control all of the LED’s using a digitalWrite(pin, state)inside of a “for” loop. Here’s an example of the allOff() method to shut off all the LED’s.

Lastly, call the lightMenorah() method in loop(), and test it out! Here’s a good reference if you’ve forgotten how to download code to your Arduino. I always recommend trying to write the code yourself, first before taking the answers. But if you’d like to compare your solution to mine, you can download the example code, below.

If you enjoyed this tutorial, be sure to Share it with a Friend! Tag us in your photos on Facebook & Instagram (@learnrobotics). And, if you’re feeling festive, feel free to Buy us a Coffee for the Holidays!

 

Support Content Like This

You May Also Like

Have a question? Need Help?

Thanks for dropping by! Comments are no longer moderated daily.
Before posting your comment, please consider buying a coffee.
If you'd like to work with Liz, you can schedule a call here.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Learn Robotics Botly Favicon

Become a Learn Robotics Insider

 

Be the first to know when we launch new robotics content. Plus gain FREE robotics tips to your inbox.

Awesome! Check your inbox for a surprise!

Remote Robotics Courses for High School, Middle School, or Pre-College Training

Join the Powered by Learn Robotics Program

Teach robotics anywhere with our turnkey robotics program!

Download our free program brochure!

Success! Check your email for the download!