ㅇ 일 자 : 2026년 5월 13일(수)
ㅇ 주 제 : 아두이노(Arduino) 환경설정 및 예제 실습
ㅇ 목 표 : 아두이노를 활용한 실습을 통해 제품 개발 원리를 이해 할 수 있다.
ㅇ 내 용
1. 아두이노(Arduino)
1.1. 의미
오픈 소스를 기반으로 만든 마이크로컨트롤러 보드와 관련된 개발 도구 및 환경이다.
아두이노를 사용하면 특정한 동작을 하는 도구를 간단하게 만들 수 있다.
(예) 아두이노 보드에 입력을 담당하는 센서와 출력을 담당하는 LED (발광 다이오드)를 연결한 다음 프로그래밍으로 동작을 제어하면 화재경보기를 만들수 있다.
1.2. 아두이노로 무엇을 할 수 있을까?
- 자전거의 속력 측정 : 자전거에 속력계를 달아서 속력을 이동거리 걸린시간으로 나누어 값을 구하여 속력계에 표시하는 장치를 자전거에 달았다.
(예) 현재는 스마트 워치에 개인이 걷는 걸음수와 맥박수 등을 알려주는 헬스케어 제품들도 등장하였다.
- 그림 그리기 : 아두노이를 이용해 수채화 그림을 그리는 장치로 그림의 좌표를 입력해서 붓의 위치를 도화지의 특정 좌표로 이동하게 하여 그림을 그려준다.
(예) 상업적으로는 대형 지도를 제작하거나 대형 도면, 포스터를 제작할때 기계가 이용되고 있다.
- 농작물 키우기 : 자동으로 땅에 씨앗을 뿌리고 물을 주며, 잡초를 제거하는 기계도 만들 수 있다. XYZ 축으로 모터를 움직여 원하는 장소에 파종을 할수도 급수를 할수 도 있다.
(예) 현재는 스마트팜 농업이 발전하였고, 그에 따른 기술도 발전하였다.
미국의 경우 AI를 활용한 농법기계를 개발하여 활용하고 있다. 농작물중에 잡초만을 식별하여 드론을 통한 차별적 제초약을 살포하는 등의 사례가 있다.
- 안경으로 데이터 보기, 오또로봇 만들기, 드론과 RC 카 만들기 등
1.3. 아두이노 통합 개발 환경 설정하기
① 통합 개발환경 파일 내려받기 : http://www.arduino.cc 에서 맨 아래로 스크롤 해서 소프트웨어 클릭, 리눅스 환경 버젼파일을
내려받기 (아두이노 IDE 2.3.8)

② 다운로드한 파일 설치하기 (터미널에서 실행)
다운로드한 폴더에서 ./install.sh 입력하고 설치 실행하기
![]() * 다운로드한 파일에서 마우스 우클릭후 "터미널에서 열기" |
![]() |
③ 만약 파일 다운로드후 "한글이 깨짐" 현상이 있다면 한글파일 다시 설치 하기 sudo apt-get install nanum*

④ 아두이노 보드와 컴퓨터 연결하기 sudo usermod -a -G dialout $USER 실행후 응용프로그램 "아이콘" 클릭 실행
**만약 포트에 문제가 있다면 가장 기본적인 보드와 USB포트를 PC와 연결한다. 연결된 포트를 확인할수 있다.


1.4. 회로 연결하여 통합 환경에서 실습하기
※ 만약 코드애러중 문법애러가 아니고 포트나 보드 문제일 경우에 설정이 제대로 되었는지 재확인 한다.
그리고, 포트는 보드가 PC와 USB선으로 연결이 되어있어야 정상적으로 작동이 된다.


[예시 1]
// C++언어
int status = 0; // LED의 상태를 나타내는 변수, 0이면 OFF, 1이면 ON
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop()
{
char inputValue = Serial.read(); // 시리얼 모니터에서 사용자 입력을 받는다
if (status == 0 && inputValue == '1') // 사용자 입력을 비교해 LED를 켠다
{
digitalWrite(13, HIGH);
status = 1; // LED의 상태를 ON 상태로 변경
}
else if (status == 1 && inputValue == '0') // 사용자 입력을 비교해 LED를 끈다
{
digitalWrite(13, LOW);
status = 0; // LED의 상태를 OFF 상태로 변경
}
}
//""결과""는 시리얼 모니터에서 1을 전송하면 LED가 계속 켜져있고, 0을 전송하면 LED가 꺼진다.
// 시리얼모니터에서 기본 9600보드레이트 사용
** 실행을 확인하려면 시리얼 모니터에서 값을 입력하면 불빛이 on/off 을 실행한다.

