Componentes · 20 min de leitura

Pinagem do Arduino Nano: diagrama de pinos, A6/A7, alimentação e Old Bootloader

A pinagem do Arduino Nano em um só guia: D0–D13, A0–A7 (A6/A7 só analógicos), pinos PWM, VIN/5V/3V3, driver CH340, Old Bootloader e um mapa de pinos do Uno para o Nano.

A pinagem do Arduino Nano é formada por 30 pinos enfileirados nas duas bordas longas de uma placa de 45 × 18 mm: 14 pinos digitais de entrada/saída (D0–D13), 6 dos quais podem gerar PWM (~3, 5, 6, 9, 10, 11), 8 entradas analógicas (A0–A7) e os pinos de alimentação e controle: VIN, 5V, 3V3, AREF, dois GND e dois RST. Como o Nano usa o mesmo processador ATmega328P do Arduino Uno, os números e as funções dos pinos também são os mesmos: um sketch escrito para o Uno roda sem nenhuma mudança, além de selecionar o Nano no menu de placas.

Ainda assim, alguns detalhes importantes diferenciam o Nano do Uno, e é justamente neles que os iniciantes empacam: A6 e A7 são só analógicos, não há conector DC, o pino 3V3 fornece pouquíssima corrente, as placas clone cuidam da USB com um chip CH340 e muitas vezes é preciso selecionar ATmega328P (Old Bootloader) para carregar o código. Neste guia você vai conhecer cada pino, aprender a colocar o Nano corretamente na protoboard, ver o mapeamento de pinos do Uno para o Nano e descobrir como o Nano Every e o Nano ESP32 se diferenciam do Nano clássico.

Placa Arduino Nano e seus pinos
Arduino Nano original: o conector mini USB em uma ponta, a barra ICSP 2×3 na outra e o botão de reset no meio. Os pinos D13, 3V3 e AREF ficam na ponta da USB; VIN e TX1 ficam na ponta oposta.

O que é o Arduino Nano e como ele se diferencia do Uno?

O Arduino Nano reúne todos os recursos principais do Uno em uma placa de 45 × 18 mm que pesa cerca de 7 gramas. Os pinos dele apontam para baixo, então ele encaixa direto na protoboard; isso significa menos jumpers e, quando o circuito fica pronto, ele vai fácil para dentro de uma caixa ou de uma placa de circuito permanente. Dentro dele está o mesmo ATmega328P de 16 MHz do Uno, o nível lógico é de 5 V e as mesmas bibliotecas funcionam sem mudanças. No Nano original, a comunicação USB-serial é feita por um chip FT232RL; quase todos os clones baratos do mercado têm, no lugar dele, um CH340G ou CH340C embaixo da placa. Para carrinhos robô, vestíveis, controles remotos e qualquer circuito que precise caber em uma caixa, o Nano é uma escolha mais prática que o Uno.

CaracterísticaArduino Nano (V3)
MicrocontroladorATmega328P, 8 bits, 16 MHz (encapsulamento TQFP-32)
Tensão lógica (de operação)5 V
Tensão de entrada no VIN7–12 V recomendados
Entrada/saída digital14 pinos (D0–D13); 20 contando A0–A5
Saída PWM6 pinos: D3, D5, D6, D9, D10, D11
Entrada analógica8 pinos (A0–A7), 10 bits (0–1023)
Corrente por pino20 mA recomendados, 40 mA de máximo absoluto
Memória32 KB de flash (30.720 bytes utilizáveis no IDE), 2 KB de SRAM, 1 KB de EEPROM
USBMini-B; FT232RL (original) ou CH340 (clone)
Tamanho e peso45 × 18 mm, cerca de 7 g

Diagrama de pinos do Arduino Nano: qual pino fica onde?

Os 30 pinos do Nano ficam em duas fileiras frente a frente de 15, e as fileiras estão a 15,24 mm (0,6 polegada) uma da outra. Coloque a placa à sua frente com o conector mini USB mais perto de você e você verá dois pinos frente a frente logo ao lado do conector: D12 e D13. A fileira do D13 tem 3V3, AREF, A0–A7 e os pinos de alimentação; a fileira do D12 tem os pinos digitais do D11 ao D2, seguidos de GND, RST, RX0 (D0) e TX1 (D1). Na ponta das duas fileiras mais longe da USB, VIN e TX1 ficam frente a frente, e a barra ICSP 2×3 também fica nessa ponta. Em volta do botão de reset, no meio, você encontra o LED de alimentação (POW ou ON), o LED L ligado ao D13 e os LEDs TX e RX, que piscam durante o carregamento.

Posição (a partir da USB)Fileira analógica e de alimentaçãoFileira digitalObservação
1D13 (SCK, LED L)D12 (MISO)Logo ao lado do conector USB
23V3~D11 (MOSI)O 3V3 fornece pouquíssima corrente
3AREF~D10 (SS)-
4A0~D9-
5A1D8-
6A2D7-
7A3~D6-
8A4 (SDA)~D5Linha de dados do I2C
9A5 (SCL)D4Linha de clock do I2C
10A6~D3 (INT1)A6 é só analógico
11A7D2 (INT0)A7 é só analógico
125VGND5V e GND ficam frente a frente
13RSTRSTOs dois são a mesma linha de reset
14GNDD0 (RX0)O D0 está ligado ao chip USB-serial
15VIND1 (TX1)A barra ICSP fica nesta ponta
Em manuais e esquemas, os pinos do Nano às vezes são numerados de 1 a 30 na ordem física: o pino 1 é o TX1 (D1) e o pino 30 é o VIN. Esses números não são usados no código. No código, você sempre usa o nome impresso na placa: escreve 7 para o D7 e A3 para o A3. Se as marcações da placa forem difíceis de ler, deixe a ferramenta de diagrama de pinos aberta no celular.

