Pines fijos para cada bus
El ATmega328P no tiene una matriz de pines: cada periférico está en pines concretos. El I²C está en A4 (SDA) y A5 (SCL), el SPI en D10 (SS), D11 (MOSI), D12 (MISO) y D13 (SCK), y el puerto serie hardware en D0 (RX) y D1 (TX), compartido con el chip USB. attachInterrupt() solo funciona en D2 y D3; el resto de pines necesita interrupciones por cambio de pin.
El PWM está en D3, D5, D6, D9, D10 y D11, marcados con ~. Los pines 5 y 6 van a unos 980 Hz (976,6 Hz) y los demás a 490 Hz. La biblioteca Servo ocupa el temporizador de los pines 9 y 10, y tone() el de los pines 3 y 11, así que el PWM en esos pines se detiene mientras los usan.
A6 y A7: solo analógicos
El Nano añade A6 y A7, que el UNO no tiene. Solo están conectados al ADC: digitalRead(), digitalWrite() e INPUT_PULLUP no funcionan en ellos. De A0 a A5 funcionan como entradas analógicas y como pines digitales del 14 al 19.
Corriente y alimentación
El ATmega328P está especificado a 20 mA por pin; 40 mA es su máximo absoluto, y el chip entero debe quedar por debajo de 200 mA por sus pines de alimentación. Además hay límites por grupos de pines: como máximo 150 mA entregados entre D0–D4 y A0–A5 juntos y 150 mA entre D5–D13, y como máximo 100 mA absorbidos por cada grupo: A0–A5, D0–D4 y D5–D13. Usa un transistor para relés, motores y tiras LED. En el Nano original el pin 3V3 sale del chip USB-serie, así que solo funciona con el USB conectado y es para cargas pequeñas; los clones pueden ser distintos.
Tabla completa de pines del Arduino Nano
| Pin | Puerto | Estado | Analógico | Funciones | Notas |
|---|---|---|---|---|---|
| D0 | PD0 | Con cuidado | No | RXD | USB-serie, UART RX |
| D1 | PD1 | Con cuidado | No | TXD | USB-serie, UART TX |
| D2 | PD2 | Libre | No | INT0 | Sin restricciones |
| D3 | PD3 | Libre | No | PWM, INT1, OC2B | temporizador de tone() |
| D4 | PD4 | Libre | No | No | Sin restricciones |
| D5 | PD5 | Libre | No | PWM, OC0B | PWM a unos 980 Hz |
| D6 | PD6 | Libre | No | PWM, OC0A | PWM a unos 980 Hz |
| D7 | PD7 | Libre | No | No | Sin restricciones |
| D8 | PB0 | Libre | No | No | Sin restricciones |
| D9 | PB1 | Libre | No | PWM, OC1A | temporizador de Servo |
| D10 | PB2 | Libre | No | PWM, OC1B, SS | temporizador de Servo, SPI CS |
| D11 | PB3 | Libre | No | PWM, OC2A, MOSI | temporizador de tone(), SPI MOSI (TX) |
| D12 | PB4 | Libre | No | MISO | SPI MISO (RX) |
| D13 | PB5 | Libre | No | SCK | LED, SPI SCK |
| A0 | PC0 | Libre | ADC0 | No | Sin restricciones |
| A1 | PC1 | Libre | ADC1 | No | Sin restricciones |
| A2 | PC2 | Libre | ADC2 | No | Sin restricciones |
| A3 | PC3 | Libre | ADC3 | No | Sin restricciones |
| A4 | PC4 | Libre | ADC4 | SDA | I²C SDA |
| A5 | PC5 | Libre | ADC5 | SCL | I²C SCL |
| A6 | ADC6 | Solo entrada | ADC6 | No | solo analógico |
| A7 | ADC7 | Solo entrada | ADC7 | No | solo analógico |
Pines físicos: el 1 es TX (D1), el 15 es D12, el 16 es D13 y el 30 es VIN. VIN admite de 6 a 20 V, recomendados de 7 a 12 V; 5V es la línea estabilizada.
Preguntas frecuentes
¿Puedo usar A6 y A7 como pines digitales en el Nano?
No. A6 y A7 solo están conectados al ADC del ATmega328P, así que no tienen entrada digital, salida ni pull-up. Para leer un botón en ellos, usa analogRead() y una resistencia externa.
¿Qué pines del Arduino Nano admiten PWM?
D3, D5, D6, D9, D10 y D11. D5 y D6 van a unos 980 Hz (976,6 Hz) y los demás a 490 Hz.
¿Cuáles son los pines I2C y SPI del Nano?
El I²C usa A4 (SDA) y A5 (SCL). El SPI usa D11 (MOSI), D12 (MISO) y D13 (SCK), con D10 como SS. Son pines fijos en el hardware.
¿Cuánta corriente puede dar un pin del Arduino Nano?
El ATmega328P está especificado a 20 mA por pin, con 40 mA como máximo absoluto y 200 mA en total por sus pines de alimentación. Además hay límites por grupos de pines: como máximo 150 mA entregados entre D0–D4 y A0–A5 juntos y 150 mA entre D5–D13, y como máximo 100 mA absorbidos por cada grupo: A0–A5, D0–D4 y D5–D13. Todo lo que sea más grande que un LED, contrólalo con un transistor o un MOSFET.
¿Qué pines del Nano pueden generar interrupciones?
attachInterrupt() funciona en D2 y D3. Cualquier otro pin puede generar una interrupción por cambio de pin, mediante los registros PCINT o una biblioteca.