Điều khiển hiển thị LED 7 Đoạn

Bởi nguyentruongphi (05/09/2025) 0 Bình luận

Chúng ta sẽ bắt đầu bằng cách tìm hiểu cách hoạt động của màn hình 7 đoạn, học cách điều khiển nó để hiển thị số một cách từng bước. Sau đó, chúng ta sẽ tạo ra một trò chơi, Chỉ cần nhấn một nút, một số ngẫu nhiên từ 1 đến 6 sẽ xuất hiện trên màn hình 7 đoạn.

_images/23_segment_cathode_1.png

Kết nối với Arduino:

_images/23_segment_5v.png

Code:

// Define the pins connected to the segments of the 7-segment display
int pinA = 2;
int pinB = 3;
int pinC = 4;
int pinD = 5;
int pinE = 6;
int pinF = 7;
int pinG = 8;

// Define the pin connected to the button
int buttonPin = 9;

void setup() {
    // Set all pins as outputs
    pinMode(pinA, OUTPUT);
    pinMode(pinB, OUTPUT);
    pinMode(pinC, OUTPUT);
    pinMode(pinD, OUTPUT);
    pinMode(pinE, OUTPUT);
    pinMode(pinF, OUTPUT);
    pinMode(pinG, OUTPUT);

    // Set the button pin as an input
    pinMode(buttonPin, INPUT);
}

void loop() {
    // Check if the button is pressed
    if (digitalRead(buttonPin) == HIGH) {
        // Wait for the button to be released before continuing
        while (digitalRead(buttonPin) == HIGH) {
            // Generate a random number between 1 and 6
            int num = random(1, 7);

            // Display the random number on the 7-segment display
            displayDigit(num);
            // Delay for a short period to allow visible display updates
            delay(100);
        }
        // Add a delay to debounce the button and prevent multiple rapid inputs
        delay(500);
    }
}


void displayDigit(int digit) {
    // Turn off all segments
    digitalWrite(pinA, LOW);
    digitalWrite(pinB, LOW);
    digitalWrite(pinC, LOW);
    digitalWrite(pinD, LOW);
    digitalWrite(pinE, LOW);
    digitalWrite(pinF, LOW);
    digitalWrite(pinG, LOW);

    // Turn on the segments needed for the desired number (LOW turns on the segments for common cathode)
    switch (digit) {
        case 1:
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        break;
        case 2:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinG, HIGH);
        break;
        case 3:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinG, HIGH);
        break;
        case 4:
        digitalWrite(pinB, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        break;
        case 5:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        break;
        case 6:
        digitalWrite(pinA, HIGH);
        digitalWrite(pinC, HIGH);
        digitalWrite(pinD, HIGH);
        digitalWrite(pinE, HIGH);
        digitalWrite(pinF, HIGH);
        digitalWrite(pinG, HIGH);
        break;
    }
}

Đóng góp ý kiến

Hotline 0938379351