본문 바로가기
PRACTICE/Basic

[Arduino] 간단한 프린트문, 8개의 LED를 비트단위로 ON/OFF 하기

by 1005 2020. 8. 18.

 

< 아두이노의 구조를 알 수 있는 간단한 프린트문 >

 

1
2
3
4
5
6
7
8
9
10
11
12
void setup() {
  // put your setup code here, to run once: 한번만 호출
  Serial.begin(115200);     //시리얼통신(통신속도) 셋업
  Serial.println("setup");
}
 
// 펌웨어 프로그램: 멈추면 안되기 때문에 무한반복 시켜줘야함. 
// 운영체제 역시 마찬가지로 무한루프가 돌고있음. 
void loop() {
  // put your main code here, to run repeatedly: 반복 호출
  Serial.println("loop");
}

 

 

< 8개의 LED를 비트단위로 ON/OFF >

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int LED[8= {13,12,11,10,9,8,7,6}; //led 8개 포트넘버
//int bit_data[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; <- 비트체크 조건문으로 변경함.
 
void setup() {
  for(int i=0; i<8; i++)
    pinMode(LED[i], OUTPUT); //led 초기화
}
 
int cnt = 0;
 
void loop() {
  for(int i = 0; i < 8; i++){
    if(cnt & (0x01<<i)) //비트 당 값이 false(0)인지 true(1)인지 체크
      digitalWrite(LED[i],HIGH); //true면 led on
    else 
      digitalWrite(LED[i],LOW); //false면 led off
  }
  
  delay(1000); //1초 
  cnt++;
}

 

 

 

댓글