168_아두이노나노_A6A7아날로그_특수핀 🎛️🔍

도로시와 지니가 함께하는 TQFP-32 패키지의 2개 추가 ADC 채널, 디지털 I/O 불가(Pure Analog-In) 원리 및 I2C 통신과 듀얼 아날로그 센서 완벽 분리 실습
- 👧 도로시: “지니야! 아두이노 나노 핀들을 돋보기로 살펴보다가 엄청 신기한 걸 발견했어! 우노는 아날로그 핀이
A0부터A5까지 딱 6개뿐인데, 나노에는 왜A6이랑A7이라는 2개의 보너스 핀이 더 있는 거야?” - 🐱 지니: “우와, 도로시 관찰력 최고인걸! 그게 바로 나노가 우노보다 더 강력한 비장의 무기란다! 하지만 아주 치명적인 비밀이 하나 숨어 있어.
A0~A5는 디지털 핀으로도 쓸 수 있지만,A6과A7은 오직 아날로그 입력(analogRead)으로만 동작하거든!” -
🐶 토토: “바우! A6에 LED를 꽂고 켜려고 했는데 불이 안 켜져서 깜짝 놀랐다 멍!”
- 🖥️ 강의 슬라이드: slides.md
1. 👧 도로시의 수수께끼: “A6 핀에 꽂은 LED는 왜 불이 안 켜질까요?”
도로시는 나노의 보너스 핀 A6에 신이 나서 LED를 꽂고 코드를 짰습니다.
// 도로시가 작성했던 코드
pinMode(A6, OUTPUT);
digitalWrite(A6, HIGH); // 앗! 불이 안 켜져요!
코드를 업로드하고 한참을 기다려도 LED는 감감무소식이었습니다.
도대체 왜 이런 일이 일어났을까요?
🐱 지니: “도로시, 마이크로컨트롤러 칩의 내부 반도체 회로를 들여다보면 이유를 알 수 있어!”
- 우노의 직사각형 DIP-28 칩: 다리가 28개뿐이라 공간이 부족해 ADC6과 ADC7 선을 밖으로 빼내지 못했습니다.
- 나노의 정사각형 TQFP-32 칩: 다리가 32개로 늘어나면서 숨어 있던 ADC6과 ADC7 두 가닥이 기판 밖으로 탈출했습니다!
- 하지만 핵심 반도체 구조!:
A0 ~ A5: 디지털 입출력 회로(PORTC) + 아날로그 ADC 변환기 양쪽에 모두 연결됨!A6, A7: 오직 아날로그 멀티플렉서(ADC Mux)에만 연결되어 있고, 디지털 출력 트랜지스터와 내부 풀업 저항이 아예 존재하지 않음!
2. 우노 vs 나노 아날로그 핀 비교표
| 핀 이름 | 아두이노 우노 (Uno R3) | 아두이노 나노 (Nano V3.0) | analogRead() 가능? |
digitalRead() / digitalWrite() 가능? |
내부 풀업(INPUT_PULLUP) 가능? |
|---|---|---|---|---|---|
| A0 ~ A3 | 지원 (4개) | 지원 (4개) | ✅ 가능 (0~1023) | ✅ 가능 (HIGH/LOW) | ✅ 가능 (20k~50kΩ) |
| A4 (SDA) | I2C 겸용 | I2C 겸용 | ✅ 가능 | ✅ 가능 | ✅ 가능 |
| A5 (SCL) | I2C 겸용 | I2C 겸용 | ✅ 가능 | ✅ 가능 | ✅ 가능 |
| A6 | ❌ 없음 | 보너스 탑재! | ✅ 완벽 지원 | ❌ 절대 불가! | ❌ 불가 (외장 저항 필수) |
| A7 | ❌ 없음 | 보너스 탑재! | ✅ 완벽 지원 | ❌ 절대 불가! | ❌ 불가 (외장 저항 필수) |
3. A6과 A7이 만들어내는 메이커 프로젝트의 기적
보통 아두이노 프로젝트에서 I2C 디스플레이(1602 LCD, OLED) 나 I2C 센서를 사용하면 A4(SDA)와 A5(SCL) 핀을 통신용으로 빼앗기게 됩니다.
그러면 우노에서는 아날로그 핀이 A0~A3 딱 4개만 남아 센서를 더 연결하기가 빠듯해집니다.
하지만 나노는 A6과 A7이 있기 때문에:
A4,A5는 I2C 통신(OLED 화면)에 양보하고,A0 ~ A3는 자유롭게 다른 센서나 디지털 핀으로 쓰면서,- 남는
A6과A7에 2축 조이스틱(X축, Y축)이나 배터리 전압 센서를 마음껏 직결할 수 있습니다!
4. 실습 예제: I2C OLED를 쓰면서 A6·A7으로 2축 조이스틱 정밀 계측하기
I2C 통신(A4/A5)으로 1602 LCD에 실시간 데이터를 띄우면서, 보너스 핀 A6과 A7으로 2축 조이스틱의 X축, Y축 좌표를 읽어내는 완벽한 실습 코드입니다.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// A4(SDA), A5(SCL)은 I2C LCD가 사용!
LiquidCrystal_I2C lcd(0x27, 16, 2);
// 나노만의 보너스 아날로그 전용 핀 할당
const int JOY_X_PIN = A6; // 조이스틱 X축 아날로그 입력 (0~1023)
const int JOY_Y_PIN = A7; // 조이스틱 Y축 아날로그 입력 (0~1023)
const int LED_CENTER = 13; // 나노 온보드 LED (중립 표시)
void setup() {
Serial.begin(9600);
// ⚠️ 주의: A6, A7은 pinMode()를 호출할 필요가 없습니다! (호출해도 무시됨)
pinMode(LED_CENTER, OUTPUT);
// I2C LCD 초기화
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nano A6/A7 Test!");
delay(1000);
Serial.println("==========================================");
Serial.println("🕹️ 도로시의 나노 A6/A7 조이스틱 계측 시스템 가동!");
Serial.println("A4/A5는 I2C LCD로 통신하고, A6/A7은 조이스틱을 계측합니다.");
Serial.println("==========================================");
}
void loop() {
// A6과 A7에서 아날로그 전압 값 읽기 (0 ~ 1023)
int xVal = analogRead(JOY_X_PIN);
int yVal = analogRead(JOY_Y_PIN);
// 0~1023 범위를 -100 ~ +100 좌표로 매핑 (중립이 약 512)
int xCoord = map(xVal, 0, 1023, -100, 100);
int yCoord = map(yVal, 0, 1023, -100, 100);
// 조이스틱이 중앙(중립)에 머물러 있는지 판별
if (abs(xCoord) < 10 && abs(yCoord) < 10) {
digitalWrite(LED_CENTER, HIGH); // 중립일 때 LED 점등
} else {
digitalWrite(LED_CENTER, LOW);
}
// LCD 1행: A6(X축) / LCD 2행: A7(Y축)
lcd.setCursor(0, 0);
lcd.print("A6 (X): ");
lcd.print(xCoord);
lcd.print(" "); // 잔상 지우기
lcd.setCursor(0, 1);
lcd.print("A7 (Y): ");
lcd.print(yCoord);
lcd.print(" ");
// 시리얼 모니터 실시간 출력
Serial.print("🎯 A6(X Raw): ");
Serial.print(xVal);
Serial.print(" (");
Serial.print(xCoord);
Serial.print(") | A7(Y Raw): ");
Serial.print(yVal);
Serial.print(" (");
Serial.print(yCoord);
Serial.println(")");
delay(100); // 0.1초마다 갱신
}
5. 실습 결과 및 시리얼 모니터 확인
==========================================
🕹️ 도로시의 나노 A6/A7 조이스틱 계측 시스템 가동!
A4/A5는 I2C LCD로 통신하고, A6/A7은 조이스틱을 계측합니다.
==========================================
🎯 A6(X Raw): 512 (0) | A7(Y Raw): 508 (0) ==> [중립]
🎯 A6(X Raw): 980 (91) | A7(Y Raw): 510 (0) ==> [오른쪽 밀기]
🎯 A6(X Raw): 512 (0) | A7(Y Raw): 80 (-84) ==> [아래로 당기기]
I2C LCD 화면이 부드럽게 글자를 표시하는 동시에, A6과 A7 핀이 조이스틱의 움직임을 1비트의 간섭도 없이 완벽하고 정밀하게 읽어냅니다!
6. 핵심 요약 정리 💡
- TQFP-32 패키지의 선물: 나노는 칩의 소형 표면실장 패키지 특성 덕분에 우노보다 2개 더 많은 아날로그 핀(A6, A7)을 가집니다.
- Pure Analog-In 제약: A6과 A7은 디지털 입출력 레지스터가 연결되어 있지 않으므로
digitalRead(),digitalWrite()는 절대 작동하지 않습니다. - 내부 풀업 저항 없음:
pinMode(A6, INPUT_PULLUP)이 불가능하므로, 스위치를 연결할 때는 외부에 물리적인 10kΩ 풀다운/풀업 저항을 달아주어야 합니다. - I2C 프로젝트의 구원투수: A4, A5 핀을 I2C 디스플레이 통신에 할당하더라도 아날로그 센서 핀이 부족해지지 않는 나노만의 독보적인 장점입니다.
서브목차