// Serial command pin tester for Arduino Nano
// Type a pin name (like A6 or 12) into Serial Monitor, press Enter.
// It will monitor that pin: 1 = HIGH (idle), 0 = LOW (touched to GND).
int currentPin = -1;
void setup() {
Serial.begin(9600);
Serial.println("Pin tester ready.");
Serial.println("Type a pin name (e.g., A0, A6, 12) and press Enter to monitor.");
}
void loop() {
// --- check for serial input ---
if (Serial.available()) {
String input = Serial.readStringUntil('\n');
input.trim();
if (input.length() > 0) {
int pin = parsePin(input);
if (pin >= 0) {
currentPin = pin;
pinMode(currentPin, INPUT_PULLUP);
Serial.print("Now monitoring pin ");
Serial.println(input);
} else {
Serial.print("Invalid pin: ");
Serial.println(input);
}
}
}
// --- if a pin is selected, show its state ---
if (currentPin >= 0) {
int val = digitalRead(currentPin);
Serial.print("Pin ");
Serial.print(currentPin);
Serial.print(" = ");
Serial.println(val);
delay(500);
}
}
// --- helper: convert string like "A6" or "12" into Arduino pin number ---
int parsePin(String s) {
s.toUpperCase();
if (s.startsWith("A")) {
int anum = s.substring(1).toInt();
if (anum >= 0 && anum <= 7) {
return A0 + anum;
}
} else {
int dnum = s.toInt();
if (dnum >= 0 && dnum <= 13) {
return dnum;
}
}
return -1; // invalid
}