Notice
Recent Posts
Recent Comments
250x250
Creative Code
15_ArrayFND 본문
728x90
const int fnd_digit[6] = {A0,A1,A2,A3,A4,A5};
const int fnd_data[7] = {2,3,4,5,6,7,8};
int arr[6] = {0,0,0,5,2,5};
const unsigned int num[10][7] = {{1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,1,0,1,1}};
int cnt = 0;
void displayinit() {
for (int i = 0; i<7; i++) {
pinMode(fnd_data[i],OUTPUT);
}
for (int i = 0; i<6; i++) {
pinMode(fnd_digit[i],OUTPUT);
}
}
void display_set(int *pin) {
for (int i = 0; i<7; i++) {
digitalWrite(fnd_data[i],HIGH);
}
}
void display_clear() {
for (int i = 0; i<7; i++) {
digitalWrite(fnd_data[i],LOW);
}
}
void display_number(int n, int d) {
display_clear();
for (int i = 0; i<6; i++) {
digitalWrite(fnd_digit[i],HIGH);
}
digitalWrite(fnd_digit[d-1],LOW);
for (int i = 0; i<7; i++) {
digitalWrite(fnd_data[i],num[n][i]);
}
}
void display_numbers(unsigned long numbers) {
unsigned int num_100000 = numbers/100000;
unsigned int num_10000 = (numbers%100000)/10000;
unsigned int num_1000 = (numbers%10000)/1000;
unsigned int num_100 = (numbers%1000)/100;
unsigned int num_10 = (numbers%100)/10;
unsigned int num_1 = (numbers)%10;
display_number(num_100000,1);
display_number(num_10000,2);
display_number(num_1000,3);
display_number(num_100,4);
display_number(num_10,5);
display_number(num_1,6);
}
void setup() {
Serial.begin(115200);
displayinit();
display_clear();
//첫번째 자리만 1로 출력
}
void loop() {
display_numbers((unsigned long)196106);
}
728x90
'Arduino(C,C++)' 카테고리의 다른 글
14_FND (0) | 2023.08.14 |
---|---|
13_PCINT_ultrasonic(timer1함수를 이용한 거리측정) (0) | 2023.08.14 |
12_timer1_piezo (0) | 2023.08.14 |
11_timer1_led (0) | 2023.08.14 |
10_ultrasonic(초음파 거리재기) (0) | 2023.08.11 |