IDE 설치하기
1. IDE 다운로드
아두이노 IDE 설치 다운로드 사이트 : www.arduino.cc/en/software
각자의 운영체제에 맞게 다운로드 받자. (Windows zip file으로 다운로드 받음)
2. IDE 실행하기
다운로드 받은 zip을 풀면 아래와 같이 나온다.
이 폴더에 arduino.exe를 실행하자.
3. IDE와 아두이노 연결하기
아두이노 IDE를 처음 열게되면, 아래와 같이 코드를 입력하는 편집기가 나온다.
최초 실행시에는 아두이노를 자동으로 잡아주지 않으므로 아두이노를 PC에 연결한 다음 Port를 잡아주어야 한다.
(위 사진에서 우측 하단에는 COM7에 잡혔다고 나오지만, 실제로는 아무것도 연결되지 않은 상태이다.)
아두이노를 PC에 연결하고, 아래와 같이 메뉴바 -> 툴 -> 포트 -> COM숫자 선택(연결된 위치 선택)하면 된다.
만약 아두이노 보드의 종류가 Uno가 아니라면 보드에서 자신의 아두이노 보드 종류에 맞게 선택하면 된다.
4. 아주 간단한 예제
아두이노에는 기본적으로 프로그래밍 가능한 LED 하나가 제공된다. 우리는 이 LED를 일정한 간격으로 실행하는 것을 작성해본다.
처음 IDE를 열게되면 기본적으로 두 개의 함수가 작성되어 있다. 이 함수는 setup과 loop이다.
setup 함수는 아두이노에 이 프로그램이 로드되어 가장 최초로 1번만 실행되는 함수이다.
반면, loop 함수는 프로그램이 로드된 후 반복적으로 호출되는 함수이다.
아두이노의 프로그램 플로우는 setup 호출 -> loop 호출 -> loop 호출 -> loop 호출 ... 이다.
따라서 우리는 setup 함수에는 프로그램에 필요한 초기 설정이나 값의 초기화등의 작업을 수행하여 주고, loop 함수에는 반복적으로 동작할 내용을 수행하여야 한다.
직관이 있다면 대충 알아챌 수 있겠지만, loop 함수의 존재를 통하여 값을 센싱하여 어떠한 작업을 해주게 된다. (ex, loop 함수에서 버튼이 눌러짐을 감지 --> 또 다른 함수를 정의하여 다음 동작을 수행)
그래서 가장 간단하게 LED를 1초에 한번씩 깜박이는 프로그램을 작성해 보자.
// 처음 단 한번만 실행되는 함수
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
// pinMode는 아두이노의 Pin의 입,출력 모드를 변경할 수 있다.
// LED_BUILTIN은 미리 정의된 값으로 내장 LED의 PIN 번호를 뜻한다.
// 일반적인 아두이노 보드에서 13번이다.
}
// setup 이후 계속적으로 실행되는 함수
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
// digitalWrite는 주어진 Pin에 디지털 값 HIGH를 인가한다.
// 여기서 HIGH은 핀에서 출력될 수 있는 전압 값(Vcc)을 뜻한다.
// 반대로 LOW는 핀에서 출력되는 전압을 0으로 만드는 값이다.
// delay는 주어진 ms 단위 만큼 프로그램 동작을 멈추는 함수이다.
// 즉 위의 두개의 함수 호출(명령)은 LED 핀에
// 전압을 인가한 다음 1초간 프로그램을 멈추는 것이다.
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
// 반면 위의 두 함수 호출은 LED 핀에 전압을 끄고 1초간 프로그램을 멈추는 것이다.
// 위 네 줄을 통해서 LED는 1초간 켜진 상태 -> 1초간 꺼진 상태를 반복하게 된다.
}
코드에서 //은 주석 (프로그램 명령어로 취급하지 않는 문장)으로 코드를 간단하게 설명할 때 사용한다.
5. 예제 실행하기
프로그램을 아두이노에서 실행하기 위해서는 아래와 같이 버튼을 클릭하면 된다. (기본적으로 모든 코드는 저장되어야만 컴파일되어 로드된다. 따라서 저장하지 않고 업로드를 눌러도 자동으로 저장 시퀀스를 통한 다음 아두이노에 로드된다.)
컴파일 되면 아래의 검은 공간에 컴파일 정보가 나오고, 로딩바가 100%가 되면 아두이노에서 실행된다.
물론 문법이 틀리게되면 검은 공간에서 오류 정보가 나오게 된다.
6. 실행 결과
아래와 같이 주황색 LED가 반복적으로 반짝이게 된다.
'라즈베리파이, 아두이노' 카테고리의 다른 글
[간단한 아두이노 코딩] 3. 버튼 입력 제어하기 (0) | 2020.11.24 |
---|---|
[간단한 아두이노 코딩] 2. LED 깜박이기 (0) | 2020.11.17 |
[라즈베리파이 / 리눅스] init.d 서비스 스크립트 작성을 통한 시작 프로그램 만들기 (0) | 2019.04.03 |
[라즈베리파이/리눅스/우분투] RS232/RS485 to USB 장치 포트(ttyUSB) 검색 방법 및 코드 (2) | 2019.04.02 |
[라즈베리파이] USB 컨버터(RS485/RS232)를 이용한 시리얼 통신 읽/쓰기 파이썬 예제 (11) | 2019.03.27 |