Pinos digitais (D0–D13), PWM e funções especiais

Cada pino digital é configurado como entrada ou saída com pinMode(); como saída, HIGH dá cerca de 5 V e LOW dá 0 V. Para não deixar uma entrada flutuando, você pode ligar o resistor interno de 20–50 kΩ do chip com INPUT_PULLUP. A corrente segura por pino é de 20 mA; um LED vermelho com resistor de 220 Ω puxa cerca de 13 mA, e você encontra o resistor certo com a calculadora de resistor para LED. Alguns pinos têm funções extras, e conhecê-las antes evita conflitos quando o seu projeto crescer:

PinoFunção extraAtenção
D0 (RX), D1 (TX)Porta serial de hardware (Serial)Ligados ao chip USB-serial por resistores de 1 kΩ; deixe-os livres ao carregar
D2, D3Interrupções externas INT0, INT1O attachInterrupt() só funciona nesses dois pinos
~D3, ~D11PWM, Timer2 (cerca de 490 Hz)O PWM nesses pinos quebra enquanto o tone() estiver tocando
~D5, ~D6PWM, Timer0 (cerca de 980 Hz)Mesmo timer do millis() e do delay()
~D9, ~D10PWM, Timer1 (cerca de 490 Hz)A biblioteca Servo desativa o PWM nesses dois pinos
D10–D13SPI: SS, MOSI, MISO, SCKO D10 precisa continuar como saída ao usar SPI
D13LED L da placaO LED e o resistor dele estão ligados direto ao pino

Um detalhe pequeno, mas importante, que diferencia o Nano do Uno está no D13. No Uno R3, o LED L é acionado por um amplificador operacional, enquanto no Nano o LED e o resistor dele ficam ligados direto ao pino. Se você usar o D13 como entrada de botão com INPUT_PULLUP, o LED puxa o pino para baixo e você pode ler LOW mesmo com o botão solto; reserve esse pino para saídas ou SPI. Você encontra como o PWM funciona e o que significam os valores do analogWrite() em O que é PWM?, e as interrupções em interrupções no Arduino.

Pinos analógicos A0–A7: por que A6 e A7 são diferentes?

As oito entradas analógicas do Nano medem tensões entre 0 e 5 V com resolução de 10 bits: o analogRead() retorna um número de 0 a 1023, e um passo vale cerca de 4,9 mV. Quando necessário, A0–A5 também funcionam como pinos digitais comuns (A0 = 14 … A5 = 19), e A4 e A5 servem ainda como as linhas SDA e SCL do barramento I2C. A6 e A7, que o Uno não tem, são dois canais extras do ADC presentes no encapsulamento de montagem em superfície (TQFP) do ATmega328P. Esses dois canais estão ligados só ao conversor analógico-digital; não há registrador de porta, driver de saída nem resistor de pull-up por trás deles. Por isso pinMode(), digitalRead(), digitalWrite() e INPUT_PULLUP não funcionam nesses dois pinos.

O compilador não reclama de digitalRead(A6), mas o resultado não faz sentido e o seu botão vai parecer não funcionar de jeito nenhum. Use A6 e A7 para fontes analógicas, como um potenciômetro, um LDR ou um sensor de umidade do solo. Se quiser ligar um botão, coloque um resistor de pull-up externo de 10 kΩ do pino para o 5V e leia com analogRead(): considere o botão pressionado quando o valor cair abaixo de 300.

A6 e A7 serem só analógicos pode parecer uma desvantagem, mas dá para usar isso de forma esperta. Se você ligar vários botões a um pino analógico por meio de resistores de valores diferentes, cada botão gera uma tensão diferente; assim você lê quatro botões com um só pino e deixa os pinos digitais livres para motores e displays. No circuito, ligue o A6 ao 5V por um resistor de 10 kΩ; ligue o primeiro botão direto entre o A6 e o GND, e os outros três botões ao GND por resistores de 2,2 kΩ, 4,7 kΩ e 10 kΩ, respectivamente.

C++ (Arduino IDE)
1// A6'da 4 buton: 10 kΩ pull-up + farklı seri dirençler / 4 buttons on A6: 10 kΩ pull-up + different series resistors
2const byte LADDER_PIN = A6;    // yalnız analog pin / analog-only pin
3
4byte readButton() {
5  int v = analogRead(LADDER_PIN);
6  if (v < 92)  return 1;       // 0 Ω      -> yaklaşık 0 / about 0
7  if (v < 256) return 2;       // 2,2 kΩ   -> yaklaşık 184 / about 184
8  if (v < 419) return 3;       // 4,7 kΩ   -> yaklaşık 327 / about 327
9  if (v < 767) return 4;       // 10 kΩ    -> yaklaşık 512 / about 512
10  return 0;                    // basılı değil -> 1023 / not pressed -> 1023
11}
12
13void setup() {
14  Serial.begin(9600);
15}
16
17void loop() {
18  static byte lastButton = 0;
19  byte b = readButton();
20  if (b != lastButton) {
21    delay(20);                 // kontak sıçramasını bekle / wait out contact bounce
22    b = readButton();          // değeri doğrula / confirm the value
23    if (b != lastButton) {
24      lastButton = b;
25      if (b != 0) {
26        Serial.print(F("Buton / Button: "));
27        Serial.println(b);
28      }
29    }
30  }
31}
BotãoResistor em série até o GNDanalogRead esperadoFaixa aceita no código
Botão 10 Ω (direto)00–91
Botão 22,2 kΩCerca de 18492–255
Botão 34,7 kΩCerca de 327256–418
Botão 410 kΩCerca de 512419–766
Nenhum-1023767–1023

