아두이노 세븐세그먼트 예제Arduino Uno2015. 2. 19. 16:23
Table of Contents
반응형
세븐 세그먼트에는 두 가지 타입이 있는데 연결방식이 차이가 있습니다. Anode 타입의 경우 COM 2개와 DP를 VCC에 연결하고 Cathode의 경우에는 그라운드를 연결해주면 됩니다.
세븐세그먼트가 Anode의 경우 연결한 예시입니다. 아래 그림에서 G는 5V가 아닌 D6에 연결해야 합니다.
동작방식의 차이는 Cathode의 경우 HIGH 신호를 준 곳이 켜지지만 Anode의 경우에는 LOW신호를 준 경우에 켜집니다.
아래 표는 Anode의 경우를 나타낸 것입니다.
a | b | c | d | e | f | g | |
0 | LOW | LOW | LOW | LOW | LOW | LOW | HIGH |
1 | HIGH | LOW | LOW | HIGH | HIGH | HIGH | HIGH |
2 | LOW | LOW | HIGH | LOW | LOW | HIGH | LOW |
3 | LOW | LOW | LOW | LOW | HIGH | HIGH | LOW |
4 | HIGH | LOW | LOW | HIGH | HIGH | LOW | LOW |
5 | LOW | HIGH | LOW | LOW | HIGH | LOW | LOW |
6 | LOW | HIGH | LOW | LOW | LOW | LOW | LOW |
7 | LOW | LOW | LOW | HIGH | HIGH | LOW | HIGH |
8 | LOW | LOW | LOW | LOW | LOW | LOW | LOW |
9 | LOW | LOW | LOW | LOW | HIGH | LOW | LOW |
표에 따라 프로그래밍을 하면 원하는 결과를 얻을 수 있습니다.. 1초단위로 다른 숫자를 출력하도록한 예제입니다.
- #define pinA 0
- #define pinB 1
- #define pinC 2
- #define pinD 3
- #define pinE 4
- #define pinF 5
- #define pinG 6
- // the setup function runs once when you press reset or power the board
- void setup() {
- // initialize digital pin 13 as an output.
- pinMode(pinA, OUTPUT);
- pinMode(pinB, OUTPUT);
- pinMode(pinC, OUTPUT);
- pinMode(pinD, OUTPUT);
- pinMode(pinE, OUTPUT);
- pinMode(pinF, OUTPUT);
- pinMode(pinG, OUTPUT);
- }
- // the loop function runs over and over again forever
- void loop() {
- digitalWrite(pinA, LOW); //0
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, LOW);
- digitalWrite(pinE, LOW);
- digitalWrite(pinF, LOW);
- digitalWrite(pinG, HIGH);
- delay(1000);
- digitalWrite(pinA, HIGH); //1
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, HIGH);
- digitalWrite(pinE, HIGH);
- digitalWrite(pinF, HIGH);
- digitalWrite(pinG, HIGH);
- delay(1000);
- digitalWrite(pinA, LOW); //2
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, HIGH);
- digitalWrite(pinD, LOW);
- digitalWrite(pinE, LOW);
- digitalWrite(pinF, HIGH);
- digitalWrite(pinG, LOW);
- delay(1000);
- digitalWrite(pinA, LOW); //3
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, LOW);
- digitalWrite(pinE, HIGH);
- digitalWrite(pinF, HIGH);
- digitalWrite(pinG, LOW);
- delay(1000);
- digitalWrite(pinA, HIGH); //4
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, HIGH);
- digitalWrite(pinE, HIGH);
- digitalWrite(pinF, LOW);
- digitalWrite(pinG, LOW);
- delay(1000);
- digitalWrite(pinA, LOW); //5
- digitalWrite(pinB, HIGH);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, LOW);
- digitalWrite(pinE, HIGH);
- digitalWrite(pinF, LOW);
- digitalWrite(pinG, LOW);
- delay(1000);
- digitalWrite(pinA, LOW); //6
- digitalWrite(pinB, HIGH);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, LOW);
- digitalWrite(pinE, LOW);
- digitalWrite(pinF, LOW);
- digitalWrite(pinG, LOW);
- delay(1000);
- digitalWrite(pinA, LOW); //7
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, HIGH);
- digitalWrite(pinE, HIGH);
- digitalWrite(pinF, LOW);
- digitalWrite(pinG, HIGH);
- delay(1000);
- digitalWrite(pinA, LOW); //8
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, LOW);
- digitalWrite(pinE, LOW);
- digitalWrite(pinF, LOW);
- digitalWrite(pinG, LOW);
- delay(1000);
- digitalWrite(pinA, LOW); //9
- digitalWrite(pinB, LOW);
- digitalWrite(pinC, LOW);
- digitalWrite(pinD, LOW);
- digitalWrite(pinE, HIGH);
- digitalWrite(pinF, LOW);
- digitalWrite(pinG, LOW);
- delay(1000);
- }
반응형
'Arduino Uno' 카테고리의 다른 글
가변저항으로 조정하여 LED의 밝기 조정하기 (2) | 2015.10.19 |
---|---|
아두이노에서 리모컨 신호 수신 (0) | 2015.02.19 |
Arduino UNO에서 DC 모터 제어 (3) | 2015.02.16 |
아두이노 시뮬레이터 (0) | 2015.02.16 |
아두이노 튜토리얼 7 - Blink Without Delay (0) | 2015.02.11 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!