BASIC4MCU | 질문게시판 | 답변 : 아두이노 FND 숫자가 오르다가 멈추는 것 질문
페이지 정보
작성자 master 작성일2019-04-16 10:01 조회3,067회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=8257
본문
for(int j=0; j<8; j++){ boolean bit=bitRead(fnd_num[i],7-j); digitalWrite(fnd_pin[j],bit); }delay(500);for(int j=0; j<8; j++){ boolean bit=bitRead(fnd_num[i],7-j);
이 문장이 세그먼트 출력입니다.
딜레이 위치는 for()문 다음에 바로 넣어야지 출력한 세그먼트를 0.5초동안 볼 수 있습니다.
//#define BUTTON 12const int fnd_pin[8]={ 2,3,4,5,6,7,8,9};byte fnd_num[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//void setup(){for(int i=0;i<8;i++)pinMode(fnd_pin[i],OUTPUT);pinMode(10,OUTPUT); digitalWrite(10,1);pinMode(11,OUTPUT); digitalWrite(11,1);pinMode(12,OUTPUT); digitalWrite(12,0);pinMode(BUTTON,INPUT);}//void loop(){for(int i=0; i<10; i++){for(int j=0; j<8; j++){ boolean bit=bitRead(fnd_num[i],7-j); digitalWrite(fnd_pin[j],bit); }delay(500);}}이렇게 되겠죠
여기에 스위치 체크하는 문장을 넣어야합니다.
bool flag=0,run=0;if(digitalRead(BUTTON)){if(flag==0){ flag=1; run^=1; }}else{ flag=0; }스위치를 누를 때마다 run 변수를 토글(반전) 시키는 코드입니다.
생소하다면 잘 숙지해서 써먹으세요
앞으로도 계속 응용해서 써먹을 일이 많은 코드입니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-04-16 오전 10:08:07// by Ok-Hyun Park//#define BUTTON 12const int fnd_pin[8]={2,3,4,5,6,7,8,9};byte fnd_num[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};bool flag=0,run=0,bit;int i=0;//void setup(){for(i=0;i<8;i++)pinMode(fnd_pin[i],OUTPUT);pinMode(10,OUTPUT); digitalWrite(10,1);pinMode(11,OUTPUT); digitalWrite(11,1);pinMode(12,OUTPUT); digitalWrite(12,0);pinMode(BUTTON,INPUT);i=0;}//void loop(){if(digitalRead(BUTTON)){if(flag==0){ flag=1; run^=1; }}else{ flag=0; }//for(int j=0; j<8; j++){ bit=bitRead(fnd_num[i],7-j); digitalWrite(fnd_pin[j],bit); }delay(500);//if(run){if(++i>9)i=0;}}
댓글 0
조회수 3,067등록된 댓글이 없습니다.