class Dice {
public:
Dice(int pin1, int pin2, int pin3, int pin4, int pin5, int pin6, int pin7){
this->pin1 = pin1;
this->pin2 = pin2;
this->pin3 = pin3;
this->pin4 = pin4;
this->pin5 = pin5;
this->pin6 = pin6;
this->pin7 = pin7;
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(pin7, OUTPUT);
}
void rollDice();
private:
int pin1, pin2, pin3, pin4, pin5, pin6, pin7;
};
void Dice::rollDice(){
digitalWrite(pin1, LOW);
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin5, LOW);
digitalWrite(pin6, LOW);
digitalWrite(pin7, LOW);
digitalWrite(pin4, LOW);
int r = random(1,7);
switch(r){
case 1:
digitalWrite(pin1, LOW);
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin5, LOW);
digitalWrite(pin6, LOW);
digitalWrite(pin7, LOW);
digitalWrite(pin4, HIGH);
break;
case 2:
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin5, LOW);
digitalWrite(pin6, LOW);
digitalWrite(pin7, HIGH);
digitalWrite(pin4, LOW);
break;
case 3:
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
digitalWrite(pin3, LOW);
digitalWrite(pin5, LOW);
digitalWrite(pin6, LOW);
digitalWrite(pin7, HIGH);
digitalWrite(pin4, HIGH);
break;
case 4:
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin5, HIGH);
digitalWrite(pin6, LOW);
digitalWrite(pin7, HIGH);
digitalWrite(pin4, LOW);
break;
case 5:
digitalWrite(pin1, HIGH);
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
digitalWrite(pin5, HIGH);
digitalWrite(pin6, LOW);
digitalWrite(pin7, HIGH);
digitalWrite(pin4, HIGH);
break;
case 6:
digitalWrite(pin1, HIGH);
digitalWrite(pin2, HIGH);
digitalWrite(pin3, HIGH);
digitalWrite(pin5, HIGH);
digitalWrite(pin6, HIGH);
digitalWrite(pin7, HIGH);
digitalWrite(pin4, LOW);
break;
}
}
Dice die(2,3,4,5,6,7,8);
void setup() {
pinMode(9, INPUT_PULLUP);
}
void loop() {
if(!digitalRead(9)){
die.rollDice();
delay(200);
}
}