[Arduino]01.아두이노 소개와 led 켜기
- IT 제품 및 프로그램
- 2018. 4. 14. 17:00
안녕하세요 유랑입니다.
오늘은 아두이노에 대해 알아보겠습니다.
아두이노는 오픈소스를 기반으로 한 단일 보드 마이크로컨트롤러입니다.
아두이노의 가장 큰 장점은 마이크로컨트롤러를 쉽게 동작시킬 수 있다는 것입니다.
그렇기에 비전문가들도 많이 사용하고, 요새는 방과후학교나 학원에서도 유용하게 사용하고있습니다.
아두이노의 사용법과 센서의 활용법등에 대해 앞으로 강의를 진행해 나가려고 합니다.
1. 아두이노
1-1) 아두이노란?
아두이노(Arduino)는 아래 그림과 같이 생긴 자그마한 보드입니다.
작은 기판 위에 몇 개의 전자 부품들이 연결되어 있어 보잘것 없이 보일 수 있지만,
알고보면 여러가지 일을 할 수 있는 초소형 미니 컴퓨터입니다.
그럼 아두이노 보드는 어떻게, 어디에 활용할 수 있을까요?
우리가 쓰는 컴퓨터에도 다양한 프로그램이 들어있습니다.
글을 쓰기 위한 워드 프로그램, 그림을 그리기 위한 그림판 프로그램, 다양한 표를 만들기 위한 엑셀 프로그램 등.
컴퓨터라는 '하드웨어'를 내가 원하는 일에 따라 다양한 프로그램('소프트웨어')을 이용해 다루듯,
아두이노 역시 아두이노 보드(하드웨어)를 꾸미고, 간단한 프로그램(소프트웨어)을 만들어 넣으면 얼마든지 원하는 대로 움직이게 할 수 있습니다.
1-2) 마이크로 컨트롤러
['마이크로 컨트롤러? 이게 뭐지?]
아두이노 우노 보드에 보시면 크기가 가장 큰 검은색 사각형 부품이 있습니다.
이게 바로 Atmega328p라는 마이크로 프로세서랍니다. 마이크로 프로세서는 약칭 MP라고 할 수도 있고,
사람으로 치자면 두뇌 역할을 하는 녀석입니다. 이 마이크로 프로세서 칩 안에 프로그램을 만들어 넣으면
아두이노보드에 연결된 나머지 전자 부품들과 함께 다양한 일을 할 수 있게 됩니다.
쉽게 생각해서 아두이노보드는 마이크로 프로세서를 보다 쉡게 사용하기 위해 만들어진 마이크로 컨트롤러라 생각하시면 됩니다.
마이크로 프로세서(두뇌)를 사용하기 위해 이 안에 프로그램(지식)을 넣고, 나머지 전자부품(몸)과 연결하여 다양한 일을 합니다.
바로 아두이노자체가 마이크로 컨트롤러인셈입니다.
1-3) 아두이노 활용사례
[아두이노를 활용한 블루투스 탱크]
다음 그림은 아두이노를 활용한 블루투스 탱크입니다. 모터랑 블루투스 모듈, 시중에 파는 프라모델등을 이용해서 만들었습니다.
스마트폰이랑 연동하면 조종도 할 수 있습니다.
여기있는 사례처럼 아두이노를 이용하면 재밌는 장난감, 학습도구 등을 누구나 쉽게 만들 수 있습니다.
1-4) 전자부품
앞에서 소개드린것처럼 아두이노는 두뇌라고 생각하면 됩니다. 그럼 몸에 해당하는 전자부품에 대해서도 알아야겠지요.
밑에 있는 그림은 예시입니다. 전자공학과나 기계공학과등 이쪽 계열 학과들은 쉽게 접해봤겠지만,
일반인들에게는 생소하실것입니다.
빛을 탐지하는 센서, 스위치, 저항, 글자를 보여주는 LCD, 케이블 등이 보이네요.
1-5) LED
LED는 전류를 빛으로 전환하는 기본적인 반도체 소자로 발광 다이오드라고도 합니다.
순방향으로 전압을 가해야만 빛을 내도록 되어 있으며 기본적으로 다리가 긴쪽이 +(Anode),
다리고 짧은 쪽이 -(Cathode)입니다.
극성을 반대로 연결하게 되면 LED가 켜지지 않거나 손상을 입을 수 있으니 연결할 때 주의해야 합니다.
1-6) 저항
저항은 전기의 흐름을 조절해서 전자부품이 과전류로 인해 손상되는 것을 방지해 줍니다.
아두이노에서 기본적으로 내보내는 5V 전압을 직접적으로 LED에 보내게 되면 LED가 손상되기 때문에
꼭 저항과 함께 사용해야 합니다.
1-7) 브레드보드
브레드보드는 흔히 빵판이라고도 불리는 회로 구성을 위한 판입니다.
납땜 없이 손쉽게 회로를 구성하고 수정 할 수 있기 때문에 전자회로 연습을 하거나 프로토 타입을 만들때 매우 유용합니다.
밑에보이는 왼쪽 이미지는 half사이즈의 브레드보드이고, 오른쪽은 브레드보드의 내부 회로 구성도입니다.
A와 D의 영역에 전원을 연결하고 B와 C의 영역에 부품들을 연결해서 사용합니다.
2. 소프트웨어 프로그램
2-1) 아두이노 IDE
이제 아두이노 프로그램 설치를 해보겠습니다.
https://www.arduino.cc/en/Main/Software 에 접속합니다.
다음과 같은 항목이 보이실텐데, 여기서 컴퓨터 os에 맞게 설치하시면 됩니다.
저는 Windows ZIP을 다운받겠습니다.
2-2) 다운로드
이제 다음 항목이 보이실겁니다.
아두이노 프로그램이 무료로 배포되어 있기 때문에, 기부를 할 수 있는 페이지가 따로있는데
여기서 기부하지 않고 JUST DOWNLOAD를 클릭하여 다운받겠습니다.
2-3) 아두이노 스케치
아두이노에 쓰이는 소프트프로그램인 아두이노 스케치입니다.
실행시키시면 다음과 같은 항목이 보이실텐데 하나하나 설명하겠습니다.
*툴바 : 업로드 및 컴파일, 파일 저장과 관련된 메뉴들이 표시되어 있다.
*탭목록 : 스케치에서는 엑셀의 Sheet와 같이 여러개의 탭을 동시에 열어서 작업이 가능합니다.
*텍스트 에디터 : 편집 영역으로 프로그램 코드를 직접 작성하는 부분이다.
*콘솔 : 컴파일 및 업로드시 정상 및 에러 유무에 대해 표시가 되는 부분이다.
[스케치 순서]
프로그램 -> 컴파일 -> 업로딩 순서로 이루어진다.
컴파일은 내가 작성한 코드들을 아두이노 보드가 이해 할 수 있는 기계적인 언어로 변환 시켜주는 과정이다.
이 과정을 거친 후 업로드 하여야 아두이노 보드가 내가 작성한 프로그래밍 코드를 이해할 수 있다.
컴파일을 하지않고 업로드만 하여도 자동으로 컴파일한다.
간혹 컴파일 할 때는 에러가 발생하지 않다가 업로딩 할 때 에러가 발생하는 경우도 있다.
이럴 경우에는 도구->포트에서 아두이노 보드가 컴퓨터에 연결된 포트랑 설정된 포트가 일치하는지 확인 할 필요가 있다.
[텍스트 에디터]
실제적으로 프로그래밍 작성이 이루어지는 곳으로 크게 setup, loop 영역으로 이루어져 있다.
*setup : 아두이노 실행 시 한번만 실행하는 영역으로 핀 번호 등 아두이노 실행시 필요한 것들을 설정해 주는 단계이다.
*loop : setup 실행 후 계속해서 작업이 이루어지는 영역. 실제적으로 아두이노 보드가 수행해야 할 일들을 프로그래밍 해 주는 영역이다.
3. 실습
3-1) Blink
이제 아두이노를 이용하여 led 점등을 시켜보도록 하겠습니다.
아두이노 스케치 프로그램을 실행합니다.
예제에 있는 Blink를 실행 시켜봅시다.
예제 안에는 각종 센서를 실행시킬 수 있는 코드들을 담고있습니다.
3-2) 코드작성
blink예제를 실행 시켰으면 다음과 같이 수정해 봅시다.
int 옆에 있는건 필자 이름인데 본인이름이나 다른 변수명으로 바꿔봅시다.
여기서 변수란 말그대로 변할 수 있는 걸 가르키며 SeokGyeom은 13이라는걸 의미합니다.
SeokGyeom + SeokGyeom은 26을 가르키는거죠.
여기서 int, void, pinMode는 색깔이 다릅니다. 프로그램상에 있는 함수를 의미하죠.
프로그램은 맨 위에서 부터 밑으로 차근차근 실행된다고 보시면 됩니다.
SeokGyeom은 13이며,
pinMode 함수를 통해 13번핀을 사용하겠다.
digitalWirte를 통해 13번핀을 켰다가 껐다가 하겠다.
프로그램이 빠르게 시작해서 켰는지 껐는지 구별이 잘안되므로
delay(1000)를 통해 1초간 딜레이를 주겠다. 이런뜻입니다.
3-3) 보드와 포트 설정
아두이노 보드와 컴퓨터를 USB케이블로 연결하자.
연결 후 보드와 포트가 다음과 같이 설정되어 있는지 확인합시다.
포트가 연결되어 있지 않다면, 다운받은 알집에 있는 드라이버를 설치하자.
3-4) 업로드
밑에 있는 그림처럼 업로드를 누르자. 누를 경우 저장창이 나오는데 소스를 저장할 위치를 선택하고 저장하자.
업로드가 완료될 시 콘솔창에 완료 유무가 나올 것이다.
3-5) 하드웨어 구성
이번에는 13번 핀을 외부 led와 연결하는 간단한 회로를 구성해 보자.
아두이노에 보면 GND와 13이라고 써저있는 곳이 보일 것이다.
GND는 쉽게 말하면 -라고 생각하고, 13은 +라고 생각해 보자.
(전류가 +에서 -로 흐르므로)
13번 핀에서 -> 브레드보드로 -> 저항으로 -> LED 길이가 긴부분으로
-> LED 길이가 짧은부분으로 -> 아두이노 GND 핀으로 갔다고 생각하면 된다.
13번 핀의 출력은 아두이노 보드의 led와 외부 led가 같이 점멸 하는 것을 확인 할 수 있다.
아두이노 자체에 있는 led가 13pin에 연결되어 있기 때문이다.
4. 따라해보기
다음과 같이 led 8개를 아두이노에 연결하자.
밑에있는 하드웨어 그림을 참고하면 된다.
소스코드는 일부분이기에 생각하여 나머지를 추가해 보자.
5. 마무리
오늘 강의는 여기까지입니다.
아두이노와 led 점등까지 배워보았습니다.
혹시나 이해가 잘 안가시는 분들은 댓글 남겨주세요.
다음시간에는 시리얼 통신과 가변저항에 대해 배워보겠습니다.
감사합니다.