ADXL335는 X·Y·Z 세 방향의 가속도를 각각 아날로그 전압으로 내보내는 칩입니다. 정지한 상태에서는 기울기에 따라 중력 가속도도 읽습니다. 여기서 1 g는 지표면 중력 가속도 크기를 기준으로 한 값입니다. 칩의 전원 핀 V_S는 1.8–3.6 V에서 동작합니다. 전원을 넣을 때 허용되는 모듈 입력 전압과 칩의 V_S를 같은 전압으로 생각하면 안 됩니다.
VCC 표기보다 보드의 실제 전원 경로를 먼저 확인합니다
브레이크아웃 모듈(breakout module)은 작은 칩을 배선하기 쉬운 기판에 올린 제품입니다. 어떤 제품은 모듈 입력과 ADXL335 사이에 전압 레귤레이터(voltage regulator)가 있어 입력 5 V를 칩용 전압으로 낮춥니다. 실제로 5 V 입력을 허용하는 ADXL335 보드가 있습니다. 그러나 같은 칩을 쓰는 다른 보드에도 레귤레이터가 있다는 뜻은 아닙니다. 칩 V_S에 5 V를 직접 연결하면 ADXL335의 동작 범위를 벗어납니다. 데이터시트에서 V_S의 절대 최대 정격도 +3.6 V이며, 절대 최대 정격은 정상 동작을 보증하는 값이 아닙니다.
전원을 넣기 전에는 모듈의 정확한 제조사·모델, 실물 핀 표기와 회로도에서 VCC 또는 VIN의 입력 정격을 찾으십시오. VCC에서 칩 V_S까지 전압 레귤레이터를 거치는지, 보드가 내보내는 X·Y·Z 신호가 어떤 핀에 있는지 함께 확인합니다. 보드 모델이나 입력 정격을 확인할 수 없다면 Uno의 5 V에 시험 삼아 연결하지 않습니다. 부품이 세 단자로 보인다는 사실만으로 레귤레이터의 종류나 연결 방향을 확정할 수도 없습니다.
확인된 전원에서 출력과 ADC 기준을 맞춥니다
- 보드 자료가 5 V 입력을 허용할 때에만 그 입력으로 전원을 공급합니다. 처음에는 전류 제한이 가능한 전원을 사용하고, 공통 접지(
GND, ground)를 연결합니다. 전원이 들어온 상태에서 칩의V_S가 1.8–3.6 V인지 확인하십시오. 칩 핀을 안전하게 잴 수 없다면 회로도에 표시된 테스트 지점이나 레귤레이터 출력에서 확인합니다. 접근 가능한 측정점도 자료도 없다면 칩 전압을 확인했다고 기록하지 않습니다. - 모듈의
X_OUT,Y_OUT,Z_OUT전압이 Arduino 아날로그 입력의 허용 범위 안에 있는지 확인한 다음, 한 배선 예시로 각각A1,A2,A3에 연결합니다. 기판 핀 순서와 프로그램에서 읽는 채널 순서를 맞추십시오.GND가 공통이 아니면 세 출력 전압을 같은 기준으로 읽을 수 없습니다. - 아날로그-디지털 변환기(Analog-to-Digital Converter, ADC)의 기준 전압
V_REF와 실제 칩 전원V_S를 모두 기록합니다. ADC는 입력 전압을V_REF에 대한 숫자로 바꾸므로 기준을 바꾸면 센서 출력 전압이 같아도 숫자는 달라집니다. 외부 기준을AREF에 연결할 때에는 해당 Arduino 보드의 설정 절차를 먼저 따르십시오. 외부 기준과 내부 기준을 잘못 맞물리게 하면 보드를 손상시킬 수 있습니다.
보드를 바꿀 때는 커넥터의 ADC 입력부터 확인합니다. Arduino Uno R3에는 A0–A5 아날로그 입력이 있습니다. 반면 표준 40핀 GPIO 헤더를 사용하는 Raspberry Pi 컴퓨터의 헤더에는 범용 ADC 입력이 없습니다. GPIO(General-Purpose Input/Output)를 HIGH/LOW로 읽는 것과 센서의 연속적인 출력 전압을 ADC 코드로 읽는 것은 다릅니다. 따라서 Uno의 A1·A2·A3 배선을 Pi의 임의 GPIO 핀으로 그대로 옮기지 않습니다.
같은 아날로그 센서를 Pi에서 읽으려면 외부 ADC를 거쳐 디지털 통신으로 값을 받는 방식 등을 검토합니다. 센서의 세 축을 받을 입력 채널 수, 입력 허용 범위와 기준 전압, 필요한 샘플링 속도, SPI·I²C 같은 통신 방식과 Pi 쪽 논리 전압의 호환성을 확인하십시오. 센서·ADC·Pi의 공통 접지와 코드에서 선택하는 채널도 대조합니다. 모듈 전원 입력 정격과 신호 입력 허용 전압은 별개입니다. Raspberry Pi Pico 계열은 ADC를 내장한 별도의 마이크로컨트롤러(MCU) 보드이므로 Pi 컴퓨터와 묶지 말고, 정확한 보드의 핀 기능표에서 사용 가능한 입력을 확인합니다. 이 구분만으로 특정 배선의 동작이나 실시간 성능이 검증되지는 않습니다.
ADXL335의 출력은 비율계량(ratiometric) 방식입니다. 칩 전원 V_S가 바뀌면 가속도 0 g일 때의 중심 전압과 1 g당 전압 변화량인 감도(sensitivity)도 함께 바뀝니다. 따라서 V_S가 약 3 V인 센서를 5 V 기준 ADC로 읽는 경우, V_S나 V_REF의 변화가 코드값에 남을 수 있습니다. 레귤레이터 출력과 ADC 기준을 같이 쓰는 설계도 가능하지만, 해당 모듈의 출력 핀과 Arduino의 외부 기준 연결·설정을 확인한 뒤에만 적용합니다.
정지한 세 자세에서 0 g와 ±1 g를 확인합니다
센서를 고정하고 한 축이 중력 방향과 나란한 자세, 반대 방향을 향한 자세, 그 축이 중력과 직각인 자세를 차례로 만듭니다. 각각 정지해 출력이 안정된 뒤 같은 축의 전압과 ADC 코드를 기록하십시오. 세 자세는 그 축의 대략적인 +1 g, −1 g, 0 g 조건입니다. 실제 어느 쪽이 +1 g인지는 보드의 축 표시와 칩 방향을 확인해 정합니다. 다른 두 축도 같은 방식으로 반복하면 신호선 순서가 바뀌었는지도 드러납니다.
기판을 수평으로 놓고 수직축을 중심으로 방향만 바꾼 뒤 다시 정지시켜도, 중력의 X·Y·Z축 성분은 이상적으로 같습니다. 이 회전각을 요각(yaw angle)이라고 합니다. 따라서 세 축의 0 g·±1 g 응답이 정상이어도, 정지한 상태의 중력값만으로 기판이 수평면에서 어느 쪽을 향하는지 판별할 수 없습니다.
예를 들어 칩 데이터시트의 전형값만 사용한 계산 예시에서 V_S = 3.0 V이면 0 g 출력은 약 1.5 V, 감도는 약 0.30 V/g입니다. 그 조건에서 한 축을 ±1 g로 놓으면 이상적인 중심 기준으로 각각 약 1.8 V와 1.2 V가 됩니다. 이는 특정 모듈이나 배선도의 실측값이 아닙니다. 칩 편차, 전원, 온도, 출력 필터와 보드 회로에 따라 실제 값은 달라집니다.
측정한 양·음 방향 전압을 각각 V_+, V_-라고 두면, 해당 축의 영점 V_0 ≈ (V_+ + V_-)/2, 감도 S ≈ (V_+ − V_-)/2를 V/g 단위로 추정할 수 있습니다. 이후 측정 전압 V에 대해 가속도는 a ≈ (V − V_0)/S g입니다. V_+와 V_-의 부호는 확인한 축 방향대로 붙입니다. 자세를 정확히 180° 뒤집지 못했다면 이 계산도 교정의 출발값일 뿐입니다.
ADC 기준이 수치에 미치는 영향도 구분하십시오. Uno의 10비트 판독을 이상적으로 계산하면 같은 1.5 V 출력은 V_REF = 5.0 V에서 약 307코드, V_REF = 3.3 V에서 약 465코드입니다. 센서 가속도가 달라진 것이 아니라 전압을 숫자로 바꾸는 눈금이 달라진 것입니다. 이 숫자는 검증용 계산 예시이며 실제 전원·기준 전압을 측정한 결과가 아닙니다.
값이 이상하면 전원부터 되짚습니다
| 관찰한 증상 | 먼저 확인할 곳 |
|---|---|
| 세 축 값이 모두 0 또는 ADC 끝값 부근에 머뭅니다 | 모듈 입력 정격, 칩 V_S, 공통 GND, 출력·전원 핀 혼동, V_REF 설정을 확인합니다. |
| 한 축만 반대 방향으로 변하거나 다른 축이 변합니다 | 보드의 실제 X·Y·Z 표시, 칩의 방향, A1·A2·A3 배선과 코드 채널을 대조합니다. |
| 전원 조건을 바꾸자 같은 자세의 숫자가 바뀝니다 | V_S와 V_REF를 함께 측정하고, 바뀐 영점·감도로 다시 환산합니다. |
| ±1 g 두 자세가 예상보다 비대칭입니다 | 보드가 충분히 정지했는지, 축을 중력에 맞게 돌렸는지, 출력이 잘리지 않았는지 확인한 뒤 각 축의 영점과 감도를 따로 기록합니다. |
배선을 완료했다고 판단할 기준은 정확한 모듈의 입력 정격이 확인되고, 동작 중 칩 V_S가 허용 범위에 있으며, 공통 접지와 ADC 기준이 정해지고, 세 축이 정지 자세의 0 g·±1 g 변화에 각각 대응하는 것입니다. 5 V 선이 그려져 있다는 사실만으로 이 확인을 대신할 수는 없습니다.