Os valores vêm da fórmula analogRead = 1023 × R / (10 kΩ + R), e cada limite fica exatamente no meio entre dois valores vizinhos. Como o resistor de pull-up e o ADC são alimentados pelo mesmo barramento de 5 V, as leituras não mudam mesmo que a alimentação caia para 4,7 V; isso se chama medição raciométrica. Se dois botões forem apertados ao mesmo tempo, os resistores deles ficam em paralelo e a leitura cai: o código vê um botão de número menor, e apertar o 3 e o 4 juntos chega a ser lido como 2. Por isso, uma escada de resistores combina com menus em que só uma tecla é apertada por vez. Você pode testar as contas do divisor com a calculadora de divisor de tensão e ler mais sobre leituras analógicas no artigo sobre ADC.

Pinos de alimentação: VIN, 5V, 3V3 e GND

PinoO que fazLimites e cuidados
VINAlimenta a placa com 7–12 V; o regulador reduz para 5 VO AMS1117 dos clones tolera no máximo 15 V e esquenta rápido com 12 V
5VO barramento de 5 V da placa: como saída, alimenta sensores; como entrada, aceita 5 V reguladosCerca de 4,7 V pela USB; nunca coloque mais de 5 V de fora
3V3Saída de 3,3 VVem do FT232RL no original e do CH340 nos clones; corrente muito limitada
GND (2 pinos)Terra comumO GND de toda fonte externa precisa ser ligado aqui
RST (2 pinos)Reinicia a placa quando puxado para LOWPara um botão de reset externo; os dois são a mesma linha
AREFEntrada de referência externa para medições analógicasChame analogReference(EXTERNAL) antes de usá-lo

Você pode alimentar o Nano de três jeitos. Pela USB, os 5 V vêm do computador através de um diodo Schottky; o diodo tem queda de cerca de 0,3 V, então normalmente você mede 4,6–4,8 V no pino 5V, e o diodo MBR0520 da placa original aguenta no máximo 500 mA. Se você colocar 7–12 V no pino VIN, o regulador embaixo da placa (um LM1117 no original, normalmente um AMS1117 nos clones) reduz para 5 V. O regulador transforma o excesso de tensão em calor: a potência que ele dissipa é (VIN − 5 V) × corrente, então puxar 150 mA de uma entrada de 12 V faz o pequeno regulador queimar cerca de 1 W e ficar quente demais para tocar. Por isso 7–9 V é o ideal para o VIN. O terceiro jeito é colocar 5 V regulados de fora no pino 5V; aí o regulador fica de fora, e o diodo do lado da USB impede que a corrente volte para o seu computador. Se você está usando uma fonte de 12 V, usar um conversor buck LM2596 para gerar 5 V e colocá-los no pino 5V é uma solução muito mais fria; todas as opções de alimentação estão em Como alimentar um Arduino.

O pino 3V3 é o pino mais mal compreendido do Nano. No Uno, esse pino vem de um regulador separado, mas o Nano clássico não tem regulador de 3,3 V separado. No Nano original, os 3,3 V vêm de um pequeno regulador dentro do chip FT232RL (no máximo 50 mA) e, segundo a documentação antiga do Arduino, essa saída não fica disponível quando a placa não está alimentada pela USB. Na maioria dos clones, o pino está ligado ao regulador interno do próprio CH340 e só é seguro para cargas de alguns mA. Então não alimente módulos de 3,3 V como o nRF24L01, o ESP-01 ou o RC522 por esse pino; use um regulador AMS1117-3.3 separado, alimentado pelo pino 5V. E, ao ligar uma saída de 5 V do Nano à entrada de um módulo de 3,3 V, coloque no meio um conversor de nível lógico ou um divisor de tensão.

Ligar uma bateria de 9 V ou uma fonte de 12 V no pino 5V destrói o Nano na hora: esse pino é a saída do regulador, e o ATmega328P aguenta no máximo 6 V. Ligue sempre baterias e fontes no pino VIN. Cuidado também com a polaridade; a maioria dos Nanos não tem proteção contra inversão de polaridade no VIN.

O pino 5V ficar em torno de 4,7 V na USB também afeta as medições analógicas: o analogRead() usa a tensão de alimentação como limite superior, então, se você colocar 5,0 V no cálculo, o resultado erra em 4–6 por cento. Você pode descobrir a tensão de alimentação real medindo a referência fixa interna de cerca de 1,1 V do ATmega328P. O primeiro sketch de teste abaixo faz exatamente isso, converte as oito entradas analógicas em volts usando a tensão de alimentação real e pisca o LED L do D13:

