Arduino Project - E-Dice! (Beginner)




Introduction: Arduino Project - E-Dice! (Beginner)

Well, I just got my Arduino kit in the mail yesterday, and I was very happy to get started! After about an hour or two, I decided to start making something fun:

An electronic dice. I had to make this myself, because there were no instructables that i could find with search! D:

Mine is not very advanced, but it will make a great beginner project as I built it in less than 20 minutes at about the most beginner level you can get. If you can think of any improvements, I encourage you to post them in the comments!

There were 1 or 2 pin placing errors, but I will provide a picture with where the pins should go at the end of the instructable.

Step 1: The Materials

For this electronic dice that I built, you will need:

1     Arduino UNO
1     Arduino Cable
1     Breadboard
7     Green LED's
1     Red LED
4     Long jumper wires
17   Small jumper wires
1     10k Ohm Resistor
1     Mini button switch


-Foam Core board
-X-acto knife
-9v battery holster

Step 2: Attaching the LED's to the Board

For the LED's, you want to put them at the very edges of the breadboard (NOT the + and - tracks) with the big pins of the LED's in spaces 5, 10, and 15. The negative pins will be facing towards the left of the picture. Do this for both of the sides.

The middle LED is a bit trickier, and it involved pulling the pins a little wider and having them on the 11 and 8 row on either side (You cannot have them on 9 and 10 because they conduct in rows)

For the red one you can put it wherever you want, as long as it is away from the green ones.

Step 3: Attaching the Wires to the LED's

For this step you will be attaching 7 small jumper wires to the positive sides of the LED's. I color coded mine to make it prettier and easier to do.

Once that is done you will want to attach the wires to the terminals on the arduino. I will mark the third picture to make it easier to understand

LED 1/red = pin 13
LED 2/orange = pin 12
LED 3/yellow = pin 11
LED 4/green = pin 10
LED 5/blue = pin 9
LED 6/white = pin 8
LED 7/black = pin 7

Red LED = pin 2 (digital)

Step 4: The Ground Wires

Now you want to add the ground wires to the negative lane at the top of the board. You will use 2 big jumpers for this part.

Once those two wires are in place at the top lane there, you will need to add 8 small jumpers onto the lanes where the big wires have landed.

Now comes the sort of tricky part. You need to attach a ground wire to a negative terminal on each LED. It will take a little bit of precision but once you have those in place you are nearly complete.

Step 5: The Button

For this step you will need 1 small jumper and 2 large ones. You will also need the button and the resistor.

Start by placing the button on an unoccupied lane, bridging between both halves like in the picture. Once you have that firmly in place you can add the last few pieces (which I drew on a piece of board for simplicity sake)

Place the components further towards the edge if you have big fingers. Otherwise it may not have enough room.

Step 6: Cover

If you want, and have the foam board, I would suggest covering up the bare led's. It makes it much nicer looking and easier to handle!

All i did was roughly mark the led spaces and twist an x-acto knife around inside. bam, done.

Step 7: Check Connections

The button needs to be attached to slot 4, and the indicator to slot 2. I made this mistake in my picture.

Step 8: The Code

I wrote this code myself. It seems to work just fine, I put in the delays to prevent from the button being smashed or spammed to cheat. If you know how to improve the code let me know, but if you don't it works just fine as is!

Sorry, i had to put it in .zip format because i was getting errors uploading as a .ino

Step 9: Done!

It should work fine now. If it does not, check your connections for the 999999th time and make sure everything is set in properly.

One more thing I forgot to add: It will also show the values in the serial monitor if you choose to plug it in to your computer. Unfortunately, my video of that was corrupted but I DO have a regular video of it operating off of a battery pack.

------- If you have any questions just leave them in the comments i'll try my best to answer---------

Make It Glow

Participated in the
Make It Glow

3 People Made This Project!


  • Electronics Contest

    Electronics Contest
  • Woodworking Contest

    Woodworking Contest
  • Home and Garden Contest

    Home and Garden Contest



5 years ago

when i clicked the button the LEDs of random number generated.......but LEDs keep looping instead of pushing tha button for 2nd time why?


7 years ago on Step 8

This code works really well for me, although I had to adjust it because I am using more than 6 numbers. The only problem is that it keeps looping. How do I get it to stop blinking?


7 years ago on Introduction

I made it but I'm trying to figure out how exactly it obtains a random number. It is a fun project I just feel stupid for not fully grasping that concept


9 years ago on Introduction

not quite sure what that resistor is wired to (a circuit diagram would help), but you should really have one resistor for each LED.

Also unsure what the progress LED is for?

As to the button, search for button debouncing. There is a library for it, it'll make the read a lot cleaner (probably doesn't hurt here, but in future).


Reply 9 years ago on Introduction

If the drop voltage across the LEDs is 3.3 or more then no resistor should be needed.


Reply 9 years ago on Introduction

To power the LEDs with 3.3V you could connect the +VE of the LED to the 3.3V on the arduino and the -VE of the LEDs to the digital pins, when the pin is low, the LED will turn on, and when the pin is high the LEDs won't light up because the LED is polarised.


Reply 9 years ago on Introduction

I'll look into the debouncing for the button. As for the progress LED, I really don't know WHY exactly I put it in but I figured it would be cool to have an LED showing when the randomizer is going :D

On my next revision I most definitely include these suggestions, Thank you!