재료

  • 점프 와이어 8개
  • 아두이노 우노 1개
  • 1㏀ 저항 3개
  • USB 케이블 1개
  • LED 3개
  • 브래드 보드 1개

 1장을 통해서 아두이노에 대한 기초와 아두이노 프로젝트를 하기 위한 준비를 마쳤으니 이제부터는 아두이노 프로젝트를 시작해보겠습니다. 첫 번째로 다루게 될 프로젝트는 간단한 프로그래밍을 통해 LED를 깜빡이게 하는 프로젝트입니다.




STEP1. 준비물

 아두이노 보드, USB 케이블, 브레드 보드, LED, 저항(1), 점프 와이어



STEP2. 회로도


 위에 보이시는 대로 회로를 연결해주시면 됩니다. LED의 두 다리는 서로 길이가 달라요. 한 쪽 다리는 길고 다른 쪽 다리는 상대적으로 짧은 데, 긴 다리를 애노드(Anode)라고 하며 짦은 다리를 캐소드(Cathode)라고 합니다. 애노드에는 VCC(전원)을, 캐소드에는 GND와 연결을 하면 되는데 항상 저항과 함께 연결하셔야 합니다. GND와 연결하기 전에 저항을 연결하는 것은 LED를 켤 때 저항을 사용하지 않으면 LED가 허용하는 최대 전류 값을 초과하여 LED가 고장이 날 수도 있기 때문입니다. 저항과 달리 LED는 극성이 있기 때문에 반대로 연결하면 전류가 흐르지 못해서 켜지지 않습니다. 꼭 주의해서 연결합시다.  LED의 긴 다리(애노드)는 13번 핀에 연결하면 되는 데, 이것은 디지털 핀 13번에 연결하는 것과 같습니다.


STEP3. 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const int LED=13; //LED는 디지털 핀 13번에 연결되어 있음
 
/*코드 블록에 이름을 붙이기 위한 것
  작동을 시작할 때 한 번만 실행되길 원하는 코드*/
void setup() {
  // put your setup code here, to run once:
  pinMode(LED, OUTPUT); //디지털 핀을 출력으로 설정
}
 
/*반복 실행될 코드*/
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED, HIGH); //LED를 켬
  delay(1000); //1초동안 대기
  digitalWrite(LED, LOW); //LED를 끔
  delay(1000); //1초동안 대기
}
cs

 아두이노 IDE를 이용해서 위와 같은 코드로 스케치를 작성하고, USB 케이블을 이용하여 스케치를 아두이노 보드로 업로드해줍니다.


SPEP4. 결과 확인


결과를 확인하면 위와 같이 1초에 한 번씩 LED가 깜빡거리는 것을 확인할 수 있습니다.


SPEP5. 응용

 이제는 위에서 진행한 프로젝트를 응용하여 LED 3개를 이용하여 연속해서 깜빡이도록 하겠습니다. 준비물로는 LED 2개와 저항 2개가 추가로 필요합니다. 아래와 같이 회로를 연결하고,


아래와 같이 코드를 작성해서 업로드해주시면,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const int LED1=13; //LED1는 디지털 핀 13번에 연결되어 있음
const int LED2=12; //LED2는 디지털 핀 12번에 연결되어 있음
const int LED3=8;  //LED3는 디지털 핀 8번에 연결되어 있음
/*코드 블록에 이름을 붙이기 위한 것
  작동을 시작할 때 한 번만 실행되길 원하는 코드*/
void setup() {
  // put your setup code here, to run once:
  pinMode(LED1, OUTPUT); //디지털 핀을 출력으로 설정
  pinMode(LED2, OUTPUT); //디지털 핀을 출력으로 설정
  pinMode(LED3, OUTPUT); //디지털 핀을 출력으로 설정
}
 
/*반복 실행될 코드*/
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(LED1, HIGH); //LED를 켠다
  delay(1000); //1초동안 대기
  digitalWrite(LED1, LOW); //LED를 끈다
  delay(1000); //1초동안 대기
  digitalWrite(LED2, HIGH); //LED를 켠다
  delay(1000); //1초동안 대기
  digitalWrite(LED2, LOW); //LED를 끈다
  delay(1000); //1초동안 대기
  digitalWrite(LED3, HIGH); //LED를 켠다
  delay(1000); //1초동안 대기
  digitalWrite(LED3, LOW); //LED를 끈다  delay(1000); //1초동안 대기
}
cs


다음과 같은 결과를 얻을 수 있습니다.

간단하죠?


댓글 0

MADE BY

김민정

사물인터넷, 아두이노