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);
}
}