본문 바로가기
Research/Arduino

아두이노 설치 및 기초

by RIEM 2023. 3. 22.

전자 기기를 만들 때는 1)회로 구성 + 2) 겉 기구 + 3) 소프트웨어라는 큰 단계로 나눈다.
여기서 아두이노는 회로 구성 + 프로그램을 동시에 할 수 있는 플랫폼이라고 보면 된다. 3D 프린팅이 있다면 사실상 개인이 전자 기기를 만들 수 있는 것과 다르지 않다.

https://www.arduino.cc/en/software

 

Software

Open-source electronic prototyping platform enabling users to create interactive electronic objects.

www.arduino.cc

Arduino 실행 화면이다. 각 버튼들의 기능을 알아보자.

Verify(✔️) : 컴파일 버튼. 소스코드를 컴퓨터가 이해할 수 있는 바이너리 코드로 바꿔준다. 이 버튼은 잘 안쓴다.
Upload(->) : 업로드 버튼. 코드를 아두이노에게 보내주는데, 업로드 하기전에 컴파일이 되었는지 확인 후 안되었으면 컴파일을 하고난 뒤에 업로드를 한다. 이때문에 컴파일 버튼을 잘 안쓴다.
Serial Monitor(돋보기) : 보드에서 보내오는 신호를 읽는 창을 띄운다. 하단에 Serial Monitor라는 창이 보인다.

 

컴퓨터와 아두이노를 연결해주자. 아두이노에 LED 빨간 등이 보인다.

Tool 메뉴에서 - Arduino AVR Boards - Aduino Nano를 선택했다. 왜냐하면 이것은 아두이노 나노이기 때문이다.

그다음 Processor 'ATmega328P'(첫번째)를 선택했다. Old Bootloader를 해봤지만 안되서 다시 328P로 하니 정상 작동된다.

Bootloader는 아두이노 보드에 전원 들어갈 시 가장 먼저 실행되는 내부 동작 코드이다. Bootloader의 기능은 1)우리 프로그램 업로드 시 보드 메모리에 저장하는 기능, 2) 업로드 끝날 시 해당 프로그램을 실행시키는 것이다.

보통 아두이노에는 Bootloader가 기본으로 깔려있다. 만약 따로 다른 종류의 칩을 사용한다면 개별로 설치해야할 수도 있다.

포트는 ucbserial-1110을 선택했다. 이중 어떤 포트를 선택해야 할지 모르겠다면 USB를 빼보면 된다. 연결한 상태에서 리스트를 확인하고, USB를 뺐을 때 리스트의 어떤 항목이 사라지는지 확인하면 된다.
아두이노 USB 시리얼 포트 확인 방법(https://www.youtube.com/watch?v=q15gzTgZ_cI)

 

자 이제 본격적으로 프로그램의 단계로 넘어가보자. 아두이노에서 제공하는 예제 코드 Blink를 선택한다.

// 전원 On

// 전역 영역 

// setup 영역
void setup() {
  // put your setup code here, to run once:

}

// loop 영역
void loop() {
  // put your main code here, to run repeatedly:

}

// 전원 Off

Blink의 소스코드는 총 3단계로 나눠져 있다. 전원이 켜지면 전역 영역 처리 -> setup 영역 처리 -> loop 영역 처리 ---- 완료 후 -> 전원 off 이 순으로 진행된다. loop 영역은 전원이 꺼졌는지를 확인한 뒤 꺼지지 않았으면 계속 진행한다.

아두이노는 이렇게 작업 순서가 어느정도 정해져있는데, 이를 프레임워크라고 부른다.

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  // pinMode 함수 사용. 내장 LED(LED_BUILTIN)를 출력(OUTPUT)으로 사용한다
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}

위에서 배웠던 Compile(✅) 버튼을 눌러 컴파일을 진행하자.

컴파일을 하면 소스코드를 컴퓨터가 이해할 수 있는 바이너리 타입(이진 형태)의 정보로 바꾼다. 이렇게 바꾼 정보를 upload 버튼을 눌러서 컴퓨터에게 전달해주면 된다.

만약 컴파일이나 에러가 발생할 경우, 아두이노 포트 드라이버 설치를 했는지 확인해봐야 한다. 이 부분은 좀 복잡한데 아두이노 컴파일 에러 등으로 검색하면 관련 글들이 많다.
https://sparks.gogo.co.nz/ch340.html

 

CH340 Drivers for Windows, Mac and Linux

Did you know you automatically get $5 off for every $50 added to your cart? Well, now you know. ( Excludes shipping/handling & sale items, not in conjuction with any other voucher/discount/promo code. ) <!-- COVID-19 Update : Aucklanders should allow up to

sparks.gogo.co.nz

 

 

인프런&nbsp;< 아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!>

(*위 자료는 해당 강의 영상을 캡처한 내용입니다. 이 자료에 대한 상세한 설명과 관련 강의는 인프런에서 위 강의를 구매하셔서 참고하시길 권합니다)

int nPin = 11;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  // pinMode 함수 사용. 내장 LED(LED_BUILTIN)를 출력(OUTPUT)으로 사용한다
  pinMode(nPin, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(nPin, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(2000);                      // wait for a second
  digitalWrite(nPin, LOW);   // turn the LED off by making the voltage LOW
  delay(5000);                      // wait for a second
}

코드에 digitalWrite의 첫 파라미터에 11이 저장된 nPin 변수를 할당했다. 11은 D11 선을 의미한다. 

위 처럼 브레드보드와 연결해주자.

- 주의사항은 LED의 긴 다리가 +(노란색) 쪽이고 짧은 다리는 저항쪽으로 향해야 한다는 점이다. 다리에 극성이 있기 때문이다.
- D11에서 시작해서 -극인 GND(그라운드)로 빠진다

참고 강의명 : 인프런 <아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!>

'Research > Arduino' 카테고리의 다른 글

아두이노_C/C++ 기본 문법  (0) 2023.03.23

댓글