납땜하기 전에 먼저 꽂아보는 공간
로봇을 만들다 보면 머릿속 회로가 실제로 잘 동작하는지 확인해야 할 때가 많습니다. 센서를 하나 추가해보고, 버튼을 달아보고, LED로 상태를 표시해보고, 모터 드라이버에 신호를 보내보는 식입니다. 그런데 매번 납땜부터 시작하면 너무 느립니다. 잘못 연결했을 때 고치기도 어렵고, 부품을 바꾸는 일도 번거롭습니다.
이때 사용하는 도구가 브레드보드입니다. 브레드보드는 납땜 없이 점퍼선을 꽂아 회로를 빠르게 구성하는 실험용 보드입니다. 말하자면 전자회로의 연습장입니다. 연필로 선을 긋고 지우듯이, 부품을 꽂고 빼면서 회로를 시험할 수 있습니다.
로봇 제작에서 브레드보드는 단순한 실습 도구가 아닙니다. 새 센서가 제대로 값을 내는지, 제어 보드의 GPIO 핀이 정상적으로 출력되는지, 전원과 GND가 올바르게 이어졌는지 확인하는 첫 번째 작업대입니다. 작은 LED 하나를 켜는 회로부터 시작하지만, 이 감각은 나중에 거리 센서, IMU, 모터 드라이버, 통신 모듈을 연결할 때 그대로 이어집니다.
이 장에서는 브레드보드의 내부 구조를 이해하고, LED 출력 회로와 버튼 입력 회로를 직접 구성합니다. 마지막에는 멀티미터와 체크리스트를 이용해 회로 문제를 찾는 습관까지 만들어봅니다.

