만져보는 임베디드 시스템/아두이노 소프트웨어

아두이노 소프트웨어-i.아두이노 스케치 시작하기

hanjinee 2020. 12. 5. 17:19

제타지니 작성 

이제, 아두이노 자작도 어느정도 완성되어 가는 듯 하니, 아두이노 소프트웨어에 대해서 알아보도록 하겠습니다.

아두이노 소프트웨어 (Arduino Software, IDE, Integrated Development Environment 통합 개발 환경)

 

아두이노 소프트웨어는 다음의 페이지에서 받을 수 있습니다. 

www.arduino.cc  

 

Arduino - Home

 

www.arduino.cc

실상, 프로그램을 깔고, 실행시키는 것은 그다지 어렵지 않습니다. 

 

소프트웨어를 다룰 수 있는 것이 문제입니다. 

 

따라서, 이번 '소프트웨어' 포스트에서 다룰 것은 여러 함수를 다루어 보려고 합니다.

물론, 'c언어'를 배우셨던 분들은 이해하기 매우 수월하실 것이지만, 아두이노를 기초적으로 배우시는 분들은 그렇지도 않을 수 있기에, 

제가 이해한 내용을 바탕으로 수학해보려고 합니다. 

 

아두이노를 동작시키는 방법은 생각보다 간단합니다. 

만약, 하드웨어가 모두 제대로 설치되어 있고, 연결되어 있으면 다음의 과정을 따르면 됩니다. 

<목적 확인 - 코딩- 확인>

그런데 이 <코딩> 이 문제지요. 

 

 

<STRUCTURE>

먼저 아두이노의 기본적인 구조부터 보고 함수를 설명해보도록 하겠습니다.

 

 

프로그램 업로드 하는 부분

-코딩을 하여 프로그램을 업로드 하는 부분입니다.

 

상태창

-프로그램의 상태를 나타내고, 업로드 시에, 코딩의 크기가 얼마나 되는 지, 확인 버튼시에 오류 확인 여부에 대하여 알 수 있습니다. 

 

확인 버튼

-코딩에 오류가 없는지 확인시켜 주는 버튼입니다. 

 

코드 업로드

-하드웨어로 설계한 프로그램을 업로드 시켜 줍니다. 

 

 

아두이노는 C++을 기반으로 만들어졌으므로, 스케치를 컴파일하고 실행시키기 위해서는 main함수가 꼭 필요합니다. 하지만, 아두이노는 main 함수가 없는 것 처럼 보이죠????? 아니에요! 아두이노는 코딩을 최소화하고 직관적인 구조로 만들기 위해 main함수를 숨겨놓고 있습니다. 아두이노 프로그램은 크게 setup과 Loop 부분으로 이루어져 있지요?? setup함수와 loop함수로 작성된 아두이노의 스케치는 아두이노 프로그램에서 자동으로 main함수를 추가해서 프로그래머가 직접 작성하지 않도록 해주어, 쉽고 빠르게 프로그래밍을 할 수 있도록 도와줍니다. 

 

 

Setup 파트는, 그야 말로, 프로그램 업로드와 동시에 딱 한번만 실행되는 파트입니다. (만약 업로드가 끝났다면, 전원이 켜지거나 리셋 버튼이 눌릴 때 한번만 호출되지요) Setup이라는 말에서 볼 수 있듯이 설정같은 역할입니다. 이 함수에서는 변수의 초기화, 핀 모드 설정, 필요한 라이브러리 적재 등의 작업을 수행합니다.

loop 파트는, loop라는 말에서 볼 수 있듯 프로그램이 동작되는 동안 계속해서 실행되는 파트이지요. 따라서, 스케치가 수행됨에 따라서 프로그램의 상태를 바꾸거나 다양한 입력에 반응하여 특정 작업을 수행할 수 있도록 해줍니다. 

 

 

위의 그림에서 보이듯, 프로그램이 실행되는 순서는 다음과 같습니다. 

①→②→...

그래서,  위의 내용을 참고하여 아두이노가 동작하는 순서를 보자면  다음과 같습니다!!!

 

 

<Basic>

​모든 아두이노 코드에서 통용되는 법칙을 설명해 보겠습니다.

 

*상수

이미 값이 정해져 있는 것들을 상수라고 합니다. 더 이상 변하지 않는 것들을 뜻하기도 합니다.


*변수

값이 변할 수 있는 것들을 변수라고 합니다. 다음 포스트에서 자세하게 살펴보실 수 있을 것입니다. 

 

*지역(Local) 변수 / 전역(Global) 변수

지역 변수란 함수 내에서만 존재하고 접근이 가능한 변수를 뜻합니다. 즉, 그 함수를 벗어나는 순간 인지하지 못하는 것이지요. 

따라서 지역변수는 선언된 지역에서 벗어나서 호출하면, 컴퓨터는 그 변수를 인지하지 못합니다. 

전역 변수란 코드 어디에서든지 존재하고 접근이 가능한 변수를 뜻합니다. 코드의 맨 위에서 선언합니다. 

 

;(Semi-Colon, 세미콜론)

하나의 코드 혹은 하나의 문장이 끝남을 표시해 줍니다. 

;(Semi-colon)이 없다면, 컴퓨터는 함수가 끝났다는 것을 인지하지 못합니다. 

대신 {}(중괄호) 뒤에는 사용하지 않습니다. 

 

{}(중괄호)

한 줄/ 하나의 문장으로 코드가 끝나지 않을 때, 혹은 코드 안에서 하나의 함수를 이용해서 사용해야 할 코드가 두 줄 이상일때 

{}(중괄호)를 통해서 묶어 줍니다. 

 

// (한줄 주석)

//는 한줄짜리 주석을 달 때 사용합니다. 하나의 함수가 무엇을 위해 쓰였는 지 이야기 할 때 주로 사용합니다.

만약, 주석이 너무 길어져서 한 줄로 감당하지 못할 경우는 /* ... */(두줄 이상 주석)을 사용합니다.

코딩을 잘 하는 사람은, 다른 사람이 코드를 보았을 때도 이해하기 쉽도록 코드 마다 주석을 달아 놓는 다는 점!

 

아두이노의 기초는 이정도면 되었고, 다음 포스트에서 함수들 부터 자세하게 설명토록 하겠습니다.

 

728x90