아두이노의 기초

IOT/아두이노|2019. 1. 27. 15:01

아두이노의 기초



1. 아두이노 구조




      • 상단
        Digital pin : 핀번호 0~13핀으로 구성되었으며 0(0V) 과 1(5V)의 신호를 보내고 받을 수 있다. 여기서 PWM핀은 6개의 핀을 제공하면 아날로그 출력(0~255)를 내보낼 수 있다.
        시리얼통신핀 : TX(출력1번), RX(입력0번)
        GND(핀) : 전류 마이너스(-) 핀

      • 하단
        Power 부분: 하단 왼쪽 POWER(3.3V, 5V, Gnd, Vin)으로 구성되어 있다.
        Analog pin : 아날로그 입력을 받을 수 있는 핀으로 0~1024(2의 10승)값을 받을 수 있다. 총 6개의 핀으로 구성되어 있다. 여기서 디지털핀으로 핀모드를 지정해주면 사용도 가능하다. 핀모드를 지정안해주면 본래 목적으로 아날로그 값을 입력받는데 사용된다.



지금 각 핀에 대해서 이핀은 무슨 핀이고 저 핀은 무슨핀이다라고 설명해 봤자 의미가 없다. 아두이노를 실제로 실험을 하다보면 아 이 핀이 이런 핀이구나라는 걸 이해할 것이다. 단지 여기서는 핀 구성이 대충 이런식으로 되었다는 정도만 머리속에 담아 놓으시면 된다.

2. 아두이노 Atmega328P 구조




전압 = 5V
디지털핀 14핀(6의 PWM핀제공)
아날로그입력핀 6핀
플래쉬메모리 : 32kb
SRAM : 2kb
클럭 속도 : 16MHz


이 Atmega328P는 사용하기 위해 전원 공급과 통신 등 몇가지 기능을 추가하여 덕지 덕지 붙여 놓은게 아두이노우노입니다. 기본적으로 이 칩은 내부 클럭이 최대 8Mhz정도의 클럭속도는 냅니다. 그래서 크리스탈을 붙여 16Mhz의 속도를 낼 수 있게 합니다. 이 칩에 프로그램을 이식할 수 있는게 32kb 만큼의 용량의 프로그램 밖에 이식할 수 없으며 변수공간도 2kb인가로 아주 제한적이여서 사용 용도로도 아두이노는 복잡한 계산 보다는 단순 작업에 사용됩니다.

쉽게 말해서 Atmega328P 칩에 전류를 공급하고 이 칩에 기록된 프로그램 명령어를 전류가 공급되는 동안 칩 핀을 통해서 입력받거나 출력하는 동작을 계속 반복한다고 생각하시면 된다.

칩 각 핀에는 고유의 역할이 있고 그 핀을 통해서 디지털 신호나 아날로그 신호를 받거나 내보내는 작업을 잘 수행하기 위해서 아두이노를 배우는 것이죠. 아두이노는 종류도 다양하고 칩도 다른데 중요한것은 머리속에서 칩에다 전류를 공급되면 칩에 기록된 명령어를 핀을 통해서 수행한다는 개념만 머리속에 담아 놓으시면 기본 베이스는 끝납니다.

그리고 아두이노를 배우는 것은 이 칩에 기록할 명령어 로직을 짜는법을 배우는 것이라는 점만 머리속에 담아 두세요. 여기서 코딩은 어렵지는 않습니다. 과거에는 하나에서 열까지 전부 다 개발자가 머리속에서 짜내어야 했지만 현재는 기본적인 라이브러리가 다 제공되고 엑셀처럼 각 함수의 의미만 잘 이해하면 쉽게 함수(블록)단위로 코딩이 가능합니다. 그래서 예술쪽 있는 분들이 아두이노와의 결합 작품을 많이 시도하고 만들어내는 이유이기도 하죠.


마무리




아두이노를 공부하는 분들은 어느정도 깊게 들어가면 아두이노로 이것저것을 붙여가면서 좀 복잡한 연산 작업을 수행할려고 한다. 뭔가 아두이노로 두뇌 역활을 하는 작업을 수행하려고 배보다 배꼽이 더 큰 모듈들을 붙여가면서 억지로 그 기능을 구현 시키기도 한다.

뭔가 좀 복잡한 연산이나 다양한 기능을 추가하면서 제어를 하고 싶다면 차라리 라즈베리파이와의 연동을 추천 드립니다. 재밌는 것은 라즈베리파이를 배우는 분들은 반대로 단순작업을 수행하는데 라즈베리파이를 이용하는 경우가 많다. 그냥 아두이노로 표현하는게 더 나을 작업을 구지 라즈베리파이로 구현 시킬려는 분들도 많다. 그래서 아두이노를 배우고 나서 라즈베리를 배우는게 가장 이상적이라고 저는 생각되네요.

'IOT > 아두이노' 카테고리의 다른 글

[아두이노] 스위치 버턴 제어  (0) 2019.02.03
[아두이노] 3색 LED 제어  (0) 2019.02.02
[아두이노] 코딩 구조  (0) 2019.01.31
[아두이노] LED 제어  (0) 2019.01.30
아두이노 가상시뮬레이터  (0) 2019.01.24

댓글()