브레드보드는 겉보다 속이 중요하다
브레드보드를 처음 보면 작은 구멍이 촘촘히 뚫린 플라스틱 판처럼 보입니다. 하지만 중요한 것은 구멍이 아니라, 구멍 아래 숨어 있는 금속 연결 구조입니다. 브레드보드는 겉으로는 수많은 구멍이 따로 있는 것처럼 보이지만, 내부에서는 몇 개씩 서로 연결되어 있습니다.
일반적인 브레드보드는 가운데에 긴 홈이 있고, 그 홈을 기준으로 왼쪽과 오른쪽 영역이 나뉩니다. 이 가운데 홈은 IC 칩을 꽂기 위한 공간이기도 하고, 양쪽 회로를 전기적으로 분리하는 경계이기도 합니다. 홈을 사이에 두고 마주 보는 구멍들은 서로 연결되어 있지 않습니다.
가운데 작업 영역을 자세히 보면 보통 한 줄에 다섯 개씩 구멍이 묶여 있습니다. 예를 들어 같은 가로줄에 있는 다섯 개 구멍은 내부 금속판으로 연결되어 있습니다. 그래서 그중 한 구멍에 아두이노의 5V를 꽂으면, 같은 묶음에 있는 다른 네 구멍도 모두 5V와 같은 지점이 됩니다. 반대로 줄이 달라지면 연결되지 않습니다.
브레드보드를 머릿속으로 이렇게 상상하면 쉽습니다. 구멍 하나하나가 독립된 섬처럼 보이지만, 실제로는 다섯 개씩 작은 다리로 이어진 섬입니다. 우리는 점퍼선을 이용해 이 작은 섬들을 서로 연결하면서 회로를 만듭니다.
브레드보드 양쪽에는 길게 이어진 줄이 있습니다. 보통 빨간색 선이나 + 표시가 있는 줄은 전원 레일, 파란색 선이나 - 표시가 있는 줄은 GND 레일로 사용합니다. 레일은 회로 전체에 전원과 기준점을 나눠주는 긴 도로 같은 역할을 합니다. 센서, LED, 버튼, 모터 드라이버 신호 회로는 결국 전원과 GND를 필요로 하므로, 전원 레일을 잘 사용하면 배선이 훨씬 깔끔해집니다.
다만 주의할 점이 있습니다. 모든 브레드보드의 전원 레일이 처음부터 끝까지 하나로 연결되어 있는 것은 아닙니다. 어떤 제품은 중간에서 레일이 끊겨 있습니다. 겉으로는 빨간 선이 길게 이어져 보여도 내부 금속판이 중간에서 분리되어 있을 수 있습니다. 이 경우 한쪽 끝에 5V를 넣었는데 반대쪽 끝에서는 전압이 나오지 않는 일이 생깁니다. 처음 사용하는 브레드보드는 멀티미터의 연속성 측정 기능이나 전압 측정으로 레일이 실제로 이어져 있는지 확인하는 습관을 들이는 것이 좋습니다.
전원 레일은 회로의 큰길이다
브레드보드에서 가장 먼저 정해야 할 것은 전원과 GND의 위치입니다. 회로를 만들다 보면 신호선은 여러 곳으로 흩어지지만, 전원과 GND는 거의 모든 부품이 공유합니다. 그래서 전원 레일을 먼저 정리해두면 나중에 회로가 복잡해져도 길을 잃지 않습니다.
아두이노를 사용한다면 5V 핀을 브레드보드의 + 레일에 연결하고, GND 핀을 - 레일에 연결할 수 있습니다. ESP32를 사용한다면 보통 3V3 핀을 + 레일에 연결하고, GND를 - 레일에 연결합니다. 라즈베리파이의 GPIO는 3.3V 기준이므로, GPIO 입력에 5V를 직접 넣지 않도록 특히 주의해야 합니다.
여기서 중요한 개념은 지난 장들에서 계속 등장한 공통 GND입니다. 제어 보드가 LED를 켜거나 버튼 입력을 읽으려면, 신호의 기준점이 같아야 합니다. GPIO 핀에서 나오는 HIGH와 LOW도 결국 GND를 기준으로 판단됩니다. 보드의 GND와 브레드보드 회로의 GND가 연결되어 있지 않으면, 회로는 겉보기에 이어져 있어도 보드 입장에서는 신호가 떠 있는 것처럼 보일 수 있습니다.
전원 레일을 사용할 때는 다음 세 가지를 먼저 확인하면 좋습니다.
보드의 전압 핀이 브레드보드의
+레일에 연결되어 있는가보드의 GND가 브레드보드의
-레일에 연결되어 있는가사용하는 부품의 허용 전압이 현재 전원 레일 전압과 맞는가
로봇 회로에서 전원은 단순히 불을 켜는 선이 아닙니다. 센서값의 안정성, 모터 제어 신호의 신뢰성, 통신 오류 여부까지 전원과 GND 상태에 영향을 받습니다. 브레드보드 실습에서 전원 레일을 정리하는 습관은 나중에 실제 로봇 배선에서 큰 차이를 만듭니다.
LED 하나로 배우는 디지털 출력
가장 먼저 만들 회로는 LED를 켜는 회로입니다. LED는 단순하지만 훌륭한 출력 장치입니다. GPIO 핀이 HIGH인지 LOW인지 눈으로 확인할 수 있고, 회로가 정상인지 빠르게 판단할 수 있습니다. 로봇에서도 LED는 전원 상태, 통신 상태, 오류 상태를 표시하는 데 자주 사용됩니다.
LED는 극성이 있는 부품입니다. 아무 방향으로나 꽂으면 켜지지 않습니다. 일반적인 둥근 LED는 긴 다리가 애노드, 짧은 다리가 캐소드입니다. 애노드는 보통 + 쪽, 캐소드는 GND 쪽으로 연결합니다. LED 안쪽을 보면 조금 큰 금속판이 있는 쪽이 캐소드인 경우가 많습니다. 다리를 이미 잘라 길이를 알 수 없다면, 몸체의 평평하게 깎인 부분이 캐소드 쪽인지 확인합니다.
LED를 연결할 때는 반드시 저항을 함께 사용해야 합니다. 저항 없이 LED를 전원에 직접 연결하면 LED에 너무 많은 전류가 흐를 수 있습니다. LED가 순간적으로 밝게 빛나다가 망가질 수도 있고, 보드의 GPIO 핀에 부담을 줄 수도 있습니다. 실습에서는 보통 220Ω, 330Ω, 1kΩ 정도의 저항을 사용합니다. 값이 작을수록 LED가 밝아지고 전류가 많이 흐르며, 값이 클수록 LED가 어두워지고 전류가 적게 흐릅니다.
LED 회로의 흐름은 다음처럼 생각하면 됩니다.
GPIO 핀 → 저항 → LED → GND
또는 다음처럼 연결해도 됩니다.
GPIO 핀 → LED → 저항 → GND
저항은 LED 앞에 있어도 되고 뒤에 있어도 됩니다. 같은 직렬 회로 안에 있기만 하면 전류를 제한하는 역할은 같습니다. 중요한 것은 LED와 저항이 병렬로 따로 놓이지 않고, 전류가 반드시 저항을 지나 LED로 흐르도록 연결되는 것입니다.
아두이노에서 디지털 8번 핀으로 LED를 깜박이는 코드는 다음과 같습니다.
const int LED_PIN = 8;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}ESP32에서도 같은 개념으로 동작합니다. 다만 보드마다 사용할 수 있는 GPIO 번호가 다르므로, 실습하기 쉬운 GPIO를 선택해야 합니다. 예를 들어 GPIO 23에 LED를 연결했다면 다음처럼 작성할 수 있습니다.
const int LED_PIN = 23;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}코드에서 pinMode(LED_PIN, OUTPUT)은 해당 핀을 출력 모드로 사용하겠다는 뜻입니다. digitalWrite(LED_PIN, HIGH)는 핀을 높은 전압 상태로 만들고, digitalWrite(LED_PIN, LOW)는 낮은 전압 상태로 만듭니다. LED의 다른 쪽이 GND에 연결되어 있다면 HIGH일 때 전류가 흐르면서 LED가 켜지고, LOW일 때 꺼집니다.
만약 LED가 켜지지 않는다면 바로 코드를 의심하기보다 회로를 먼저 확인해야 합니다. LED 방향이 반대로 꽂혀 있을 수 있고, 저항이 같은 줄에 잘못 꽂혀 실제로는 연결되지 않았을 수 있습니다. GPIO 핀 번호를 코드와 다르게 연결했을 수도 있습니다. 브레드보드에서는 한 칸 차이의 실수가 아주 흔합니다.
브레드보드에서 자주 하는 LED 배선 실수
LED 회로는 단순하지만, 초보자가 가장 많이 실수하는 회로이기도 합니다. 특히 브레드보드의 내부 연결 구조를 아직 몸으로 익히지 못했을 때는 "분명 꽂았는데 왜 안 켜지지?"라는 상황을 자주 만납니다.
가장 흔한 실수는 LED의 두 다리를 같은 내부 연결 줄에 꽂는 것입니다. 브레드보드의 같은 다섯 구멍 묶음에 LED의 두 다리를 꽂으면 LED 양쪽이 사실상 같은 지점에 연결됩니다. 전압 차가 없으니 전류가 흐르지 않고 LED는 켜지지 않습니다. LED의 두 다리는 서로 다른 줄에 꽂아야 합니다.
두 번째 실수는 저항을 꽂았지만 실제로 LED와 직렬로 연결하지 않은 경우입니다. 저항이 회로 옆에 보기 좋게 꽂혀 있어도, 전류가 그 저항을 지나가지 않으면 아무 역할도 하지 않습니다. 회로는 눈으로 보는 모양이 아니라 전기가 흐르는 경로로 이해해야 합니다. 손가락으로 GPIO에서 출발해서 저항을 지나 LED를 통과하고 GND로 돌아간다고 따라가 보세요. 이 경로가 끊기지 않아야 합니다.
세 번째 실수는 GND를 연결하지 않는 것입니다. 출력 핀에서 HIGH가 나와도 돌아갈 길이 없으면 전류가 흐르지 않습니다. 전기는 반드시 닫힌 길을 따라 흐릅니다. 배터리의 +에서 나온 전류가 부품을 지나 -로 돌아가듯, GPIO에서 나온 전류도 LED를 지나 보드의 GND로 돌아가야 합니다.
LED 하나가 켜졌다면 작은 성공처럼 보이지만, 사실 로봇 회로의 큰 원리를 이미 경험한 것입니다. 출력 핀을 설정하고, 전류 경로를 만들고, 부품의 극성을 확인하고, GND로 되돌리는 것. 이 과정은 모터 드라이버의 방향 신호를 보내거나, 릴레이를 켜거나, 부저를 울릴 때도 반복됩니다.
버튼 입력은 생각보다 흔들린다
이번에는 버튼을 연결해 입력을 받아보겠습니다. 버튼은 사람이 로봇에게 명령을 주는 가장 단순한 방법입니다. 시작 버튼, 정지 버튼, 모드 변경 버튼, 긴급 정지 버튼처럼 실제 로봇에서도 자주 사용됩니다.
버튼은 누르면 두 지점을 연결하고, 떼면 끊는 부품입니다. 그래서 겉보기에는 아주 간단합니다. 버튼 한쪽을 전원에 연결하고 다른 쪽을 GPIO 입력 핀에 연결하면, 버튼을 눌렀을 때 HIGH가 들어올 것 같습니다. 그런데 버튼을 떼었을 때 문제가 생깁니다. 입력 핀이 아무 곳에도 확실히 연결되지 않은 상태가 되기 때문입니다.
이런 상태를 플로팅이라고 합니다. 플로팅은 입력 핀이 HIGH도 LOW도 아닌 애매한 상태로 떠 있는 것을 뜻합니다. 입력 핀은 매우 민감해서 주변 전기 잡음, 손의 접근, 옆 선의 신호 변화에도 값이 흔들릴 수 있습니다. 그래서 버튼을 누르지 않았는데 눌린 것처럼 읽히거나, 시리얼 모니터에 0과 1이 불규칙하게 찍히는 일이 생깁니다.
로봇에서 입력값이 흔들리는 것은 생각보다 위험합니다. 정지 버튼이 눌리지 않았는데 눌린 것으로 인식하면 로봇이 갑자기 멈출 수 있고, 반대로 눌렀는데 제대로 인식하지 못하면 더 큰 문제가 됩니다. 그래서 버튼 입력에는 기준 상태를 확실히 정해주는 저항이 필요합니다. 이것이 풀업과 풀다운입니다.
풀다운 저항: 누르지 않으면 LOW
풀다운 저항은 입력 핀을 기본적으로 GND 쪽에 약하게 연결해두는 방식입니다. 버튼을 누르지 않았을 때 입력 핀은 저항을 통해 GND에 연결되므로 LOW가 됩니다. 버튼을 누르면 입력 핀이 전원에 직접 연결되어 HIGH가 됩니다.
회로 흐름은 이렇게 생각할 수 있습니다.
전원 → 버튼 → 입력 핀 → 풀다운 저항 → GND
버튼을 누르지 않으면 전원 쪽 길이 끊겨 있으므로, 입력 핀은 풀다운 저항을 통해 GND에 붙잡혀 LOW가 됩니다. 버튼을 누르면 전원과 입력 핀이 연결되어 HIGH가 됩니다. 이때 풀다운 저항은 전원과 GND가 직접 쇼트되지 않도록 전류를 제한하는 역할도 합니다.
풀다운 저항에는 보통 10kΩ 정도를 많이 사용합니다. 10kΩ은 입력 상태를 안정시키기에는 충분히 작고, 버튼을 눌렀을 때 불필요하게 큰 전류가 흐르지 않을 만큼 큽니다. 꼭 10kΩ만 가능한 것은 아니지만, 처음 실습에서는 10kΩ을 기준값으로 생각하면 됩니다.
아두이노에서 풀다운 버튼 회로를 읽는 코드는 다음과 같습니다.
const int BUTTON_PIN = 2;
const int LED_PIN = 8;
void setup() {
pinMode(BUTTON_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == HIGH) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}이 회로에서는 버튼을 누르면 LED가 켜지고, 버튼을 떼면 LED가 꺼집니다. 동작이 직관적입니다. 눌렀을 때 HIGH, 떼었을 때 LOW입니다. 그래서 처음 버튼 입력을 이해할 때 풀다운 회로는 좋은 출발점이 됩니다.
풀업 저항: 누르지 않으면 HIGH
풀업 저항은 풀다운과 반대입니다. 입력 핀을 기본적으로 전원 쪽에 약하게 연결해둡니다. 버튼을 누르지 않았을 때 입력 핀은 HIGH이고, 버튼을 누르면 입력 핀이 GND에 연결되어 LOW가 됩니다.
처음에는 조금 헷갈릴 수 있습니다. 버튼을 눌렀는데 LOW라니 이상하게 느껴집니다. 하지만 실제 회로에서는 풀업 방식이 매우 자주 사용됩니다. 특히 아두이노와 ESP32에는 내부 풀업 저항을 켜는 기능이 있어 외부 저항 없이 버튼 입력을 안정적으로 받을 수 있습니다.
내부 풀업을 사용하면 회로가 단순해집니다. 버튼 한쪽을 GPIO 입력 핀에 연결하고, 다른 쪽을 GND에 연결합니다. 그리고 코드에서 해당 핀을 INPUT_PULLUP으로 설정합니다. 그러면 보드 내부에서 입력 핀이 전원 쪽으로 약하게 연결됩니다.
const int BUTTON_PIN = 2;
const int LED_PIN = 8;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}이 코드에서 버튼을 누르면 LOW가 읽힙니다. 그래서 조건문도 buttonState == LOW일 때 LED를 켜도록 작성했습니다. 이것을 액티브 로우라고 부르기도 합니다. 동작이 활성화되는 상태가 HIGH가 아니라 LOW라는 뜻입니다.
풀업 방식에 익숙해지면 버튼 회로가 훨씬 간단해집니다. 외부 저항 하나가 줄어들고, 배선도 짧아집니다. 로봇의 시작 버튼이나 모드 버튼처럼 여러 개의 버튼을 연결할 때 특히 편리합니다. 다만 코드에서 눌림 상태가 LOW라는 점을 잊지 않아야 합니다.
버튼은 전기적으로도 튄다
버튼 입력에서 하나 더 알아두면 좋은 현상이 있습니다. 바로 채터링입니다. 버튼을 누르는 순간 내부 금속 접점이 한 번에 딱 붙는 것처럼 보이지만, 실제로는 아주 짧은 시간 동안 붙었다 떨어졌다를 여러 번 반복할 수 있습니다. 사람 손에는 한 번 누른 것처럼 느껴져도, 마이크로컨트롤러는 빠르게 여러 번 눌린 것으로 읽을 수 있습니다.
이 장에서는 풀업과 풀다운으로 입력값이 떠다니는 문제를 먼저 해결하는 것이 목표입니다. 채터링은 나중에 버튼을 이용해 모드를 바꾸거나 카운트를 올리는 실습에서 더 중요해집니다. 지금은 간단히 delay(20) 정도를 넣어 입력을 조금 기다리거나, 같은 값이 일정 시간 유지될 때만 버튼 상태를 인정하는 방식으로 완화할 수 있다는 정도만 기억해두면 됩니다.
예를 들어 버튼을 누를 때마다 LED 상태를 바꾸는 회로를 만든다면, 채터링 때문에 한 번 눌렀는데 켜졌다 꺼졌다가 빠르게 반복될 수 있습니다. 반면 버튼을 누르고 있는 동안 LED를 켜는 정도라면 채터링 문제가 크게 드러나지 않을 수도 있습니다. 회로의 목적에 따라 필요한 처리가 달라지는 것입니다.
입력과 출력이 만나면 작은 제어가 된다
LED 출력과 버튼 입력을 합치면 아주 작은 제어 시스템이 됩니다. 버튼이라는 현재 입력을 읽고, 그 결과에 따라 LED라는 출력을 바꿉니다. 이것은 나중에 로봇 제어로 확장됩니다. 거리 센서가 가까운 장애물을 감지하면 모터를 멈추고, 라인 센서가 검은 선을 읽으면 좌우 바퀴 속도를 바꾸고, IMU가 기울어짐을 감지하면 자세를 보정합니다.
구조만 보면 모두 비슷합니다.
입력을 읽는다
판단한다
출력을 바꾼다
지금은 입력이 버튼이고 출력이 LED입니다. 나중에는 입력이 초음파 센서나 엔코더가 되고, 출력이 모터 속도나 서보 각도가 됩니다. 그러므로 버튼과 LED 실습을 너무 가볍게 넘기지 않는 것이 좋습니다. 이 작은 회로 안에 로봇 제어의 기본 흐름이 들어 있습니다.
아래 코드는 버튼을 누르면 LED가 켜지고, 떼면 꺼지는 가장 기본적인 입력-출력 제어 예입니다. 내부 풀업을 사용하므로 버튼을 누르면 LOW가 읽힙니다.
const int BUTTON_PIN = 2;
const int LED_PIN = 8;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
bool pressed = (digitalRead(BUTTON_PIN) == LOW);
if (pressed) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}여기서 pressed라는 변수를 만든 이유는 코드의 의미를 더 분명하게 하기 위해서입니다. digitalRead(BUTTON_PIN) == LOW라는 전기적 조건을 pressed, 즉 버튼이 눌렸다는 의미로 바꿔 읽으면 코드가 훨씬 이해하기 쉬워집니다. 로봇 코드에서도 이런 습관이 중요합니다. 센서값과 제어 조건이 많아질수록, 코드가 무엇을 뜻하는지 스스로 설명할 수 있어야 디버깅이 쉬워집니다.
멀티미터는 회로의 손전등이다
회로가 동작하지 않을 때 가장 먼저 해야 할 일은 부품을 바꾸는 것이 아닙니다. 코드 전체를 다시 쓰는 것도 아닙니다. 먼저 실제 전기가 어디까지 와 있는지 확인해야 합니다. 이때 가장 유용한 도구가 멀티미터입니다.
멀티미터는 전압, 저항, 연속성 등을 측정할 수 있는 기본 계측기입니다. 처음에는 복잡해 보이지만, 브레드보드 실습에서 자주 쓰는 기능은 몇 가지뿐입니다. DC 전압 측정으로 전원 레일에 전압이 들어오는지 확인하고, 연속성 측정으로 두 지점이 실제로 이어져 있는지 확인합니다. 저항 측정으로 저항값을 확인할 수도 있습니다.
전압을 측정할 때는 멀티미터를 DC 전압 모드에 놓고, 검은 프로브를 GND에, 빨간 프로브를 측정하고 싶은 지점에 댑니다. 브레드보드 + 레일을 측정했을 때 아두이노 5V 회로라면 약 5V, ESP32 3.3V 회로라면 약 3.3V가 나와야 합니다. 만약 0V라면 전원이 연결되지 않았거나 레일이 중간에서 끊겼을 수 있습니다.
GPIO 출력 핀도 측정할 수 있습니다. LED가 켜져야 하는 순간 GPIO 핀과 GND 사이의 전압을 재보세요. HIGH일 때 전압이 정상적으로 나오는데 LED가 켜지지 않는다면 LED 방향, 저항 연결, GND 경로를 의심해야 합니다. 반대로 GPIO 전압 자체가 변하지 않는다면 코드의 핀 번호나 pinMode 설정을 확인해야 합니다.
연속성 측정은 브레드보드 구조를 확인할 때 특히 좋습니다. 멀티미터를 연속성 모드에 놓고 두 지점을 찍었을 때 삑 소리가 나면 두 지점은 전기적으로 연결되어 있다는 뜻입니다. 같은 줄의 구멍들이 연결되어 있는지, 전원 레일이 중간에서 끊겼는지, 점퍼선이 내부에서 단선되었는지 확인할 수 있습니다.
단, 전원이 켜진 상태에서 저항 측정이나 연속성 측정을 하는 것은 피하는 것이 좋습니다. 측정 모드에 따라 멀티미터가 작은 전류를 흘려 확인하는 방식이기 때문에, 회로에 전원이 들어온 상태에서는 정확하지 않거나 장비에 무리가 갈 수 있습니다. 전압은 전원이 켜진 상태에서 측정하고, 연속성과 저항은 전원을 끈 뒤 측정한다고 기억하면 안전합니다.
회로가 안 될 때는 순서대로 의심한다
초보자는 회로가 동작하지 않으면 막막해집니다. 하지만 대부분의 문제는 몇 가지 범위 안에서 발생합니다. 중요한 것은 무작정 모든 것을 바꾸지 않는 것입니다. 하나씩 확인해야 원인을 찾을 수 있습니다.
브레드보드 회로가 동작하지 않을 때는 다음 순서로 확인해보세요.
전원 레일에 올바른 전압이 들어오는지 측정한다
보드 GND와 브레드보드 GND가 연결되어 있는지 확인한다
부품의 극성, 특히 LED 방향과 전해 커패시터 방향을 확인한다
코드의 핀 번호와 실제 연결한 GPIO 번호가 같은지 확인한다
점퍼선이 같은 줄에 꽂힌 것처럼 보여도 실제 내부 연결 줄이 맞는지 확인한다
저항이 회로와 직렬 또는 풀업·풀다운 위치에 제대로 들어갔는지 확인한다
전원 레일이 중간에서 끊긴 브레드보드인지 확인한다
이 체크리스트를 사용할 때는 한 번에 하나씩만 바꾸는 것이 좋습니다. LED 방향도 바꾸고, 핀 번호도 바꾸고, 코드도 수정하고, 점퍼선도 옮기면 결국 무엇이 원인이었는지 알 수 없습니다. 회로 디버깅은 탐정 놀이와 비슷합니다. 단서를 하나씩 지워가야 범인을 찾을 수 있습니다.
특히 로봇에서는 전원 문제가 매우 자주 발생합니다. USB로 보드를 연결했을 때는 잘 되던 회로가 배터리로 바꾸면 이상해질 수 있습니다. 모터가 돌기 시작하는 순간 센서값이 흔들리거나 보드가 리셋될 수도 있습니다. 브레드보드 단계에서 전원과 GND를 확인하는 습관을 들이면, 나중에 더 복잡한 로봇에서도 문제를 훨씬 빨리 찾을 수 있습니다.
브레드보드는 영구 배선이 아니다
브레드보드는 실험과 검증에 매우 좋지만, 완성 로봇의 영구 배선으로 쓰기에는 한계가 있습니다. 점퍼선은 충격에 빠질 수 있고, 로봇이 움직일 때 진동으로 접촉이 불안정해질 수 있습니다. 모터처럼 전류가 많이 흐르는 부품을 브레드보드에 직접 연결하는 것도 좋지 않습니다. 브레드보드 내부 금속판과 얇은 점퍼선은 큰 전류를 오래 견디기 위한 구조가 아닙니다.
따라서 브레드보드는 신호 회로와 작은 부품을 시험하는 용도로 사용하고, 실제 로봇에 장착할 때는 더 안정적인 배선 방식으로 옮기는 것이 좋습니다. 듀폰 케이블을 고정하거나, 만능기판에 납땜하거나, 커넥터를 사용하는 방식으로 바꿀 수 있습니다. 특히 모터 전원선, 배터리선, 전류가 큰 드라이버 전원선은 굵기와 접촉 안정성을 신경 써야 합니다.
그렇다고 브레드보드가 덜 중요하다는 뜻은 아닙니다. 오히려 반대입니다. 브레드보드에서 충분히 검증한 뒤에 납땜해야 실수를 줄일 수 있습니다. 회로가 맞는지, 코드가 맞는지, 부품 방향이 맞는지 확인하지 않은 채 바로 납땜하면 나중에 고치는 일이 훨씬 어렵습니다.
작은 회로에서 로봇 회로로
이 장에서 만든 회로는 LED와 버튼뿐입니다. 하지만 여기에는 로봇 하드웨어 제작의 기본기가 거의 모두 들어 있습니다. 브레드보드 내부 연결 구조를 이해했고, 전원 레일과 GND를 정리했고, LED를 통해 디지털 출력을 확인했고, 버튼을 통해 디지털 입력을 읽었습니다. 풀업과 풀다운으로 입력이 흔들리지 않게 만드는 방법도 배웠고, 멀티미터로 전원과 연결 상태를 확인하는 습관도 익혔습니다.
앞으로 우리는 DC 모터, 서보 모터, 스텝 모터, 거리 센서, IMU, 라인 센서 같은 부품을 하나씩 다룰 것입니다. 부품은 달라져도 기본 질문은 같습니다. 전원은 맞는가? GND는 공유되어 있는가? 신호선은 올바른 핀에 연결되어 있는가? 입력값은 안정적인가? 출력은 기대한 대로 변하는가?
로봇 제작에서 실력은 대단한 회로도 하나를 외운다고 생기지 않습니다. 작은 회로를 직접 만들고, 실패하고, 측정하고, 고쳐보는 과정에서 생깁니다. LED 하나가 켜지지 않아 10분을 헤맨 경험은 결코 낭비가 아닙니다. 그 10분 덕분에 나중에 움직이지 않는 로봇 앞에서 어디부터 확인해야 할지 알게 됩니다.
이제 브레드보드 위에 작은 출력과 입력을 만들 수 있게 되었습니다. 다음부터는 이 신호가 더 강한 힘을 움직이게 됩니다. 바로 모터입니다. LED가 빛으로 대답했다면, 모터는 움직임으로 대답할 것입니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.