C++ (Arduino IDE)
1// Arduino Nano: A0-A7'yi ve gerçek besleme gerilimini oku / read A0-A7 and the real supply voltage
2const byte ANALOG_PINS[8] = {A0, A1, A2, A3, A4, A5, A6, A7};
3
4long readVccMillivolts() {
5  // Referans AVcc, ölçülen kanal dahili 1,1 V / reference AVcc, measured channel internal 1.1 V
6  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
7  delay(2);                                // referansın oturmasını bekle / let the reference settle
8  ADCSRA |= _BV(ADSC);                     // dönüşümü başlat / start the conversion
9  while (bit_is_set(ADCSRA, ADSC)) {}      // bitmesini bekle / wait until it finishes
10  unsigned int raw = ADC;                  // 10 bit sonuç / 10-bit result
11  return 1125300L / raw;                   // 1,1 V x 1023 x 1000 / 1.1 V x 1023 x 1000
12}
13
14void setup() {
15  Serial.begin(9600);
16  pinMode(LED_BUILTIN, OUTPUT);            // D13'teki L LED'i / L LED on D13
17}
18
19void loop() {
20  long vcc = readVccMillivolts();
21  analogRead(A0);                          // kanal değişti, ilk okumayı at / channel changed, discard the first reading
22  Serial.print(F("Vcc: "));
23  Serial.print(vcc);
24  Serial.print(F(" mV |"));
25  for (byte i = 0; i < 8; i++) {
26    int raw = analogRead(ANALOG_PINS[i]);  // A6 ve A7 de okunur / A6 and A7 are read too
27    Serial.print(F(" A"));
28    Serial.print(i);
29    Serial.print(F("="));
30    Serial.print(raw * (vcc / 1000.0) / 1023.0, 2);   // gerçek Vcc ile volta çevir / convert to volts using the real Vcc
31  }
32  Serial.println();
33  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));   // L LED'ini çevir / toggle the L LED
34  delay(1000);
35}

Depois de carregar, abra o Monitor Serial em 9600 baud. O valor de Vcc deve ficar em torno de 4600–4800 mV na USB e em torno de 5000 mV quando alimentado pelo VIN. Pinos analógicos desconectados mostram valores aleatórios; se você ligar um potenciômetro no A0 e girá-lo, verá o valor mudar suavemente entre 0 e Vcc. A referência interna pode variar ±10% de um chip para outro; para um resultado mais preciso, meça o pino 5V com um multímetro e multiplique a constante 1125300 do código pela razão seu valor medido / o valor que o código mostra. Como este sketch usa diretamente registradores do ATmega328P, ele não funciona no Nano Every nem no Nano ESP32.

Mini USB, CH340 e instalação do driver

O Nano clássico tem um conector USB Mini-B; os cabos Micro-USB ou USB-C usados em celulares não encaixam nele. Alguns clones mais novos têm conectores Micro-USB ou USB-C, mas a maioria ainda é mini USB. O motivo mais comum de a placa nem aparecer na lista de portas é um cabo só de carga, sem os fios de dados: o LED de alimentação acende, mas o computador não vê a placa. Se o cabo estiver bom, vire a placa e olhe o chip perto do conector USB. Se estiver escrito FT232RL, você tem um Nano original e o driver dele normalmente já está no sistema operacional; se estiver escrito CH340G ou CH340C, você tem um clone.

O Windows 10 e o 11 muitas vezes instalam sozinhos o driver do CH340 pelo Windows Update, e a placa aparece no Gerenciador de Dispositivos com um nome como USB-SERIAL CH340 (COM3). Se aparecer um USB2.0-Serial com um ponto de exclamação amarelo em Outros dispositivos, instale o driver CH341SER da WCH, a fabricante do chip, depois desconecte a placa e conecte de novo. As versões atuais do macOS já trazem o driver; a porta aparece como /dev/cu.usbserial-…, e instalar drivers antigos por cima pode causar conflitos. No Linux, o driver já vem no kernel; se a porta sumir assim que você conecta a placa no Ubuntu 22.04 ou posterior, o pacote de leitor de tela brltty está tomando o CH340 e, se você não o usa, pode removê-lo com sudo apt remove brltty. Todos os problemas de porta e de driver estão em Arduino não carrega o código, e as diferenças entre chips USB-serial em conversores USB-TTL.

Carregando o código: ATmega328P ou Old Bootloader?

  1. No Arduino IDE, selecione Ferramentas > Placa > Arduino AVR Boards > Arduino Nano.
  2. Conecte a placa e escolha a porta que acabou de aparecer em Ferramentas > Porta (como COM3 no Windows ou /dev/cu.usbserial-… no macOS).
  3. Em Ferramentas > Processador, tente primeiro carregar o exemplo Blink com a opção ATmega328P.
  4. Se a saída repetir programmer is not responding ou not in sync por dez tentativas, coloque o Processador em ATmega328P (Old Bootloader) e carregue de novo.
  5. Se ainda falhar, tente outra porta USB, tire qualquer fio do D0 e do D1 e confira se o LED L pisca rápido quando você aperta o botão de reset.
  6. Anote qual opção funcionou; outros Nanos do mesmo vendedor provavelmente vão precisar da mesma configuração.

O motivo dessa confusão é uma mudança feita em 2018. O Arduino trocou o antigo bootloader de 2 KB do Nano (ATmegaBOOT) pelo Optiboot de 512 bytes usado no Uno. O Optiboot recebe o código a 115200 baud, enquanto o bootloader antigo espera 57600 baud; quando as velocidades não batem, a placa parece não responder de jeito nenhum. Como os fabricantes de clones continuaram enviando placas com o bootloader antigo por anos, o IDE oferece as duas opções, e escolher a errada não faz mal nenhum à placa. Se quiser, você pode usar um segundo Arduino como ArduinoISP para gravar o bootloader novo no Nano: os carregamentos ficam mais rápidos e o loop infinito de reset do bootloader antigo depois de um reset do watchdog também desaparece.

