세그먼트 활용하기
const unsigned int led_a = 2;
const unsigned int led_b = 3;
const unsigned int led_c = 4;
const unsigned int led_d = 5;
const unsigned int led_e = 6;
const unsigned int led_f = 7;
const unsigned int led_g = 8;
void setup() {
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);
digitalWrite(led_a, HIGH);
digitalWrite(led_b, HIGH);
digitalWrite(led_c, HIGH);
digitalWrite(led_d, HIGH);
digitalWrite(led_e, HIGH);
digitalWrite(led_f, HIGH);
digitalWrite(led_g, HIGH);
}
void loop() {
}
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
void setup() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
for (int x=0; x<7; x++) {
digitalWrite(led[x], HIGH);
}
}
void loop() {
}

LED 켜고 끄기 반복
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
void setup() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void loop() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], HIGH);
}
delay(500);
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
delay(500);
}
KakaoTalk_20260326_221911418.mp4
0.50MB
LED 차례대로 켜고 꺼보기 -> 주파수: 0.286Hz, 0.5초 간격으로 켜지고 꺼짐
delay를 50으로 설정하면 초당 2.86회 / 2.86Hz, delay를 5로하면 초당 28.6회 28.6Hz, delay를 1로하면 초당 143회
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
void setup() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void loop() {
for (int x=0; x<7; x++) {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
digitalWrite(led[x], HIGH);
delay(500);
}
}
KakaoTalk_20260326_222145607.mp4
2.71MB
함수로 만들기
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void setup() {
display_init();
}
void loop() {
for (int x=0; x<7; x++) {
display_clear();
digitalWrite(led[x], HIGH);
delay(1);
}
}
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
const unsigned int num_0[7] = { 1, 1, 1, 1, 1, 1, 0 };
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void display_0() {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num_0[x]==1?HIGH:LOW);
}
}
void setup() {
display_init();
display_clear();
display_0();
}
void loop() {
}

0, 1숫자 표시하기
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
const unsigned int num_0[7] = { 1, 1, 1, 1, 1, 1, 0 };
const unsigned int num_1[7] = { 0, 1, 1, 0, 0, 0, 0 };
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void display_0() {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num_0[x]==1?HIGH:LOW);
}
}
void display_1() {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num_1[x]==1?HIGH:LOW);
}
}
void setup() {
display_init();
}
void loop() {
display_clear();
display_0();
delay(500);
display_clear();
display_1();
delay(500);
}
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
const unsigned int num[2][7] = {
{ 1, 1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 0, 0, 0, 0 }
};
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void display_0() {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num[0][x]==1?HIGH:LOW);
}
}
void display_1() {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num[1][x]==1?HIGH:LOW);
}
}
void setup() {
display_init();
}
void loop() {
display_clear();
display_0();
delay(500);
display_clear();
display_1();
delay(500);
}
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
const unsigned int num[2][7] = {
{ 1, 1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 0, 0, 0, 0 }
};
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void display_number(int n) {
if (0<=n&&n<=1) {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num[n][x]==1?HIGH:LOW);
}
}
}
void setup() {
display_init();
}
void loop() {
display_clear();
display_number(0);
delay(500);
display_clear();
display_number(1);
delay(500);
}
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
const unsigned int num[2][7] = {
{ 1, 1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 0, 0, 0, 0 }
};
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void display_number(int n) {
if (0<=n&&n<=1) {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num[n][x]==1?HIGH:LOW);
}
}
}
void setup() {
display_init();
}
void loop() {
for (int n=0; n<=1; n++) {
display_clear();
display_number(n);
delay(500);
}
}
KakaoTalk_20260326_231304612.mp4
0.25MB
숫자표시 함수 일반화 하기
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
const unsigned int num[10][7] = {
{ 1, 1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 0, 0, 0, 0 },
{ 1, 1, 0, 1, 1, 0, 1 },
{ 1, 1, 1, 1, 0, 0, 1 },
{ 0, 1, 1, 0, 0, 1, 1 },
{ 1, 0, 1, 1, 0, 1, 1 },
{ 1, 0, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 0, 0, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 0, 1, 1 },
};
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void display_number(int n) {
if (0<=n&&n<=9) {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num[n][x]==1?HIGH:LOW);
}
}
}
void setup() {
display_init();
}
void loop() {
for (int n=0; n<=9; n++) {
display_clear();
display_number(n);
delay(500);
}
}
KakaoTalk_20260326_232353008.mp4
1.85MB
시리얼 입력으로 숫자 표시하기
const unsigned int led[7] = { 2, 3, 4, 5, 6, 7, 8 };
const unsigned int num[10][7] = {
{ 1, 1, 1, 1, 1, 1, 0 },
{ 0, 1, 1, 0, 0, 0, 0 },
{ 1, 1, 0, 1, 1, 0, 1 },
{ 1, 1, 1, 1, 0, 0, 1 },
{ 0, 1, 1, 0, 0, 1, 1 },
{ 1, 0, 1, 1, 0, 1, 1 },
{ 1, 0, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 0, 0, 1, 0 },
{ 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 0, 1, 1 },
};
void display_init() {
for (int x=0; x<7; x++) {
pinMode(led[x], OUTPUT);
}
}
void display_clear() {
for (int x=0; x<7; x++) {
digitalWrite(led[x], LOW);
}
}
void display_number(int n) {
if (0<=n&&n<=9) {
for(int x=0; x<7; x++) {
digitalWrite(led[x], num[n][x]==1?HIGH:LOW);
}
}
}
void setup() {
Serial.begin(115200);
display_init();
}
void loop() {
if (Serial.available()) {
char userInput = Serial.read();
if ('0' <= userInput && userInput <= '9') {
int num = userInput - '0';
display_clear();
display_number(num);
}
}
}

'아두이노' 카테고리의 다른 글
| 아두이노 - 도트 매트릭스 (0) | 2026.03.29 |
|---|---|
| 아두이노 millis (0) | 2026.03.29 |
| 아두이노 - 서보모터, 초음파 (0) | 2026.03.23 |
| 아두이노 - Timer (빛, 부저) (0) | 2026.03.23 |
| 아두이노 - 조이스틱, 부저, 서보, 초음파 (0) | 2026.03.22 |