Code đếm từ 00 – 99 bằng LED 7 đoạn sử dụng Arduino Uno trên Proteus

Sơ đồ nguyên lý

Code

// Khai báo chân cho LED 7 đoạn
const int segA = 2;
const int segB = 3;
const int segC = 4;
const int segD = 5;
const int segE = 6;
const int segF = 7;
const int segG = 8;
const int segDP = 9;

// Khai báo chân cho các digit
const int digit1 = 10;
const int digit2 = 11;

// Mảng lưu trữ các mẫu hiển thị số
int numbers[10][7] = {
  {1,1,1,1,1,1,0}, // 0
  {0,1,1,0,0,0,0}, // 1
  {1,1,0,1,1,0,1}, // 2
  {1,1,1,1,0,0,1}, // 3
  {0,1,1,0,0,1,1}, // 4
  {1,0,1,1,0,1,1}, // 5
  {1,0,1,1,1,1,1}, // 6
  {1,1,1,0,0,0,0}, // 7
  {1,1,1,1,1,1,1}, // 8
  {1,1,1,1,0,1,1}  // 9
};

// Hàm hiển thị số
void displayNumber(int num) {
  digitalWrite(segA, numbers[num][0]);
  digitalWrite(segB, numbers[num][1]);
  digitalWrite(segC, numbers[num][2]);
  digitalWrite(segD, numbers[num][3]);
  digitalWrite(segE, numbers[num][4]);
  digitalWrite(segF, numbers[num][5]);
  digitalWrite(segG, numbers[num][6]);
}

void setup() {
  // Khởi tạo chân output cho LED 7 đoạn
  pinMode(segA, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segE, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);
  pinMode(segDP, OUTPUT);

  // Khởi tạo chân output cho các digit
  pinMode(digit1, OUTPUT);
  pinMode(digit2, OUTPUT);

  // Khởi tạo ban đầu
  digitalWrite(digit1, LOW);
  digitalWrite(digit2, LOW);
}

void loop() {
  for (int i = 0; i < 100; ++i) {
    int tens = i / 10; // Chữ số hàng chục
    int ones = i % 10; // Chữ số hàng đơn vị

    // Hiển thị chữ số hàng chục
    digitalWrite(digit1, HIGH);
    displayNumber(tens);
    delay(50);
    digitalWrite(digit1, LOW);

    // Hiển thị chữ số hàng đơn vị
    digitalWrite(digit2, HIGH);
    displayNumber(ones);
    delay(50);
    digitalWrite(digit2, LOW);
  }
}

Leave a Reply

Your email address will not be published. Required fields are marked *