Opção de processadorBootloaderVelocidade de carregamentoEspaço para o código
ATmega328POptiboot (desde 2018)115200 baud30.720 bytes
ATmega328P (Old Bootloader)ATmegaBOOT (antigo)57600 baud30.720 bytes
ATmega168ATmegaBOOT (antigo)19200 baud14.336 bytes
Para o Nano, a saída da compilação diz O máximo são 30720 bytes; com o Uno selecionado, o mesmo sketch é medido contra um limite de 32.256 bytes. O IDE reserva 2 KB no Nano para manter a compatibilidade com placas antigas, mesmo que o bootloader novo esteja instalado. Se o seu sketch estiver chegando perto desse limite, remova bibliotecas não usadas e linhas Serial.print() desnecessárias, simplifique tabelas grandes ou passe para o Nano Every, com 48 KB de flash.

Colocação na protoboard e solda

Protoboard e o canal central
O canal no meio da protoboard separa as duas metades; quando o Nano fica por cima desse canal, cada pino dele cai em uma tira própria.

Quando encaixar o Nano em uma protoboard, coloque-o de modo que as duas fileiras de pinos fiquem uma de cada lado do canal central. Assim, cada pino cai em uma tira própria, e você pode ligar fios a esse pino pelos furos livres da tira. Como a placa cobre o canal e os furos entre os pinos, sobram só alguns furos ao lado de cada pino; nas protoboards comuns de 830 pontos, se você centralizar a placa sobre o canal, ficam 2 furos livres de um lado e 3 do outro. Virar o conector USB para a borda curta da protoboard facilita encaixar o cabo. Depois, ligue os pinos 5V e GND do Nano aos barramentos de alimentação vermelho e azul da protoboard para alimentar os sensores por ali. Para relembrar como a protoboard é ligada por dentro, veja O que é uma protoboard?.

  • Soldando as barras de pinos: nos clones que vêm com os pinos soltos, encaixe primeiro as barras macho na protoboard, apoie o Nano por cima e solde assim; a protoboard mantém as barras retas e a exatamente 0,6 polegada uma da outra. A técnica está em Como soldar.
  • Para tirar: levantar a placa por uma ponta entorta os pinos; levante as duas pontas um pouco de cada vez, ou passe uma chave de fenda plana por baixo e puxe por igual.
  • Mau contato: em protoboards velhas ou baratas, as molas se desgastam; o Nano reinicia de vez em quando ou um sensor some de vez em quando. Tente mudar a placa para outra área da protoboard.
  • Placa de expansão para Nano: em um projeto permanente, um shield de E/S para Nano com bornes de parafuso ou barras de 3 pinos que dão sinal, 5V e GND para cada pino reduz muito a bagunça de fios.
  • Mini protoboard: as protoboards pequenas de 170 pontos não têm barramentos de alimentação; leve o 5V e o GND para tiras separadas e marque-as com as cores dos fios.
Se você for soldar o Nano em uma placa perfurada com trilhas, garanta que pinos frente a frente não fiquem na mesma trilha de cobre. Se as trilhas não forem cortadas entre as duas fileiras de pinos, o 5V e o GND da posição 12 e o VIN e o TX1 da posição 15 ficam em curto, e no instante em que você conecta a USB, tanto a placa quanto a porta do seu computador sofrem. Corte as trilhas entre as duas fileiras com uma broca; os detalhes estão no artigo circuito permanente.

Tabela de mapeamento de pinos do Arduino Uno para o Nano

FunçãoArduino Uno R3Arduino NanoObservação
E/S digitalD0–D13D0–D13Mesmos números e funções
PWM~3, 5, 6, 9, 10, 11~3, 5, 6, 9, 10, 11Mesmas frequências e timers
Entrada analógicaA0–A5A0–A7A6 e A7 só existem no Nano e são só analógicos
I2C SDA / SCLA4 / A5 (cópia ao lado do AREF)A4 / A5Não há pinos SDA/SCL separados no Nano
SPI SS / MOSI / MISO / SCK10 / 11 / 12 / 1310 / 11 / 12 / 13Os dois também os têm na barra ICSP
Interrupções externasD2, D3D2, D3Iguais
LED embutidoD13 (com buffer de amp. op.)D13 (ligado direto ao pino)Cuidado ao usar o D13 como entrada no Nano
Entrada de alimentaçãoConector DC e Vin, 7–12 VSó o pino VIN, 7–12 VO Nano não tem conector DC
USBUSB-B; ATmega16U2 ou CH340Mini-B; FT232RL ou CH340Cabos diferentes
Saída de 3,3 VRegulador separado, 50 mAVem do chip USB, muito limitadaNo Nano, não alimente módulos por ela
IOREFSimNãoPara compatibilidade com shields
Espaço para o código32.256 bytes30.720 bytesO IDE reserva 2 KB no Nano
Encaixe de shieldsDiretoCom adaptador ou placa de expansão-

Como mostra a tabela, levar para o Nano um circuito montado para o Uno só exige ligar os fios nos pinos com os mesmos números: um servo no D9 do Uno vai no D9 do Nano, e um display I2C em A4/A5 continua indo em A4/A5. A única mudança no código é selecionar Arduino Nano em Ferramentas > Placa. Já os shields que encaixam direto no Uno não servem no Nano; para isso, existem placas adaptadoras que convertem o Nano para a disposição de pinos do Uno. Você encontra o papel detalhado de cada pino do Uno em pinagem do Arduino Uno e ajuda para escolher uma placa em Qual Arduino comprar?.

Nano Every e Nano ESP32: como se diferenciam do Nano clássico

