1. 개요

차세대융합기술연구원에서 진행하는 ‘2026 대학생 자율주행 경진대회’ 에 팀장으로 참가하게 된 나.

컴퓨터공학을 이중전공한 탓에 hw 관련 수업을 들어본 적이 없어 관련 지식이 전무한 상태였다.

대회 주최측에서 제공해주는 물품에 아두이노, 초음파 센서, 라이다 등 처음 만져보는 하드웨어들이 너무 많아서 관련 경험이 필요할 것 같다고 생각하던 중, 융기원에서 마침 Arduino 관련 실습 교육을 진행한다고 하여 바로 신청했다!

이틀간 진행된 본 교육에서는 Arduino UNO G1 탱크 키트를 활용하여 실습을 진행하였다. 나사와 드라이버를 이용한 하드웨어 조립부터 코드 작성 및 업로드까지 전 과정을 직접 수행하였는데, 이러한 일련의 과정 자체가 매우 흥미로워 교육받는 내내 기분이 좋았다.

본관 건물! 교육장까지는 꽤 걸어 들어갔어야 했다.
(매우 추웠다 🥶)

본관 건물! 교육장까지는 꽤 걸어 들어갔어야 했다. (매우 추웠다 🥶)

건물 안에서 헤매고 있었는데,
때마침 팻말이 등장해서 반가웠다 ㅎㅎ

건물 안에서 헤매고 있었는데, 때마침 팻말이 등장해서 반가웠다 ㅎㅎ

아두이노에 꽂는 확장 보드. 일반적인 Bread Board(빵판)가 아니라서 연결하기 편했다.

아두이노에 꽂는 확장 보드. 일반적인 Bread Board(빵판)가 아니라서 연결하기 편했다.

2. Arduino 기초 개념

2.1 Arduino의 정의

image.png

Arduino는 센서로부터 입력을 받아 연산을 수행하고, 액추에이터를 통해 출력하는 "작은 컴퓨터"로 정의할 수 있다. 기본적인 구조는 다음과 같다:

센서(입력) → 컨트롤러(연산) → 액추에이터(출력)

2.2 핀 구조 및 신호 처리

Arduino 보드의 핀은 디지털 신호와 아날로그 신호를 처리할 수 있으며, PWM(Pulse Width Modulation) 기능을 지원한다. PWM은 on/off를 고속으로 반복하여 평균 출력값을 생성하는 방식으로, 기판에 물결 표시(~)가 있는 핀에서 사용 가능하다.

2.3 기본 프로그래밍 구조

Arduino 프로그래밍은 setup()loop() 두 가지 핵심 함수로 구성된다. macOS 환경에서는 별도의 드라이버 설치 없이 USB 연결만으로 인식되지만, Windows 환경에서는 별도의 드라이버 설치가 필요하다.

// 예시 코드

void setup() {
  // 초기화 코드: 프로그램 시작 시 한 번만 실행
  pinMode(13, OUTPUT);  // 13번 핀을 출력 모드로 설정
  Serial.begin(9600);   // 시리얼 통신 시작
}

void loop() {
  // 반복 실행 코드: setup() 이후 계속 반복
  digitalWrite(13, HIGH);  // LED 켜기
  delay(1000);             // 1초 대기
  digitalWrite(13, LOW);   // LED 끄기
  delay(1000);             // 1초 대기
}