rjconcepcion
Published © CC BY-NC-SA

Arduino Binary Dice

Are you playing ludo in this quarantine? If you are. I have created a binary dice for you. You just need an Arduino and a few components.

BeginnerFull instructions provided1 hour1,940

Things used in this project

Hardware components

Arduino Uno
×1
5 mm red Leds
×3
330 ohms Resistor.
×3
AC 100-240V to DC 21 V 2A Power Supply Adapter.
×1
Preformed Breadboard Jumper Wire
×1
Solderless Breadboards
×1
Flexible Breadboard Jumper Wire
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Diagram

Code

Binary Dice Code

Arduino
// Binary Dice
// www.rjconcepcion.com

// Variable declaration
int const d1 = 2;
int const d2 = 4;
int const d3 = 6;
int const btn = 12;

// aleatory number variable
int number = 0; 

void setup() {
  Serial.begin(9600);

  pinMode(d1, OUTPUT);
  pinMode(d2, OUTPUT);
  pinMode(d3, OUTPUT);
  pinMode(btn, INPUT_PULLUP); // Set input with pullup resistor

  randomSeed(analogRead(0)); // Inicialize random number generator

}

void loop() {
  
  // Start with all leds on.
  digitalWrite(d1, HIGH);
  digitalWrite(d2, HIGH);
  digitalWrite(d3, HIGH);
  
  
  // Read buttom state
  if (digitalRead(btn) == LOW) {
    delay(20);

    if (digitalRead(btn) == LOW) {
      number = random(7);         // Generate a random number between 0 and 6.
    }
  }

  // Switch case structure allows to take an action depends number value. Every case represent a binary number using leds.
  switch (number) {
    case 0:
      break;

    case 1:
      digitalWrite(d1, HIGH);
      digitalWrite(d2, LOW);
      digitalWrite(d3, LOW);
      delay(5000);
      break;

    case 2:
      digitalWrite(d1, LOW);
      digitalWrite(d2, HIGH);
      digitalWrite(d3, LOW);
      delay(5000);
      break;

    case 3:
      digitalWrite(d1, HIGH);
      digitalWrite(d2, HIGH);
      digitalWrite(d3, LOW);
      delay(5000);
      break;

    case 4:
      digitalWrite(d1, LOW);
      digitalWrite(d2, LOW);
      digitalWrite(d3, HIGH);
      delay(5000);
      break;

    case 5:
      digitalWrite(d1, HIGH);
      digitalWrite(d2, LOW);
      digitalWrite(d3, HIGH);
      delay(5000);
      break;

    case 6:
      digitalWrite(d1, LOW);
      digitalWrite(d2, HIGH);
      digitalWrite(d3, HIGH);
      delay(5000);
      break;

    default:
      break;
    
  }

  number = 0; 

  delay(250);
  digitalWrite(d1, LOW);
  digitalWrite(d2, LOW);
  digitalWrite(d3, LOW);
  delay(250);

}

Credits

rjconcepcion
11 projects • 8 followers
Electronic is my passion. I like to work with programming devices like Arduino, ESP8266, Raspberry Pi. I enjoy design electronic projects.
Contact

Comments

Please log in or sign up to comment.