CaracterísticaNano clássico (V3)Nano EveryNano ESP32
ProcessadorATmega328P, 8 bits, 16 MHzATmega4809, 8 bits, 16 MHz no IDE (até 20 MHz)ESP32-S3, dual-core, 32 bits, 240 MHz
Flash / SRAM32 KB / 2 KB48 KB / 6 KB16 MB / 512 KB (+8 MB de PSRAM)
Tensão lógica5 V5 V3,3 V (não tolera 5 V)
USBMini-BMicro-BUSB-C
Faixa do VIN7–12 V recomendados7–21 V6–21 V
Pinos PWMD3, D5, D6, D9, D10, D11D3, D5, D6, D9, D10 (não no D11)Quase todos os pinos digitais
A6 / A7Só analógicosAnalógicos e digitaisAnalógicos e digitais
Interrupções externasSó D2, D3Todos os pinos digitaisTodos os pinos
Linha serial D0 / D1Compartilhada com a USB (Serial)Separada da USB (Serial1)Separada da USB (Serial0)
Sem fioNenhumNenhumWi-Fi e Bluetooth LE
Pacote de placa no IDEArduino AVR BoardsArduino megaAVR BoardsArduino ESP32 Boards

O Nano Every é uma versão mais potente do Nano clássico, com o mesmo tamanho e a mesma disposição de pinos. Ele tem um ATmega4809 dentro, funciona em 5 V e oferece 48 KB de flash e 6 KB de SRAM, então projetos com OLED e fita de LED que sofrem com a RAM do Nano clássico ganham um respiro. No lado da USB, um chip SAMD11 faz a ponte e o código é carregado pela interface UPDI, então não há a dor de cabeça do Old Bootloader. Para usar a placa, instale o pacote Arduino megaAVR Boards pelo Gerenciador de Placas. As diferenças a observar: o PWM só existe em D3, D5, D6, D9 e D10 (o D11 não tem PWM), A6 e A7 também funcionam como pinos digitais, todo pino digital pode ser usado como interrupção externa, e D0 e D1 são uma porta Serial1 independente da USB. A opção Ferramentas > Registers emulation > ATMEGA328 emula registradores de porta como o PORTB, mas código antigo que escreve diretamente em registradores de timer ou de ADC continua sem funcionar. O sketch abaixo mostra juntas duas diferenças do Every: ele conversa com um módulo em D0/D1 enquanto o Monitor Serial está aberto e usa o A7 como entrada de botão com o pull-up interno.

C++ (Arduino IDE)
1// Nano Every: Serial = USB, Serial1 = D0 (RX) ve D1 (TX) / Serial = USB, Serial1 = D0 (RX) and D1 (TX)
2const byte BUTTON_PIN = A7;            // Every'de A7 dijital de çalışır / A7 also works as digital on the Every
3
4bool lastState = HIGH;
5
6void setup() {
7  Serial.begin(9600);                  // Seri Monitör / Serial Monitor
8  Serial1.begin(9600);                 // D0/D1'deki modül, ör. HC-05 / module on D0/D1, e.g. HC-05
9  pinMode(BUTTON_PIN, INPUT_PULLUP);   // klasik Nano'nun A7'sinde çalışmaz / does not work on the classic Nano's A7
10}
11
12void loop() {
13  if (Serial1.available()) {
14    Serial.write(Serial1.read());      // modülden bilgisayara / module to computer
15  }
16  if (Serial.available()) {
17    Serial1.write(Serial.read());      // bilgisayardan modüle / computer to module
18  }
19  bool state = digitalRead(BUTTON_PIN);
20  if (state != lastState) {            // durum değişince bildir / report when the state changes
21    lastState = state;
22    Serial1.println(state == LOW ? "Buton basildi / Button pressed" : "Buton birakildi / Button released");
23    delay(20);                         // kontak sıçraması / contact bounce
24  }
25}

O Nano ESP32, por outro lado, é um mundo completamente diferente no mesmo tamanho de placa: o processador ESP32-S3 do módulo u-blox NORA-W106 funciona a 240 MHz e oferece Wi-Fi e Bluetooth LE. A diferença mais importante é a tensão: todos os pinos trabalham em 3,3 V e não toleram 5 V, então um sensor com saída de 5 V que você ligaria direto em um Nano clássico pode danificar o Nano ESP32. Onde o Nano clássico tem o pino 5V, há um pino VBUS, que só fornece 5 V enquanto a placa está alimentada pela USB; alimentada pelo VIN, esse pino fica morto. No lugar do AREF e do pino RST do lado analógico, você encontra BOOT0 e BOOT1. A placa é programada com o pacote Arduino ESP32 Boards, e o menu Ferramentas > Pin Numbering tem duas opções: na configuração padrão By Arduino pin, valem os nomes D e A impressos na placa, enquanto em By GPIO number os números são os números de GPIO do ESP32. Por exemplo, o D2 na verdade é o GPIO5; no modo GPIO, escrever pinMode(2, OUTPUT) configura o pino A1. Se você sempre escrever os pinos pelo nome, como D2 e A0, o seu código funciona corretamente nos dois modos.

