아두이노IDE에서는 많은 예제프로그램이 포함되어 있습니다.
BLINK를 해보기로 합니다.
메뉴에서
파일-->예제-->01.Basics-->Blink를 선택합니다.
선택하면 다음과 같은 소스가 새로운 창에서 보입니다.
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://www.arduino.cc
This example code is in the public domain.
modified 8 May 2014
by Scott Fitzgerald
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
C언어입니다.
미리 알아두어야 할 것만 간단히 설명하겠습니다.
주석 : 모든 프로그래밍 언어들이 주석문을 가지는데 C,C++,C#에서는 동일합니다.
기타 다른 언어들은 잘모릅니다...
위 예제이서는 주석문이 2가지가 있습니다.
1. /* ~ */ 형태
/*
주석내용들은 여러줄에 걸쳐
기술 가능합니다.
1
2
*/
2. // 의 형태
//주석은 1라인으로 사용합니다.
code...... ; //주석의 형태로 코드 뒤에도 사용가능합니다.
그래서 위의 예제에서는 /* ~ */ 와 //이외의 내용
setup 과 loop만 아두이노를 컨트롤하는 코드입니다.
setup과 loop는 아두이노에서 반드시 들어가야 하는 필수입니다.
이 둘중 하나라도 없으면 오류가 납니다.
실행을 하면
다음과 같이 13번 LED가 깜박이게 됩니다.
초록불이 꺼진 상태 |
초록불이 켜진상태 |
빨간색LED는 전원이 들어가가면 항상켜지는 녀석입니다.....
이제 위의 코드를 설명하겠습니다.
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
위 코드를 주석문을 빼고 한줄로 바꾸면 다음과 같습니다.
void setup(){pinMode(13,OUTPUT);}
c언어에서 void는 반환값이 없다는 뜻입니다.
c언어에서 모든 처리를 함수에서 실행하는데
setup도 함수 입니다.
이 seup은 아무것도 반환하지 않는다는 말입니다.
(잘 모르겠으면 그러려니 하고 지나서 나중에 보면 알 수 있을겁니다....)
setup합수는 아두이노보드의 초기화를 하는 함수입니다.
여기서는 13번 pin을 output으로 초기화하였네요...(주석문에 그런 내용들을 기재합니다.)
pinMode도 함수입니다.(아두이노 내부함수ㅒ
OUYPUT은 아두이노에서 정의한 상수입니다. 아마 0,1,2과 같은 것들일 것입니다.
13은 디지탈핀번호입니다.
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
이제 loop함수입니다.
loop함수는 setup함수에서 초기화한 후 전원이 들어있는 동안 무한 반복합니다.
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite함수는 13번 에 HIGH 또는 LOW를 설정하는 것 처럼
원하는 pin에 전원을 컨트롤합니다.
delay(1000); // wait for a second
delay함수는 밀리세컨드 만큼 아무일도 안하는 일을 합니다.
아두이노보드 또는 각종 센서들은 아무일도 안하는 일이 상당히 중요합니다.
즉, loop함수는 13번에 HIGH전원을 넣고 1초
13번에 LOW전원을 넣고 1초
만 합니다.
이제 코드를 아두이노로 업로드하여야 합니다.
오른쪽 화살표 아이콘을 누르면 코드를 컴파일하고
보드로 명령을 업로드 합니다.
그러면 즉시 실행됩니다.
p.s.
아두이노는 모든것이 오픈소스입니다.
아두이노 우노 보드 또한 오픈소스라 변종(?)보드가 상당히 많습니다.
여기 사용한 보드는 DCcduino uno입니다.
알리익스프레스로 주문한지 한달만에 받은 것입니다.
정품(오리지날제품)보다 상당히 저렴한 편이라 배송시간을 감당할 자신이 있다면
물건너 멀리 대륙제품을 써볼만 합니다.