본문 바로가기

Arduino/Environment Setup

Auduino Dev Environment Setup

아두이노 개발환경 설치 및 테스트



테스트 환경

OS : Windows 7

Board : DCcEle Dccduino UNO


해당 아두이노 보드에 대한 USB 드라이버 다운로드 및 설치

http://www.kupply.com/dccele-dccduino-arduino-uno-clone/

http://www.kupply.com/wp-content/uploads/2015/01/CH341SER.zip


USB 드라이버 설치

위에서 다운로드한 압축파일을 해제하고 setup.exe 파일을 더블클릭 > Install 버튼을 누른다

설치에 성공하면 [Driver Install Success!] 메시지 창이 뜨고 여기서 [확인] 버튼을 누르면 된다

USB 드라이버가 설치될 때 아두이노가 컴퓨터에 연결되어 있다면 아두이노 보드 중간의 LED가 깜박거리면서 반응한다


아두이노 개발환경 다운로드

https://www.arduino.cc/en/Main/Software


설치

설치파일을 실행하여 설치를 완료한다


실행

바탕화면의 Arduino 아이콘을 더블클릭하여 실행한다


아두이노 개발환경 실행 후 첫 화면




내장된 예제 불러오기



예제 컴파일

아래의 코드에서 사용된 숫자 '13' 은 아두이노 보드의 GPIO 13번 핀을 나타내며 이미 LED가 연결되어 판매되고 있다



아두이노 보드에 프로그램 업로드하기

아두이노 UNO 보드를 준비하고 컴퓨터와 USB로 연결한 후에 다음과 같은 방법으로 컴파일된 프로그램을 아두이노 보드에 로드할 수 있다

우선 업로드하기 전에 설정할 사항이 몇가지 있다


[툴] > [보드] > [Arduino] / [Genuino UNO]

[툴] > [포트] > [COM1] (아두이노가 연결된 포트를 선택하면 된다)


업로드에 실패한 경우에는 반드시 위의 설정을 확인하고 COM1, COM2.... 등으로 변경하여 설정하고 다시 업로드하면 된다


업로드할 도중에는 아두이노 보드의 중간에 있는 연두색 LED가 불규칙하게 깜박거린다

업로드에 성공하면 업로드된 코드가 즉시 실행되므로 코드에 따라서 보드의 중간에 있는 연두색 LED가 1초동안 켜지고 이어서 1초동안 꺼지는 상태가 무한반복된다


업로드 성공 후의 화면



시리얼 모니터를 이용한 디버깅 문자열 출력하기

아두이노 보드에서 컴퓨터 측으로 USB를 통해 데이터를 전달하면 아두이노 개발환경에서는 USB로부터 그 데이터를 수신하여 화면에 출력할 수 있다. 그러므로 아두이노 개발시에 디버깅 용도로 유용하게 사용할 수가 있다. 이 때 사용되는 아두이노의 핀은 0,1 번이 사용되므로 개발자는 이들 핀을 프로그램에서 입출력 용도로 사용하는 것을 주의해야 한다


아두이노 측에서 컴퓨터로 시리얼 문자열 전송하고 화면에 출력하기

위의 예제를 약간 편집하여 아두이노 보드에서 시리얼 데이터를 컴퓨터로 전송하는 내용을 추가한 것이다

아래의 코드에서 9600 은 시리얼 통신시의 전송속도이므로 아두이노와 연결되는 상대편 컴퓨터의 전송속도와도 일치하도록 설정해야 한다

Serial.begin(9600);

Serial.println("LED 1초 ON, 1초 OFF");

/*
  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);
  Serial.begin(9600);
}

// 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
  Serial.println("LED 1초 ON, 1초 OFF");
}


위의 코드를 컴파일하고 업로드하면 앞서 확인했던 동일한 기능이 실행되면서 시리얼 데이터가 수신되므로 [툴] > [시리얼 모니터] 를 선택하여 화면에서 문자열을 확인할 수 있다


시리얼 모니터를 사용하면 현재 연결된 컴퓨터와 아두이노 사이에 데이터 송수신이 가능하다.


아두이노에서 컴퓨터로 시리얼 데이터를 전송하려면 ....

Serial.print()

Serial.println()


아두이노에서 컴퓨터로부터 전달되는 시리얼 데이터를 받으려면 ....

void loop() 

{

  if (Serial.available()) // 시리얼 데이터가 도착하면 true

  {

    char ch = Serial.read(); // USB로부터 한 문자를 아스키코드로 읽어온다

    if( ch == '0' ) {

       //

    }else if( ch == 'A' ) {

       //

    }

    // 입력된 아스키 코드를 정수로 변환하는 한가지 방법 (숫자가 입력된 경우라고 가정하고.... )

    int n = ch - '0';

    Serial.println('시리얼 데이터 수신");

  }

}