C++ (Arduino IDE)
1// Nano ESP32: Araçlar > Pin Numbering > By Arduino pin (default)
2// Nano ESP32: Tools > Pin Numbering > By Arduino pin (default)
3bool ledOn = false;
4
5void setup() {
6  Serial.begin(115200);                // USB-C üzerinden / over USB-C
7  pinMode(LED_BUILTIN, OUTPUT);        // D13 = GPIO48
8  pinMode(LED_RED, OUTPUT);
9  pinMode(LED_GREEN, OUTPUT);
10  pinMode(LED_BLUE, OUTPUT);
11  digitalWrite(LED_RED, HIGH);         // RGB LED ters mantık: HIGH = sönük / active low: HIGH = off
12  digitalWrite(LED_GREEN, HIGH);
13  digitalWrite(LED_BLUE, HIGH);
14  analogReadResolution(12);            // 0-4095 arası / range 0-4095
15}
16
17void loop() {
18  int raw = analogRead(A0);            // 12 bit ham değer / 12-bit raw value
19  int mv = analogReadMilliVolts(A0);   // kalibre edilmiş milivolt / calibrated millivolts
20  Serial.printf("A0: %d  (%d mV)\n", raw, mv);
21  digitalWrite(LED_GREEN, mv > 1650 ? LOW : HIGH);   // 1,65 V üstünde yeşil / green above 1.65 V
22  digitalWrite(LED_RED, mv > 1650 ? HIGH : LOW);     // altında kırmızı / red below
23  ledOn = !ledOn;
24  digitalWrite(LED_BUILTIN, ledOn ? HIGH : LOW);     // D13 LED'ini yakıp söndür / blink the D13 LED
25  delay(500);
26}

As entradas analógicas do Nano ESP32 fazem leituras de 12 bits e retornam valores de 0 a 4095, enquanto o analogReadMilliVolts() usa os dados de calibração do chip para dar o resultado direto em milivolts. O LED RGB da placa funciona com lógica invertida, então acende quando você escreve LOW. Se o código não carregar e a placa sumir da lista de portas, você pode colocá-la no modo bootloader apertando o botão de reset duas vezes seguidas, rápido. Para conhecer o lado Wi-Fi do ESP32, veja O que é o ESP32? e, para decidir por uma placa, leia Arduino ou ESP32?. Entre os outros membros da família, o Nano R4 traz o mesmo processador Renesas RA4M1 de 48 MHz do Uno R4 para o formato Nano de 5 V, mas fornece só 8 mA por pino, enquanto o Nano 33 IoT e o Nano 33 BLE são placas de 3,3 V como o Nano ESP32.

Ideias de projetos com Arduino Nano

  • Termômetro de bolso: mostre a temperatura medida com um DHT11 em um pequeno display OLED de 0,96 polegada; o Nano e o display cabem em uma caixa de fósforos.
  • Mini carrinho robô: o tamanho pequeno do Nano economiza espaço no chassi; acione os motores com um L298N e siga os passos de Como fazer um carrinho robô.
  • Robô seguidor de linha: oito entradas analógicas são mais que suficientes para ler uma barra de cinco sensores; os detalhes estão em Robô seguidor de linha.
  • Controle por Bluetooth: ligue um módulo HC-05 no D8 e no D7 com SoftwareSerial e controle um LED ou um relé pelo celular; D0 e D1 ficam livres para carregar o código.
  • Luz vestível: faça uma luz para crachá ou mochila com um Nano alimentado por bateria e alguns LEDs WS2812B.
  • Um teclado em um pino: monte a escada de resistores acima tanto no A6 quanto no A7 para um menu de oito botões e guarde os pinos digitais para o display e os motores.
  • Quer um teclado USB? O ATmega328P do Nano clássico não tem USB embutida, então não consegue aparecer para um computador como teclado ou mouse; para isso, você precisa de placas com ATmega32U4, como o Leonardo e o Pro Micro.

Erros comuns e como resolvê-los

SintomaCausaSolução
O Nano não aparece na lista de portasCabo só de carga ou falta o driver do CH340Use um cabo de dados, instale o driver CH341SER; no Linux, remova o brltty
O carregamento para com um erro “not in sync”A placa tem o bootloader antigoFerramentas > Processador > ATmega328P (Old Bootloader)
Um botão no A6 ou no A7 não responde de jeito nenhumEsses pinos não têm digitalRead nem pull-up internoColoque um pull-up externo de 10 kΩ e use um limite com analogRead
Um botão no D13 sempre é lido como pressionadoO LED L e o resistor dele puxam o pino para baixoMude o botão para outro pino
Um módulo alimentado pelo 3V3 fica instável ou não funcionaO pino 3V3 fornece pouquíssima correnteUse um regulador de 3,3 V separado, alimentado pelo 5V
As leituras analógicas ficam alguns por cento altas demaisNa USB, o pino 5V fica em cerca de 4,7 VMeça o Vcc real ou alimente a placa pelo VIN
A placa esquenta muito com 12 V no VINO regulador dissipa (12 − 5) × corrente como calorColoque 7–9 V no VIN ou alimente o pino 5V com um módulo buck
Com um servo ligado, o LED no D9/D10 não muda de brilhoA biblioteca Servo usa o Timer1Mude o LED para o D3, D5, D6 ou D11
Antes de começar um projeto com Nano, anote um plano de pinos: primeiro posicione as peças que precisam de I2C (A4/A5), SPI (D10–D13), interrupções (D2/D3) e PWM, distribua os sensores analógicos em A0–A3 e A6–A7, coloque os botões nos pinos digitais que sobrarem e deixe D0 e D1 por último. Se a placa reiniciar inesperadamente, os passos de solução de problemas de Arduino reiniciando sozinho vão ajudar.

O Arduino Nano é o jeito mais fácil de levar tudo o que você aprendeu no Uno para projetos pequenos e permanentes; desde que você conheça as diferenças em torno de A6/A7, do 3V3 e do bootloader, não vai haver surpresas. Se quiser voltar ao básico, comece por O que é Arduino?. No app BlueGrays você encontra projetos passo a passo, com esquemas do circuito e código pronto, para piscar um LED, LED com botão, medir luz com LDR, distância com HC-SR04, temperatura e umidade com DHT11, LED RGB, servo com potenciômetro e comunicação serial entre dois Arduinos; todos funcionam no Nano com os mesmos números de pino.

