본문 바로가기

Arduino/[1] Arduino introduction

[Arduino] #7. 아두이노 디지털/아날로그 출력하기 & 예제

728x90
반응형

아두이노 우노

저번 포스팅에서 입출력 함수를 배웠다면, 이번 포스팅에서는 디지털/ 아날로그 입출력 함수를 통해 직접 아두이노를 구동해보자.

 

입출력 선언

pinMode(variable,status);
//variable(변수)를 status로 입출력을 정의한다.

/*
status로 가능한 것은 OUTPUT(출력), INTPUT(입력)이 있다.
대문자임에 유의한다!
*/

 

디지털 입력 & 출력

digitalWrite(value,status);
//value(변수)의 디지털값을 출력한다. 아두이노 기준에서는 '작동시킨다'가 정확하겠지만 편의상 '출력한다'라고 칭하겠다.
//디지털 값을 출력한다는 것은 0,1값을 보내는 것으로 status가 1이면 실행, 0이면 정지라고 보면 된다.

digitalRead(value,status);
//value의 디지털 값을 읽는다. 일반적으로 센서에 사용한다.
//ex)자석센서: 0이면 자석이 붙여지지 않은 상황, 1이면 자석과 붙어있는 상황

아날로그 입력 & 출력

analogWrite(value,status);
//value(변수)로의 아날로그 값을 출력(작동)한다. status만큼 아날로그 출력한다.
//일반적으로 상세하게 아날로그 값을 작동할 LED와 같은 부품에 사용한다. (0~255의 밝기를 조정할 수 있다.)

analogRead(value,status);
//value의 아날로그 값을 읽는다. 일반적으로 센서에 사용한다. 대부분의 센서가 아날로그 값을 가진다.

디지털/ 아날로그 입출력

디지털 입출력 회로

위 회로도는 가장 기초적인 디지털(아날로그) 회로이다. 이 회로도를 가지고 디지털(아날로그) 예제를 풀 수 있다..

 

블링크 예제: 1초 간격으로 LED가 꺼졌다가 켜지게 만들기  - 디지털 출력

const int LED = 3; //3번 핀을 변하지 않는 상수로써 LED변수로 선언한다.
void setup() {
  pinMode(LED, OUTPUT);//LED를 아웃풋(출력대상)으로 정한다.
  //모든 센서와 부품들에 있어 꼭 필요한 문장이다!! 이 문장이 없으면 부품들이 작동하지 않는다.
}

void loop() {
  digitalWrite(LED, HIGH);   // LED를 출력(작동)한다.
  delay(1000);                       // 1초 기다린다. (밀리초단위)
  digitalWrite(LED, LOW);    // LED를 정지한다. LOW에 0을 넣어도 똑같이 작동한다.
  delay(1000);                       //1초 기다린다. (밀리초단위)
}

 

페이딩 예제: 서서히 밝아졌다 어두워지기 - 아날로그 출력

int LED = 3; //3번 핀을 LED 변수로 정의한다.

void setup() {
  pinMode(LED, OUTPUT); // 변수의 입출력 정의!!
}

void loop() {
	for(int i=0;i<255;i++){//0부터 255까지 반복 -> 서서히 밝아짐
    	analogWrite(LED,i);//LED를 i만큼 아날로그 출력
        delay(5);//5밀리초 기다리기
    }
	for(int i=255;i>=0;i--){//255부터 0까지 반복 -> 서서히 어두워짐
    	analogWrite(LED,i);
        delay(5);
    }
  
}

Tip!

일반적으로 아두이노 13번은 아두이노 내의 LED와 연결되어있다. 그래서 실제로 LED를 연결하지 않은 채 pinMode(13,OUTPUT); 문장을 입력하면 아두이노 내 LED가 작동하는 것을 볼 수 있다.

 

delay(time);함수는 time만큼 아두이노의 작동을 중단하는 함수이다. 이때 프로그램 수행이 아닌 '아두이노의 작동을 중단'한다는 것에 주의하자! 나중에 millis함수를 다뤄 superloop(여러 코드에서 아두이노 중단없이 주기를 가지고 수행되는 프로그램)을 만들어보자.

아두이노 입출력 아두이노 입력 출력 arduino 입출력

728x90
반응형
댓글