/*Câu 2:
Viết chương trình điều khiển một LED 7 đoạn.
Cho hiển thị từ số 0 đến 9 và ngược lại.
*/
bool isSegmentActivated;
const byte numeralBinary[10] =
{
B00000011, // 0
B10011111, // 1
B00100101, // 2
B00001101, // 3
B10011001, // 4
B01001001, // 5
B01000001, // 6
B00011111, // 7
B00000001, // 8
B00001001, // 9
}; // Set up từng led con trong mỗi led 7 đoạn
const int segmentPins[] = {5, 6, 7, 8, 9, 10, 11, 12}; // DP-g-f-e-d-c-b-a
void ledDisplay(int number)
{
for(int segment = 0; segment < 8; segment ++)
{
isSegmentActivated = bitRead(numeralBinary[number], segment);
isSegmentActivated = !isSegmentActivated; // for common cathode display
digitalWrite(segmentPins[segment], isSegmentActivated);
}
}
void setup() {
// put your setup code here, to run once:
for(int j = 0; j <= 8; j ++){
pinMode(segmentPins[j], OUTPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
for(int i = 0; i < 10; i ++){
ledDisplay(i);
delay(1000);
}
for(int i = 9; i >= 0; i --){
ledDisplay(i);
digitalWrite(segmentPins[0], HIGH);
delay(1000);
}
}