Perguntas frequentes

Quantos pinos tem um Arduino Nano?

O Arduino Nano clássico tem 30 pinos em duas fileiras. 14 deles são entradas/saídas digitais (D0–D13), 8 são entradas analógicas (A0–A7) e o resto são os pinos VIN, 5V, 3V3, AREF, dois GND e dois RST. Como A0–A5 também podem ser usados como pinos digitais, você tem 20 pinos digitais; A6 e A7 só conseguem ler valores analógicos.

Quais pinos do Arduino Nano são PWM?

Os pinos PWM são D3, D5, D6, D9, D10 e D11; na placa ou nos diagramas de pinagem, eles são marcados com um ~ ao lado do número. D5 e D6 funcionam a cerca de 980 Hz, os outros a cerca de 490 Hz. A biblioteca Servo afeta o PWM no D9 e no D10, e a função tone() afeta o D3 e o D11.

A6 e A7 do Arduino Nano podem ser usados como pinos digitais?

Não. A6 e A7 são dois canais do ATmega328P ligados só ao conversor analógico-digital; pinMode, digitalRead, digitalWrite e o pull-up interno não funcionam nesses pinos. Para ler um botão, coloque um resistor de pull-up externo de 10 kΩ e compare o valor do analogRead() com um limite. Já no Nano Every e no Nano ESP32, A6 e A7 também podem ser usados como pinos digitais.

Que tensão posso usar para alimentar um Arduino Nano?

Você pode alimentar o Nano pela USB, com 7–12 V no pino VIN ou com 5 V regulados no pino 5V. O regulador AMS1117 das placas clone pode falhar acima de 15 V e esquenta rápido mesmo com 12 V, então 7–9 V é o ideal para o VIN. Nunca coloque mais de 5 V no pino 5V.

O que significa Old Bootloader no Arduino Nano?

Em 2018, o Arduino trocou o bootloader do Nano pelo Optiboot, menor e mais rápido; o bootloader novo se comunica a 115200 baud e o antigo a 57600 baud. A maioria dos Nanos clone do mercado ainda tem o bootloader antigo, então, a menos que você selecione ATmega328P (Old Bootloader) em Ferramentas > Processador, o carregamento para com um erro not in sync. Escolher a opção errada não faz mal à placa, então você pode simplesmente testar as duas.

Qual é a diferença entre o Arduino Nano e o Uno?

Os dois usam um ATmega328P de 16 MHz, então os números dos pinos, os pinos PWM, as linhas I2C (A4/A5) e SPI (D10–D13) e o código são os mesmos. O Nano é menor, encaixa na protoboard e tem duas entradas analógicas extras (A6, A7), mas não tem conector DC nem barras para shields. O Nano também usa mini USB e o IDE dá a ele 30.720 bytes para o código, enquanto o limite do Uno é de 32.256 bytes.

Ver todos os projetos
LED piscante
#1Iniciante

LED piscante

O primeiro contato com a eletrônica: acender e apagar um único LED. O Arduino acende e apaga o LED em intervalos curtos, fazendo a luz piscar rapidamente. Você vê da forma mais simples como a placa co

4.6(188)
1127
Controle de LED com botão (momentâneo)
#9Iniciante

Controle de LED com botão (momentâneo)

É como uma campainha: a luz fica acesa enquanto você pressiona o botão e apaga quando você solta. O Arduino monitora o botão continuamente; enquanto ele está pressionado, o LED fica aceso e apaga assi

4.8(113)
229
Medição da intensidade da luz com LDR
#11Iniciante

Medição da intensidade da luz com LDR

Quer ver a luminosidade do seu quarto em números? O LDR, um pequeno componente sensível à luz, mede a luz ambiente, e o Arduino exibe o valor na tela do computador a cada meio segundo. Cubra o sensor

4.6(81)
139
Medição de distância com HC-SR04 (Monitor Serial)
#27Iniciante

Medição de distância com HC-SR04 (Monitor Serial)

O sensor HC-SR04 funciona como um morcego que se orienta no escuro: emite um som que você não consegue ouvir, escuta o eco e mede a distância até o objeto à sua frente. O Arduino escreve essa distânci

4.6(46)
71
Temperatura e umidade com DHT11
#55Intermediário

Temperatura e umidade com DHT11

Qual é a temperatura do seu quarto? O ar está úmido ou seco? O sensor DHT11 mede a temperatura e a umidade, e o Arduino mostra os valores em um display LCD de duas linhas, atualizando a cada poucos se

4.7(47)
73
Uso de LED RGB
#39Iniciante
Premium

Uso de LED RGB

Três cores se escondem em um único LED: o LED RGB acende primeiro em vermelho, depois em verde e, por fim, em azul. Cada cor fica acesa por meio segundo e apagada por meio segundo antes de o ciclo rec

4.9(73)
98
Uso de servo motor com potenciômetro
#36Iniciante
Premium

Uso de servo motor com potenciômetro

Conforme você gira o botão do potenciômetro, o braço do servo motor gira junto: uma extremidade do botão corresponde a zero grau, e a outra, a meia volta. O Arduino lê continuamente a posição do botão

4.6(37)
52
Comunicação unidirecional entre 2 Arduinos
#57Intermediário
Premium

Comunicação unidirecional entre 2 Arduinos

Faça dois Arduinos conversarem por um único fio: ao pressionar o botão de um, o LED do outro acende; ao pressionar de novo, ele apaga. A placa transmissora informa que o botão foi pressionado com uma

4.4(37)
50