Make the dice with a seven segment.

This commit is contained in:
2026-05-21 16:50:10 +03:30
parent 666580ecbe
commit c9a32a90f6
+123 -23
View File
@@ -1,37 +1,137 @@
#include <Arduino.h>
#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);
}
}