[아두이노 기초] 전체 글 목록

1. 디지털 출력이란?

아두이노에서 출력은 크게 디지털 방식과 아날로그 방식으로 나눌 수 있다.그중 디지털 출력은 마이크로 컨트롤러의 특정 핀의 전압을 HIGH 또는 LOW로 설정하는 것입니다. 


위에 보이는 부분이 디지털 입출력핀 입니다. 총 13개를 사용할수 있습니다.


2. LED 제어하기

아두이노 하드웨어 외부에 브레드보드를 이용해서 LED를 깜박이도록 해보겠습니다.

500msec(0.5) 간격으로 LED 2개가 동시에 켜졌다가 꺼졌다가를 반복하도록 설정해 봅시다.

필요한 부품은 브래드보드 1개, 아두이노 uno, led와 1k옴 저항 2개 입니다.


A. 회로구성하기

회로구성을 아래 그림과 같이 합니다.

회로를 간단히 설명하자면 디지털출력 핀 8, 9번에서 5v출력을 내어주면 저항을 거쳐 led로 들어가 불이켜지게 된후 gnd그라운드로 빠져나가게 되는것입니다. (여기서 적색 5v선은 사용하지 않습니다.)


B. 소스코드 작성하기

int led1 = 8;

int led2 = 9;

 

void setup()

{

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

}

 

void loop()

{

digitalWrite(led1, HIGH);

digitalWrite(led2, HIGH);

 

delay(500);

 

digitalWrite(led1, LOW);

digitalWrite(led2, LOW);

 

delay(500);

}

소스코드에 내용을 하나하나 설명하도록 하겠습니다.

int led1 =8 int led2 = 9 : led가 연결된 디지털 핀의 번호를 설정

void setup() : 반복문에 들어가기전 설정하는 부분

pinMode(led1,OUTPUT) : 해당핀의 모드를 설정합니다. (대문자 주의)

OUTPUT=출력  INPUT=입력

void loop() : 코드가 시작되고 계속해서 반복되는 부분 ex)while(1)

digitalWrite(led1,HIGH) : led1번핀에 HIGH신호를 준다. 5v출력->LED ON

delay(500) : 500ms(0.5초)동안 딜레이를 준다.

digitalWrite(led1,LOW) : led1번핀에 LOW신호를 준다 5v출력 x->LED OFF


코드를 보드에 업로드 하고 동작을 확인해 보면 2개의 LED가 0.5초 간격으로 동시에 켜지고 동시에 꺼지는 것을 확인할 수 있습니다.


C. 여러 예제 직접 시도해보기

이부분이 가장 중요한 부분입니다. 항상 자신이 직접 생각해보는 것이 중요하기 때문에 간단한 소스코드지만 이것을 조금씩 수정해보며 해결해 보시길 바랍니다.

1. 2개의 LED를 서로 번갈아가며 깜빡이게 만들기.

2. LED1은 0.5초 간격 LED2는 0.25초 간격으로 깜빡이게 만들기.

꼭 해보시길 바랍니다! 궁금한 사항이 있으면 댓글로 질문해주세요. 빠른시간안에 답변해드리겠습니다.




+ Recent posts