[예시 2]
//보드핀은 D13에 접지하고 USB포트 연결한다.
void setup()
{
Serial.begin(9600); // 시리얼 통신 초기화
pinMode(8, OUTPUT); // 8번 디지털 핀을 출력 모드로 실행
pinMode(7, INPUT_PULLUP); // 7번 디지털 핀을 입력 모드로 설정
}
void loop()
{
int readValue = digitalRead(7); // 입력 핀의 값을 읽어 변수에 저장
Serial.println(readValue); // 변숫값을 시리얼 모니터에 출력
if (readValue == HIGH) { // 14행이 참이면 실행
digitalWrite(8, LOW);
}
else {
digitalWrite(8, HIGH); // 14행이 참 아니면 실행
}
}
// 결과는 - -- - LED가 시간간격을 달리하여 리듬을 타듯 깜박이고 자동 종료.
[예시 3]
// 아두노이의 13번에 핀을 접지하고 실행한다.
void setup()
{
pinMode(13, OUTPUT); // 아두이노의 13번 핀을 출력 모드로 설정
} // 아두이노의 12번 핀을 출력 모드로 설정
void loop()
{
digitalWrite(13, HIGH); // 아두이노의 13번 핀에 HIGH 신호를 전달
delay(1000); // 1초동안 지연
digitalWrite(13, LOW); // 아두이노의 13번 핀에 LOW 신호를 전달
delay(1000); // 1초 동안 지
}
// 결과는 LED가 1초 간격으로 켜졌다가 꺼지기를 계속 반복한다.
// 종료를 해 주어야 한다.

[예시 4]
// 헤더와 주소값이 회로기기 제품과 일치해야 실행시 오류가 없다.
#include <LiquidCrystal_I2C.h> // 헤더 #include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD 주소값이 블록편집기기와 일치해야 한다.
void setup()
{
lcd.begin();
}
void loop()
{
lcd.setCursor(5, 0);
lcd.print("Hi ^^"); // Hi ^^ 를 LCD에 출력한다.
delay(1000);
lcd.setCursor(3, 1);
lcd.print("Codingrun");
delay(1000); // 1초마다 블록편집기 LCD창에 문자가 출력된다.
lcd.clear(); // 문자를 출력하고 나면 창을 깨끗하게 하고 사각블럭만 남는다.
delay(1000);
}

![]() |
![]() |
![]() |
아두노이 블록 편집기 실제 연결 실습
2. 교육 후기
가. 아두이노가 오픈 소스를 기반으로 만든 마이크로컨트롤러 보드와 관련된 개발 도구 및 환경에서 특정한 동작을 하는 도구를 간단하게 만들수 있다는데 직접 해보기 전까지는 이해가 쉽지 않았다.
나. 문제점 : 환경설정에서 컴퓨터와 연동하는 부분에서 한글이 깨진다든지, c언어 명령어와 기계값이 일치하지 않아 애러가 발생한다 든지 회로 연결을 잘못해서 실행이 안된다거나 하는 문제는 해결해 가는 과정에서 초보자에게는 교육이 많이 되었다.
다. 처음엔 어려울 거라고만 생각 했지만 직접 실행해 보니까 원리를 이해할 수 있었다. 그러나 C언어는 초보자에겐 아직 공부해야 할 부분이 많은것은 사실이다.
라. 우리가 실생활에서 많이 활용하고 있는 인터폰, 화재경보기, 도어록, 공사장 경고등, 0과 1로 인지되어 자동으로 사용되고 있는 수많은 기계 및 모델들이 그렇다. 이밖에도 많은 기계와 자동화된 동작들이 인간생활을 편리하게 해 주고 있다.
마. AI 시대에 비전공자들도 코딩하고 스마트한 기계와 로봇들이 나날이 발전하고 있다고는 하지만 소프트웨어의 기본원리를 모르고서는 좀더 확장된 사고를 하기에는 다소 어려울 것이라 생각한다. ""우리의 도전은 계속된다.""
'환경 설정' 카테고리의 다른 글
| D+34 [SQL] 프로그램 설치 및 환경 설정 가이드 (0) | 2026.05.26 |
|---|---|
| D+27 [가상 환경venv] 우분투 파이썬, Qt Creator (0) | 2026.05.14 |
| D+23 [ GUI ] 환경 설정 이해 (0) | 2026.05.08 |
| D+22 [ LXD, Docker, Flask 앱] 이해 & 실습 (0) | 2026.05.07 |
| D+4 [Linux] 리눅스 기초 입문 & Ubuntu 개발 환경 구축 (0) | 2026.04.08 |




