Computer Science/Arduino, RB Pi

Arduino] 7세그먼트 사용하기

TwinParadox 2015. 11. 2. 10:56
728x90



세그먼트 자체에 대한 이해도 필요했고,

캐소드식과 애노드식에 대한 이해도 필요해서 꽤 오래 걸렸습니다.

어젯밤에 진짜 삽질해가지고, 작동은 커녕 아두이노 기판을 못 쓸 지경으로 만들 뻔했습니다.

회로에 대해서 최소한의 지식이 있다고 생각은 했는데, 정말 만행을 저질러서..

새벽에 일어나서 회로를 보고 다시 적용해서 작동하는데 성공했습니다.


지금 당장 아두이노를 해보면서 느끼는 건

코딩쪽에서의 애로사항보다는

회로쪽에서 애로사항이 더 많습니다.

최소한의 지식마저도 없이 접근하면 합선이 발생해 기판이 고장나는 것과 같은 문제가 발생하겠구나 싶었습니다.

저도 배우는 입장이라, 직접 해보면서 많이 배웁니다.

기껏해봐야 LED, 부저, 세그먼트, 온도센서 이 네 가지밖에 안 건드렸는데도, 꽤나 배운게 많습니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
void displayDigit(int num);
byte digit[10][7]=
{
  {0,0,0,0,0,0,1}, //0
  {1,0,0,1,1,1,1}, //1
  {0,0,1,0,0,1,0}, //2
  {0,0,0,0,1,1,0}, //3
  {1,0,0,1,1,0,0}, //4
  {0,1,0,0,1,0,0}, //5
  {0,1,0,0,0,0,0}, //6
  {0,0,0,1,1,1,1}, //7
  {0,0,0,0,0,0,0}, //8
  {0,0,0,1,1,0,0}, //9
};
void setup()
{
  for(int i=2;i<10;i++)
  {
    pinMode(i,OUTPUT);
  }
  digitalWrite(9,HIGH);
}
 
void loop()
{
  for(int i=0;i<10;i++)
  {
    delay(1000);
    displayDigit(i);
  }
}
 
void displayDigit(int num)
{
  int pin=2;
  for(int i=0;i<7;i++)
  {
    digitalWrite(pin+i,digit[num][i]);
  }
}
 
 
cs



728x90