아두이노 탭 활용하기 (ino 파일 분할)

덩치가 좀 있는 프로젝트를 한다면 프로그래밍 할 때 기능별로 클래스 또는 파일로 구분해서 제작을 합니다. 그런데 아두이노로 프로젝트 할 때에는 하나의 ino(또는 pde) 파일안에 모든 내용이 다 들어가 있는 경우가 많죠. 아두이노에 그리 복잡한 코드를 올리는 경우가 개인 사용자에게는 드물기도 하거니와 파일로 구분되면 전역변수 등 고려해야 할 내용들이 늘어나서 귀찮아지죠.

하지만 상당히 긴 코드가 하나의 파일에 들어가면 가독성이 떨어지는 것은 사실입니다. 가뜩이나 아두이노 에디터가 보기 불편한데 가독성도 떨어지면 코드 분석하기가 어렵죠. 아두이노에서는 tab 을 이용해서 이런 불편을 해소할 수 있습니다.

아두이노에서 tab은 일반적인 c-java 프로그래밍에서 파일과는 개념이 틀립니다. 단순히 하나의 파일에 있는 내용을 몇 개의 파일로 나누어 놓고 컴파일 할 때는 하나로 합쳐서 사용합니다. 아래 예제를 보시면 이해가 되실겁니다.

tab 생성 및 테스트

일단 아두이노 IDE를 실행하시고 [파일 – 다른 이름으로 저장…] 을 클릭해서 tab_test 이름으로 저장합니다. 그럼 tab_test 폴더가 생기고 그 안에 tab_test.ino 파일이 생길겁니다. tab_test.ino 파일은 아두이노의 기본 구조인 setup(), loop() 함수가 기본으로 생성되어 있습니다. 이제 이걸 탭을 이용해서 나누어 보겠습니다.

아래와 같이 탭 영역의 [아래방향 화살표]를 클릭하면 탭을 추가할 수 있습니다. 새 탭의 이름은 tab_main 으로 합니다.

tab_test

그럼 탭이 하나가 추가될 것입니다. 프로젝트 폴더에 가보시면 tab_main.ino 파일이 생성된 것도 확인하실 수 있습니다. 이제 tab_test.ino 파일에 있던 loop() 함수를 잘라내서 tab_main 으로 옮겨봅니다.

tab_main

tab_test 에는 setup() 함수가 있고, tab_main 에는 loop() 함수가 있는 상태입니다. 이 상태에서 컴파일 버튼을 누르면 정상적으로 컴파일이 됩니다.

하나 더 실험해 보시죠. tab_test 에서 전역변수를 선언하고, tab_main 에서 그 변수를 사용하도록 작성한 다음 컴파일 해보세요. 별 문제없이 컴파일이 될겁니다.

즉, 아두이노에서 tab 은(그리고 프로젝트 폴더안에 있는 ino 파일들은) 단순히 하나의 파일을 보기좋게 나눠둔 것이고 컴파일 할 때는 하나로 이어져서 컴파일 됩니다.

주의하실 점은 전역변수 선언이나 헤더파일 include, define 구문 등은 모두 main 함수안에 위치시키는 것이 좋습니다. 코드의 가독성을 위해서이기도 하고, 예상치 못한 에러를 발생할 가능성이 있다고 합니다.

You may also like...