From c9a32a90f6a431fc33d062839bfa2be030be9853 Mon Sep 17 00:00:00 2001 From: Chapan Harder Date: Thu, 21 May 2026 16:50:10 +0330 Subject: [PATCH] Make the dice with a seven segment. --- src/main.cpp | 146 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 123 insertions(+), 23 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 1823433..a3702f8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,37 +1,137 @@ #include -#define BLUE_LED 6 -#define YELLOW_LED 5 -#define RED_LED 3 -#define ANALOG_A0 A0 +#define LED_A 2 +#define LED_B 3 +#define LED_C 4 +#define LED_D 5 +#define LED_E 6 +#define LED_F 7 +#define LED_G 8 +#define LED_DOT 9 +#define BUTTON 10 -int Voltage = 0; +int Rrrs = 0; // Setup Section void setup() { - pinMode(BLUE_LED, OUTPUT); - pinMode(YELLOW_LED, OUTPUT); - pinMode(RED_LED, OUTPUT); + pinMode(LED_A, OUTPUT); + pinMode(LED_B, OUTPUT); + pinMode(LED_C, OUTPUT); + pinMode(LED_D, OUTPUT); + pinMode(LED_E, OUTPUT); + pinMode(LED_F, OUTPUT); + pinMode(LED_G, OUTPUT); + pinMode(LED_DOT, OUTPUT); + + pinMode(BUTTON, INPUT); + + randomSeed(analogRead(A0)); } // Loop Section void loop() { - Voltage = analogRead(ANALOG_A0); - Voltage = Voltage / 4; + if (Rrrs == 0) { + if (digitalRead(BUTTON) == LOW) { + Rrrs = random(1, 7); - if (Voltage > 170 && Voltage <= 255) { - analogWrite(RED_LED, Voltage-170); - analogWrite(YELLOW_LED, 0); - analogWrite(BLUE_LED, 0); + for (int led = 2; led < 10; led++) { + digitalWrite(led, HIGH); + delay(100); + } + } + + switch (Rrrs) { + case 1: + digitalWrite(LED_A, LOW); + digitalWrite(LED_B, HIGH); + digitalWrite(LED_C, HIGH); + digitalWrite(LED_D, LOW); + digitalWrite(LED_E, LOW); + digitalWrite(LED_F, LOW); + digitalWrite(LED_G, LOW); + digitalWrite(LED_DOT, LOW); + break; + case 2: + digitalWrite(LED_A, HIGH); + digitalWrite(LED_B, HIGH); + digitalWrite(LED_C, LOW); + digitalWrite(LED_D, HIGH); + digitalWrite(LED_E, HIGH); + digitalWrite(LED_F, LOW); + digitalWrite(LED_G, HIGH); + digitalWrite(LED_DOT, LOW); + break; + case 3: + digitalWrite(LED_A, HIGH); + digitalWrite(LED_B, HIGH); + digitalWrite(LED_C, HIGH); + digitalWrite(LED_D, HIGH); + digitalWrite(LED_E, LOW); + digitalWrite(LED_F, LOW); + digitalWrite(LED_G, HIGH); + digitalWrite(LED_DOT, LOW); + break; + case 4: + digitalWrite(LED_A, LOW); + digitalWrite(LED_B, HIGH); + digitalWrite(LED_C, HIGH); + digitalWrite(LED_D, LOW); + digitalWrite(LED_E, LOW); + digitalWrite(LED_F, HIGH); + digitalWrite(LED_G, HIGH); + digitalWrite(LED_DOT, LOW); + break; + case 5: + digitalWrite(LED_A, HIGH); + digitalWrite(LED_B, LOW); + digitalWrite(LED_C, HIGH); + digitalWrite(LED_D, HIGH); + digitalWrite(LED_E, LOW); + digitalWrite(LED_F, HIGH); + digitalWrite(LED_G, HIGH); + digitalWrite(LED_DOT, LOW); + break; + case 6: + digitalWrite(LED_A, HIGH); + digitalWrite(LED_B, LOW); + digitalWrite(LED_C, HIGH); + digitalWrite(LED_D, HIGH); + digitalWrite(LED_E, HIGH); + digitalWrite(LED_F, HIGH); + digitalWrite(LED_G, HIGH); + digitalWrite(LED_DOT, LOW); + break; + case 7: + digitalWrite(LED_A, HIGH); + digitalWrite(LED_B, HIGH); + digitalWrite(LED_C, HIGH); + digitalWrite(LED_D, LOW); + digitalWrite(LED_E, LOW); + digitalWrite(LED_F, LOW); + digitalWrite(LED_G, LOW); + digitalWrite(LED_DOT, LOW); + break; + default: + digitalWrite(LED_A, LOW); + digitalWrite(LED_B, LOW); + digitalWrite(LED_C, LOW); + digitalWrite(LED_D, LOW); + digitalWrite(LED_E, LOW); + digitalWrite(LED_F, LOW); + digitalWrite(LED_G, LOW); + digitalWrite(LED_DOT, LOW); + break; + } } - else if (Voltage > 85 && Voltage <= 170) { - analogWrite(RED_LED, 0); - analogWrite(YELLOW_LED, Voltage-85); - analogWrite(BLUE_LED, 0); - } - else { - analogWrite(RED_LED, 0); - analogWrite(YELLOW_LED, 0); - analogWrite(BLUE_LED, Voltage); + else if (Rrrs != 0 && digitalRead(BUTTON) == LOW) { + Rrrs = 0; + digitalWrite(LED_A, LOW); + digitalWrite(LED_B, LOW); + digitalWrite(LED_C, LOW); + digitalWrite(LED_D, LOW); + digitalWrite(LED_E, LOW); + digitalWrite(LED_F, LOW); + digitalWrite(LED_G, LOW); + digitalWrite(LED_DOT, LOW); } }