Tipos de Arduino

Guia Arduino Nano: Driver CH340 e Bootloader

Eletrogate 13 de abril de 2021

Introdução

Você gosta das funcionalidades do Arduino Uno, porém sente que ele pode ser grande demais para determinados projetos? Pois então, apresentaremos aos nossos leitores o Arduino Nano, uma placa Arduino com as mesmas especificações e funcionalidades do Uno, porém extremamente mais compacta. Iremos abordar também outras partes que compõem um Arduino, como o driver CH340 e o bootloader, essencial para o funcionamento do código. E aí, vamos nessa?


Arduino Uno vs Arduino Nano

A placa Arduino Nano é semelhante a uma placa Arduino UNO, incluindo um microcontrolador semelhante, como o Atmega328p. Assim, eles podem compartilhar um programa semelhante. A principal diferença entre os dois é o tamanho, já que a placa do Arduino Uno é praticamente o dobro da placa Nano. Portanto, as placas Uno ocupam mais espaço no sistema. A programação do UNO pode ser feita com um cabo USB enquanto que o Nano utiliza o cabo mini USB. As principais diferenças entre esses dois estão listadas na tabela a seguir.

Especificações Arduino Uno Arduino Nano
Processador ATMega328P ATMega328P
Tensão de Entrada 5V / 7 – 12V 5V / 7 – 12V
Velocidade do Processador 16 MHz 16 MHz
I/O Analógico 6/0 8/0
I/O PWM Digital 14/6 14/6
EEPROM/SRAM [kB] 1/2 1/2
Flash 32 32
USB Normal Mini
USTART 1 1

Características do Arduino Nano

  • Microcontrolador: ATmega328;
  • Conversor USB/Serial: CH340 – Tutorial aqui.;
  • Tensão de Operação: 5V;
  • Tensão de Entrada: 7-12V;
  • Portas Digitais: 14 (6 podem ser usadas como PWM);
  • Portas Analógicas: 8;
  • Corrente Pinos I/O: 40mA;
  • Memória Flash: 32KB (2KB usado no bootloader);
  • SRAM: 2KB;
  • EEPROM: 1KB;
  • Velocidade do Clock: 16MHz;
  • Dimensões: 45 x 18mm.

Driver CH340 e Bootloader

Bootloader

Todos os usuários de placas Arduino podem concordar que sua utilização é bastante simples, já que ela roda projetos com uma grande facilidade. Para isso, basta carregar o código do blink e clicar em upload. Em questão de segundos, o LED do Arduino pisca com muita segurança. Mas você já parou para pensar como o Arduino recebe o código blink? Através do bootloader do Arduino. Todo Arduino tem um bootloader, um pequeno programa que sempre fica armazenado em seu interior para atualizar o código implementado. Ele só é executado uma vez por reinicialização, sempre procurando um novo código a ser carregado no Arduino antes de iniciar o código existente.

O bootloader funciona assim:

Começando pela parte do PC, para acionar um reset no pino RESET, o PC (avrdude.exe ou GNU / Linux equivalente) abre a porta serial para o Arduino quando o upload é feito e o código está pronto para ser carregado. Isso faz com que a linha Data Transmit Ready (DTR) do chip USB / TTL fique LOW. A placa Arduino tem um circuito de carregamento de capacitor que usa este sinal LOW (carregando o capacitor) para puxar momentaneamente para baixo a linha RESET do chip ATMEGA328P antes de retorná-lo para HIGH (carregamento do capacitor concluído). Portanto, o Arduino reinicia cada vez que sua porta serial é aberta.

Após a reinicialização, o Arduino entra no bootloader.

O bootloader examina a fonte que causou a reinicialização. Existem várias fontes que podem causar uma reinicialização. Se a reinicialização foi causada pelo pino RESET, ele aguardará um segundo para que o PC envie os comandos. Ao receber comandos válidos, ele começará a aceitar o novo código do Arduino no formato HEX e apagará o código existente para carregar um novo. Se não receber comandos válidos, ele atinge o tempo limite após um segundo e dispara uma redefinição do Watch Dog Timer (WDT).

