-
7Segment x 4EA와 아두이노의 연결 & 숫자 출력하기Arduino/7 Segment x 4EA 2020. 11. 2. 18:02
테스트로 처음에 4자리 디지털 핀 중에서 맨 왼쪽의 a부분에만 LED를 켜려면
다음과 같이 연결하면 된다.
아두이노의 3.3볼트핀에 7Segment x 4EA의 11번핀을 연결하고
7Segment x 4EA의 12번핀에 220옴 저항을 12번핀과 같은 라인으로 저항의 한 다리를 왼쪽으로 되게 꽂는다.이 부분에 아두이노의 GND를 연결해서 a에 LED가 들어오면 된다.
아래는 아두이노와 7Segment와의 연결할 핀 설정 부분이다.
a(11)는 아두이노 2번핀. 괄호는 7Segment
b(7)는 아두이노 3번핀. 괄호는 7Segment
c(4)는 아두이노 4번핀. 괄호는 7Segment
d(2)는 아두이노 5번핀. 괄호는 7Segment
e(1)는 아두이노 6번핀. 괄호는 7Segment
f(10)는 아두이노 7번핀. 괄호는 7Segment
g(5)는 아두이노 8번핀. 괄호는 7Segment
dp(3)는 아두이노 9번핀. 괄호는 7Segment
세그먼트의 D1(12)을 아두이노 10번핀 220옴 저항과 연결
세그먼트의 D2(9)을 아두이노 11번핀 220옴 저항과 연결
세그먼트의 D3(8)을 아두이노 12번핀 220옴 저항과 연결
세그먼트의 D4(6)을 아두이노 13번핀 220옴 저항과 연결아래는 아두이노와 7Segment와의 하드 웨어 연결이다.
숫자가 너무 흐릿하게 나와서 위의 저항을 제거하고 연결을 하였다.
아래와 같이 연결한다.
7Segment의 4자리에서 맨 왼쪽에 숫자0을 출력하는 예제
소스는 7Segment의 내용을 그대로 가지고 온 부분이 있다.
아래의 내용을 참고하자.
designatedroom87.tistory.com/267?category=900171
아래의 내용도 참고를 하자.
designatedroom87.tistory.com/268?category=900171
소스 코드
더보기#define D1 10 // 아두이노의 디지털 핀 번호 #define D2 11 // 아두이노의 디지털 핀 번호 #define D3 12 // 아두이노의 디지털 핀 번호 #define D4 13 // 아두이노의 디지털 핀 번호 // 행의 수는 우리가 표현할 십진수의 개수이며, // 열의 수는 십진수에 따른 수 표기에 필요한 세븐세그먼트핀의 수 bool num[10][8] = { {1,1,1,1,1,1,0,0}, // 숫자0 {0,1,1,0,0,0,0,0}, // 숫자1 {1,1,0,1,1,0,1,0}, // 숫자2 {1,1,1,1,0,0,1,0}, // 숫자3 {0,1,1,0,0,1,1,0}, // 숫자4 {1,0,1,1,0,1,1,0}, // 숫자5 {1,0,1,1,1,1,1,0}, // 숫자6 {1,1,1,0,0,0,0,0}, // 숫자7 {1,1,1,1,1,1,1,0}, // 숫자8 {1,1,1,1,0,1,1,0} // 숫자9 }; void DigitalNum(int _num) { for (int i = 0; i < 8; i++) { digitalWrite(i + 2, num[_num][i]); } delay(1000); } void setup() { // put your setup code here, to run once: // 2번핀부터 9번핀까지 모두 설정 for (int i = 2; i < 10; i++) { pinMode(i, OUTPUT); digitalWrite(i,LOW); } // 디지털 핀에 대한 초기화 for (int i = 10; i < 14; i++) { pinMode(i, OUTPUT); digitalWrite(i,HIGH); } } void loop() { // put your main code here, to run repeatedly: digitalWrite(D1,LOW); DigitalNum(0); }
위의 예재를 이용해서 이번에는 7Segment의 디지털 핀 4자리에 숫자를 출력하는 예제
아래의 소스에서 함수 DigitalNum함수가 2개가 정의되어 있는 것을 볼 수 있는데,
C++은 오버로딩이 된다.
소스 코드
더보기// D1~D4핀에 숫자들을 표시하기 #define D1 10 #define D2 11 #define D3 12 #define D4 13 // 행의 수는 우리가 표현할 십진수의 개수이며, // 열의 수는 십진수에 따른 수 표기에 필요한 세븐세그먼트핀의 수 bool num[10][8] = { {1,1,1,1,1,1,0,0}, // 숫자0 {0,1,1,0,0,0,0,0}, // 숫자1 {1,1,0,1,1,0,1,0}, // 숫자2 {1,1,1,1,0,0,1,0}, // 숫자3 {0,1,1,0,0,1,1,0}, // 숫자4 {1,0,1,1,0,1,1,0}, // 숫자5 {1,0,1,1,1,1,1,0}, // 숫자6 {1,1,1,0,0,0,0,0}, // 숫자7 {1,1,1,1,1,1,1,0}, // 숫자8 {1,1,1,1,0,1,1,0} // 숫자9 }; void DigitalNum(int _num) { for (int i = 0; i < 8; i++) { digitalWrite(i + 2, num[_num][i]); } delay(1000); } // 디지털핀의 원하는 수를 표시한다. void DigitalNum(int Dpin, int _num) { digitalWrite(Dpin,LOW); for (int i = 0; i < 8; i++) { digitalWrite(i + 2, num[_num][i]); } } // 디지털 핀들을 초기화하는 함수 void DigitalPinInit() { // 디지털 핀에 대한 초기화 for (int i = 10; i < 14; i++) { pinMode(i, OUTPUT); digitalWrite(i,HIGH); } } void setup() { // put your setup code here, to run once: // 2번핀부터 9번핀까지 모두 설정 for (int i = 2; i < 10; i++) { pinMode(i, OUTPUT); digitalWrite(i,LOW); } // 디지털 핀에 대한 초기화 DigitalPinInit(); } void loop() { // put your main code here, to run repeatedly: DigitalNum(D1,0); delay(500); DigitalPinInit(); DigitalNum(D2,1); delay(500); DigitalPinInit(); DigitalNum(D3,2); delay(500); DigitalPinInit(); DigitalNum(D4,3); delay(500); DigitalPinInit(); }
'Arduino > 7 Segment x 4EA' 카테고리의 다른 글
포텐시오미터의 값을 읽어 7Segment x4EA에 표시하기 (0) 2020.11.02 시리얼 통신을 이용해서 입력받은 수를 7Segment x4에 출력하기 (0) 2020.11.02