반응형

 




세븐 세그먼트에는 두 가지 타입이 있는데 연결방식이 차이가 있습니다. 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초단위로 다른 숫자를 출력하도록한 예제입니다.

  1. #define pinA 0  

  1. #define pinB 1  
  2. #define pinC 2  
  3. #define pinD 3  
  4. #define pinE 4  
  5. #define pinF 5  
  6. #define pinG 6  
  7.     
  8.     
  9. // the setup function runs once when you press reset or power the board  
  10. void setup() {  
  11.   // initialize digital pin 13 as an output.  
  12.   pinMode(pinA, OUTPUT);  
  13.   pinMode(pinB, OUTPUT);  
  14.   pinMode(pinC, OUTPUT);  
  15.   pinMode(pinD, OUTPUT);  
  16.   pinMode(pinE, OUTPUT);  
  17.   pinMode(pinF, OUTPUT);  
  18.   pinMode(pinG, OUTPUT);  
  19. }  
  20.     
  21. // the loop function runs over and over again forever  
  22. void loop() {  
  23.   digitalWrite(pinA, LOW);  //0                      
  24.   digitalWrite(pinB, LOW);                        
  25.   digitalWrite(pinC, LOW);                        
  26.   digitalWrite(pinD, LOW);                        
  27.   digitalWrite(pinE, LOW);                        
  28.   digitalWrite(pinF, LOW);                        
  29.   digitalWrite(pinG, HIGH);   
  30.   delay(1000);  
  31.     
  32.   digitalWrite(pinA, HIGH); //1                    
  33.   digitalWrite(pinB, LOW);                        
  34.   digitalWrite(pinC, LOW);                        
  35.   digitalWrite(pinD, HIGH);                        
  36.   digitalWrite(pinE, HIGH);                        
  37.   digitalWrite(pinF, HIGH);                        
  38.   digitalWrite(pinG, HIGH);     
  39.   delay(1000);  
  40.       
  41.   digitalWrite(pinA, LOW); //2                  
  42.   digitalWrite(pinB, LOW);                        
  43.   digitalWrite(pinC, HIGH);                        
  44.   digitalWrite(pinD, LOW);                        
  45.   digitalWrite(pinE, LOW);                        
  46.   digitalWrite(pinF, HIGH);                        
  47.   digitalWrite(pinG, LOW);     
  48.   delay(1000);  
  49.       
  50.   digitalWrite(pinA, LOW); //3                
  51.   digitalWrite(pinB, LOW);                        
  52.   digitalWrite(pinC, LOW);                        
  53.   digitalWrite(pinD, LOW);                        
  54.   digitalWrite(pinE, HIGH);                        
  55.   digitalWrite(pinF, HIGH);                        
  56.   digitalWrite(pinG, LOW);     
  57.   delay(1000);  
  58.         
  59.   digitalWrite(pinA, HIGH); //4               
  60.   digitalWrite(pinB, LOW);                        
  61.   digitalWrite(pinC, LOW);                        
  62.   digitalWrite(pinD, HIGH);                        
  63.   digitalWrite(pinE, HIGH);                        
  64.   digitalWrite(pinF, LOW);                        
  65.   digitalWrite(pinG, LOW);    
  66.   delay(1000);  
  67.       
  68.   digitalWrite(pinA, LOW); //5           
  69.   digitalWrite(pinB, HIGH);                        
  70.   digitalWrite(pinC, LOW);                        
  71.   digitalWrite(pinD, LOW);                        
  72.   digitalWrite(pinE, HIGH);                        
  73.   digitalWrite(pinF, LOW);                        
  74.   digitalWrite(pinG, LOW);    
  75.   delay(1000);  
  76.      
  77.   digitalWrite(pinA, LOW); //6         
  78.   digitalWrite(pinB, HIGH);                        
  79.   digitalWrite(pinC, LOW);                        
  80.   digitalWrite(pinD, LOW);                        
  81.   digitalWrite(pinE, LOW);                        
  82.   digitalWrite(pinF, LOW);                        
  83.   digitalWrite(pinG, LOW);    
  84.   delay(1000);   
  85.       
  86.   digitalWrite(pinA, LOW); //7     
  87.   digitalWrite(pinB, LOW);                        
  88.   digitalWrite(pinC, LOW);                        
  89.   digitalWrite(pinD, HIGH);                        
  90.   digitalWrite(pinE, HIGH);                        
  91.   digitalWrite(pinF, LOW);                        
  92.   digitalWrite(pinG, HIGH);    
  93.   delay(1000);   
  94.       
  95.   digitalWrite(pinA, LOW); //8  
  96.   digitalWrite(pinB, LOW);                        
  97.   digitalWrite(pinC, LOW);                        
  98.   digitalWrite(pinD, LOW);                        
  99.   digitalWrite(pinE, LOW);                        
  100.   digitalWrite(pinF, LOW);                        
  101.   digitalWrite(pinG, LOW);    
  102.   delay(1000);   
  103.       
  104.   digitalWrite(pinA, LOW); //9  
  105.   digitalWrite(pinB, LOW);                        
  106.   digitalWrite(pinC, LOW);                        
  107.   digitalWrite(pinD, LOW);                        
  108.   digitalWrite(pinE, HIGH);                        
  109.   digitalWrite(pinF, LOW);                        
  110.   digitalWrite(pinG, LOW);    
  111.   delay(1000);   
  112. }  



반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요.

+ Recent posts