Assim que o bootloader for executado novamente, ele examinará a origem da reinicialização. Depois de determinar que foi a redefinição do WDT, ele pula imediatamente para a primeira linha do código real. Dessa forma, se você ligar o Arduino, ele será capaz de executar seu código imediatamente, em vez de esperar no bootloader para atingir o tempo limite de 1 segundo. É muito inteligente!

Driver CH340

CH340 é um conversor TTL (serial) para USB e vice-versa. Este chip tem sido usado em algumas placas como Arduino, ESP8266, etc. As placas que usam o chip CH340 não precisam de um programador para acessar o processador ou para programá-las. Este driver pode ser encontrado na parte de baixo do Arduino Nano, por exemplo.


Pinout do Arduino Nano

Fonte: Arduino


Como Fazer Montagens com o Arduino Nano

A montagem de um Arduino Nano é a mesma Uno, porém a ligação do arduino com o computador deve ser feita através de um cabo mini USB.

Outra característica do Arduino Nano é que um driver extra deve ser instalado antes de começar a trabalhar com estas placas. Se o leitor necessitar instalar este driver, basta conferir nosso tutorial clicando aqui.

A comunicação de uma placa Arduino Nano pode ser feita através de diferentes fontes, como uma placa Arduino adicional, um computador, ou até mesmo usando microcontroladores. O microcontrolador utilizado na placa Nano (ATmega328) oferece comunicação serial (UART TTL). Ela pode ser acessada através dos pinos digitais TX e RX. O software Arduino é composto por um monitor serial para permitir fácil transmissão e recepção de informações textuais da placa.

Os LEDs TX e RX na placa Nano piscarão sempre que as informações estiverem sendo enviadas pelo link FTDI e USB na direção do computador. O SoftwareSerial semelhante a uma biblioteca permite a comunicação serial em qualquer um dos pinos digitais da placa. O microcontrolador também suporta comunicação SPI e I2C (TWI).


Como Enviar Programas para o Arduino Nano

A programação de um Arduino Nano pode ser feita através do ambiente IDE. Clique na opção Ferramentas e selecione a placa nano, como demostrado abaixo. 

O microcontrolador ATmega328 sobre a placa Nano vem com um bootloader pré-programado. Este bootloader permite fazer upload de novos códigos sem usar um programador de hardware externo. A comunicação deste pode ser feita com o protocolo STK500. Aqui, o bootloader também pode ser evitado e o programa do microcontrolador pode ser feito usando o cabeçalho da programação serial no circuito ou ICSP com um ISP Arduino.


Programa Teste para o Arduino Nano

A maneira mais simples de testar um Arduino é usando o programa Blink (Piscar) dos exemplos da IDE do Arduino.  Dessa forma, se a placa estiver OK e se o programa for gravado corretamente, o LED embutido na placa ficará piscando na frequência de 1 Hertz (uma vez por segundo).

Copie o Sketch na Arduino IDE e depois clique no Botão CARREGAR. Após alguns segundos, o programa será gravado no Arduino. Verifique se o LED estará piscando corretamente.

Ou, se preferir, pode copiar o código abaixo:

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Considerações Finais

Espero que tenha gostado do post. O objetivo aqui foi apenas iniciar sua jornada de conhecimento sobre o Arduino Nano, porém há ainda muito a aprender. Confira nossos outros post no blog para ficar por dentro de tudo que o Arduino pode nos proporcionar.

Quer saber mais sobre outros tipos de Arduino? Confira os post abaixo e aprenda mais!

Avalie o post e deixe um comentário sobre seu interesse em Arduino e se esse artigo te ajudou a descobrir mais sobre essa plataforma.

Siga-nos também no Instagram para receber conteúdos diários sobre Arduino e eletrônica: @eletrogate.

Até mais!


Sobre o Autor


Ricardo Lousada
@ricardo_lousada

Graduando em Engenharia de Controle e Automação pela UFMG. Ocupo meu tempo aprendendo cada vez mais sobre eletrônica e programação, áreas que mais gosto. Meus hobbies são cinema e livros.


Eletrogate

13 de abril de 2021

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Assine nossa newsletter e
receba  10% OFF  na sua
primeira compra!