본문 바로가기
아두이노 (Arduino)

아두이노 - LED & 버튼

by JaeBaek 2020. 9. 30.

이제 아두이노 소스코드를 작성을 해서 아두이노를 실행해보도록 하겠습니다. 

 

 

■ 기초 지식

먼저 아두이노 우노로 설정을 맞추시고, Ctrl+N 을 눌러 새 파일을 만듭니다. 

 다음과 같은 파일이 실행이 되는 것을 확인할 수 있습니다. 먼저 '//' 으로 표시가 된 것은 주석문으로 설명을 넣을 수 있는 문구입니다. void 는 어떠한 매개변수도 받지 않겠다는 뜻이고, setup() 은 setup code를 설정하기 위한 함수입니다. 그리고 loop는 일반적으로 아두이노를 실행하기 위한 코드를 작성하는 부분입니다. 그리고 한번만 실행이 되는 setup과는 달리 loop()는 특정 조건이 없다면 영원히 처리가 됩니다. 

pinMode() 디지털로 데이터를 처리.
digitalWrite() 디지털로 출력 / HIGH, LOW 두 가지 값 지정
delay() 일정 시간 유지
analogWrite() 디지털과 달리 0~255까지의 값을 지정할 수 있다. 

 

■ LED 작동시키기

이제 아두이노 회로는 다음과 같이 구성을 하면 됩니다. 

 

 

Ex) LED 켜기

void setup(){
  pinMode(11,OUTPUT); // 디지털 11번 출력을 위한 설정
  digitalWrite(11,HIGH); // 디지털 11번 전원에 전원 출력
  delay(1000); // 1000ms = 1초 간 현재 상태 유지
  digitalWrite(11,LOW); // 디지털 11번 전원 출력 X
}

※ result
1초간 껏다가 켜집니다.

이제 아두이노에서 작성한 코드를 업로드하여 동작을 보면 잘 작동하는 것을 확인할 수 있습니다. 

 

 

Ex) loop()를 이용해서 계속 LED 깜빡이기

void setup(){
  pinMode(11,OUTPUT);
}

void loop(){
  digitalWrite(11,HIGH);
  delay(1000);
  digitalWrite(11,LOW);
  delay(1000);
}

※ result
LED가 계속해서 깜빡이는 것을 확인할 수 있다.

 

 

Ex) analogWrite() 를 사용한 LED 켜기

이전에 디지털 부분의 숫자 앞에 ~가 들어가면 세기를 조절할 수 있다고 했습니다. 그래서 디지털11 포트같은 경우도 ~가 있으므로 아날로그로 세기를 조절할 수 있습니다.

void setup(){
}

// 점점 밝아지는 LED
void loop(){
  for(int i=1;i<256;i++){
    analogWrite(11,i);
    delay(10);
  }
  delay(1000);
}

 

버튼

 버튼(Button) 같은 경우 끊어진 지점을 연결하는 역할을 합니다. 누를 경우 전류가 흐르고, 손을 떼는 경우 전류가 흐르지 않습니다. 

일반적으로 색칠한 부분처럼 일직선상으로 연결이 되어있는 것을 기억해야 합니다. 대각선 부분으로는 연결이 되지 않습니다. 따라서 버튼을 누르면 연결이 되게 되는 것입니다. 

버튼을 사용하는 경우에는 pinMode(포트, INPUT_PULLUP)와 bool 변수 =  digitalRead(포트); 두 가지 코드가 필요합니다. 

 

이제 버튼을 이용해서 LED가 어떻게 작동을 하는지 알아보도록 하겠습니다. 

 

회로는 다음과 같이 구성을 하고, 코드를 다음과 같이 작성을 하시면 됩니다. 

 

Ex) LED with Button

void setup() {
  // put your setup code here, to run once:
  pinMode(11,OUTPUT);
  pinMode(7,INPUT_PULLUP); // 디지털 7번을 버튼으로 인식
  
}

void loop() {
  bool button=digitalRead(7); // button 으로 디지털 7번이 버튼으로 눌리는지 설정

  if(button == true){
    digitalWrite(11,LOW);
  }
  else{
    digitalWrite(11,HIGH);
  }
}

※ result
버튼을 누르면 LED가 작동하는 것을 알 수 있다.

 

'아두이노 (Arduino)' 카테고리의 다른 글

아두이노 - 조도 센서 & 가변저항기  (0) 2020.09.30
아두이노 - RGB LED 모듈  (0) 2020.09.30
아두이노 - 전원(Power)  (0) 2020.09.30
아두이노 우노 구성품  (0) 2020.09.29
아두이노 종류  (0) 2020.09.29

댓글