# Arduino Dice for Board Games

177

2

## Introduction: Arduino Dice for Board Games

You might have used these dice while playing LUDO and other board games. But being an electronic enthusiast I have to change this trend.

So I decided to make a electronic Dice. I used Arduino for my purpose.

## Step 1: DIY Arduino

This arduino is made by me using a atmega 328p microcontroller. The PCB for this is ordered from "jlcpcb.com" because they provide best in class pcbs for low prices. Then I soldered all parts and finally got this cute looking Arduino UNO.

All Schematics and Files are given in the Article of my Webiste - http://robocircuits.com

## Step 2: Making of Project

okay!!!!

enough about the Arduino. Now lets make the project. For random values I used random function in arduino ide to get values from 1 to 6 whenever I press the button. So watch this full video to know how this project is made.

## Step 3: Code

/* This code is designed by RoboCircuits

Suvbscribe me on youtube https://youtube.com/robocircuits or visit robocircuits.com We always have to include the library*/

#include "LedControl.h"

/* Now we need a LedControl to work with. ***** These pin numbers will probably not work with your hardware ***** pin 12 is connected to the DataIn pin 11 is connected to the CLK pin 10 is connected to LOAD We have only a single MAX72XX. */

LedControl lc=LedControl(12,11,10,1);

/* we always wait a bit between updates of the display */ unsigned long delaytime=500; byte six={B00000000,B11011011,B11011011,B00000000,B00000000,B11011011,B11011011,B00000000}; byte five={B00000000,B01100110,B01100110,B00011000,B00011000,B01100110,B01100110,B00000000}; byte four={B00000000,B01100110,B01100110,B00000000,B00000000,B01100110,B01100110,B00000000}; byte three={B11000000,B11000000,B00000000,B00011000,B00011000,B00000000,B00000011,B00000011}; byte two={B00000000,B00000000,B00000000,B01100110,B01100110,B00000000,B00000000,B00000000}; byte one={B00000000,B00000000,B00000000,B00011000,B00011000,B00000000,B00000000,B00000000};

void setup() { /* The MAX72XX is in power-saving mode on startup, we have to do a wakeup call */ lc.shutdown(0,false); /* Set the brightness to a medium values */ lc.setIntensity(0,8); /* and clear the display */ lc.clearDisplay(0); }

/* This method will display the characters (you need at least 7x7 leds to see the whole chars) */ void one1() { /* here is the data for the characters */ /* now display them one by one with a small delay */ lc.setRow(0,0,one); lc.setRow(0,1,one); lc.setRow(0,2,one); lc.setRow(0,3,one); lc.setRow(0,4,one); lc.setRow(0,5,one); lc.setRow(0,6,one); lc.setRow(0,7,one); delay(delaytime); } void two2() { /* here is the data for the characters */ /* now display them one by one with a small delay */ lc.setRow(0,0,two); lc.setRow(0,1,two); lc.setRow(0,2,two); lc.setRow(0,3,two); lc.setRow(0,4,two); lc.setRow(0,5,two); lc.setRow(0,6,two); lc.setRow(0,7,two); delay(delaytime); } void three3() { /* here is the data for the characters */ /* now display them one by one with a small delay */ lc.setRow(0,0,three); lc.setRow(0,1,three); lc.setRow(0,2,three); lc.setRow(0,3,three); lc.setRow(0,4,three); lc.setRow(0,5,three); lc.setRow(0,6,three); lc.setRow(0,7,three); delay(delaytime); } void four4() { /* here is the data for the characters */ /* now display them four by four with a small delay */ lc.setRow(0,0,four); lc.setRow(0,1,four); lc.setRow(0,2,four); lc.setRow(0,3,four); lc.setRow(0,4,four); lc.setRow(0,5,four); lc.setRow(0,6,four); lc.setRow(0,7,four); delay(delaytime); } void five5() { /* here is the data for the characters */ /* now display them five by five with a small delay */ lc.setRow(0,0,five); lc.setRow(0,1,five); lc.setRow(0,2,five); lc.setRow(0,3,five); lc.setRow(0,4,five); lc.setRow(0,5,five); lc.setRow(0,6,five); lc.setRow(0,7,five);

delay(delaytime); } void six6() { /* here is the data for the characters */ /* now display them six by six with a small delay */ lc.setRow(0,0,six); lc.setRow(0,1,six); lc.setRow(0,2,six); lc.setRow(0,3,six); lc.setRow(0,4,six); lc.setRow(0,5,six); lc.setRow(0,6,six); lc.setRow(0,7,six); delay(delaytime); }

void loop() { int x; if(analogRead(A4)==1000) { x = random(1,6); } switch(x){ case 1 : one1(); break; case 2 : two2(); break; case 3 : three3(); break; case 4 : four4(); break; case 5 : five5(); break; case 6 : six6(); break;} }