#define A 0
#define B 2
#define C 4
#define D 5
#define E 12
#define F 14
#define G 15
#define doPlayDice 13
bool flag = true;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Starting....");
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(doPlayDice, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
//codeName("carlos");
if(flag){
resetSSD();
flag = false;
}
playDice();
}
//Electronic dice
void playDice () {
bool doPlayDiceState = digitalRead(doPlayDice);
if (doPlayDiceState == HIGH) {
int ranumber = random(1,7);
Serial.println(ranumber);
codeSSD(ranumber);
}
}
void resetSSD (){
digitalWrite(A,LOW);
digitalWrite(B,LOW);
digitalWrite(C,LOW);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
}
//code String to Number
void codeName (String palabra){
// Separar palabra en letras e imprimirlas
// Recorre cada letra de la palabra y la imprime
for (int index = 0; index < palabra.length(); index++) {
Serial.println(palabra.charAt(index));
int number = letraANumero (palabra.charAt(index));
Serial.println(number);
if (number > 9){
String numberStr = String(number);
for (int jdx = 0; jdx < numberStr.length(); jdx++) {
Serial.println(numberStr.charAt(jdx));
number = numberStr.charAt(jdx)-'0';
codeSSD(number);
delay(1000);
}
} else {
codeSSD(number);
}
delay(1000);
}
}
// Funcion que convierte una letra en su numero correspondiente
int letraANumero(char letra) {
if (letra >= 'a' && letra <= 'z') {
return (letra - 'a' + 1);
} else if (letra >= 'A' && letra <= 'Z') {
return (letra - 'A' + 1);
}
return 0; // No es una letra
}
//codeSevenSegmentDisplay
void codeSSD(int index) {
if (index<10 and index>0){
if (index == 1) {
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
} else if (index == 2){
digitalWrite(A,HIGH);
digitalWrite(B,HIGH);
digitalWrite(C,LOW);
digitalWrite(D,HIGH);
digitalWrite(E,HIGH);
digitalWrite(F,LOW);
digitalWrite(G,HIGH);
} else if (index == 3){
digitalWrite(A,HIGH);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,HIGH);
digitalWrite(E,LOW);
digitalWrite(F,LOW);
digitalWrite(G,HIGH);
} else if (index == 4){
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
} else if (index == 5){
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
digitalWrite(C,HIGH);
digitalWrite(D,HIGH);
digitalWrite(E,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
} else if (index == 6){
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
digitalWrite(C,HIGH);
digitalWrite(D,HIGH);
digitalWrite(E,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
} else if (index == 7){
digitalWrite(A,HIGH);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,LOW);
digitalWrite(G,LOW);
} else if (index == 8){
digitalWrite(A,HIGH);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,HIGH);
digitalWrite(E,HIGH);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
} else if (index == 9){
digitalWrite(A,HIGH);
digitalWrite(B,HIGH);
digitalWrite(C,HIGH);
digitalWrite(D,LOW);
digitalWrite(E,LOW);
digitalWrite(F,HIGH);
digitalWrite(G,HIGH);
}
}
}