-
포텐시오미터의 값을 읽어 7Segment x4EA에 표시하기Arduino/7 Segment x 4EA 2020. 11. 2. 18:27
포텐시오의 하드웨어적인 연결은 아래를 참고하자.
designatedroom87.tistory.com/201?category=896892
연결하면 아래와 같이 된다.
소스는 아래의 내용의 거의 다 가지고 온다.
아래를 참고해보자.
designatedroom87.tistory.com/274?category=900663
소스 코드
더보기/* 포텐시오미터의 아날로그 값(0~1023)을 디지털 핀에 출력한다. */ #define D1 10 #define D2 11 #define D3 12 #define D4 13 #define DIGIT 4 // 7SEGMENT에 표현할 수 있는 자리 수 // 행의 수는 우리가 표현할 십진수의 개수이며, // 열의 수는 십진수에 따른 수 표기에 필요한 세븐세그먼트핀의 수 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 }; // 0000에서 9999까지를 디지털 핀에 출력하는 함수 // 매개변수는 디지털 핀에 출력할 수 void FourDigitalNum(int _num) { int digit = 1000; int l_num = _num; int numArr[DIGIT] = {0,0,0,0}; // 디지털 핀에 출력할 숫자를 저장 int quota; // l_num을 digit로 나눈 몫 int remainer; // l_num을 digit로 나눈 나머지 int i = 0; // numArr배열의 인덱스 // 1. 숫자 분리 while (l_num != 0) { quota = l_num / digit; // 몫을 구한다. remainer = l_num % digit; // 나머지를 구한다. numArr[i++] = quota; // 출력할 수의 맨 앞자리 부터 저장 l_num = remainer; // 그 다음 자리의 수를 찾기 위해 설정 digit /= 10; // 그 다음 자리의 수를 찾기 위해 설정 } // 2. 분리한 수를 디지털 핀에 출력 for (int i = 0; i < DIGIT; i++) { DigitalNum(D1 + i, numArr[i]); delay(5); DigitalPinInit(); Serial.println(numArr[i]); } } 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: Serial.begin(9600); // 2번핀부터 9번핀까지 모두 설정 for (int i = 2; i < 10; i++) { pinMode(i, OUTPUT); digitalWrite(i,LOW); } // 디지털 핀에 대한 초기화 DigitalPinInit(); } void loop() { int poten = analogRead(A0); FourDigitalNum(poten); }
'Arduino > 7 Segment x 4EA' 카테고리의 다른 글
시리얼 통신을 이용해서 입력받은 수를 7Segment x4에 출력하기 (0) 2020.11.02 7Segment x 4EA와 아두이노의 연결 & 숫자 출력하기 (0) 2020.11.02