Figura 1 – Placa Arduino UNO |
A placa Arduino UNO já está em sua terceira revisão e você pode baixar seu esquema elétrico da figura 2 no link: esquema elétrico do Arduino, ou até mesmo todos os arquivos do projeto para edição. Ela tem duas camadas apenas e várias características interessantes de projeto.
A seguir serão apresentadas as principais características do seu hardware.
Os componentes da placa arduino UNO são divididos em três blocos principais: processador USB, processador principal e alimentação. Todos eles serão explicados nas seções a seguir.
Figura 2.1 - Processador USB do Arduino UNO |
Ele é necessário, pois o processador principal do Arduino (ATmega328) não suporta conexão direta com uma porta USB. Dessa forma, o processador USB converte os dados da USB do PC para um sinal serial (UART), e este sim pode lido pelo processador principal. Podemos dizer então, que o processador USB funciona como um conversor USB-Serial. O processador utilizado para essa função é o ATmega16U2. Versões anteriores do Arduino, como Arduino Duemilanove, Diecimila, Nano, MEGA (anterior ao R3) e muitas outras placas similares, utilizam outro componente para essa função, o FT232 fabricado pela empresa FTDI. Porém, muitos usuários reclamaram que a troca do FT232 pelo ATmega16U2 ocasionou problemas de compatibilidade com Windows e MAC. Desta forma, ainda hoje, muitas placas "Arduino compatível" continuam utilizando os chips FTDI (como é o caso da nossa Base Boarduino). Vamos ver mais de perto como é feita a implementação do processador USB ATmega16U2. A figura 2.1 mostra o circuito com mais detalhes.
Figura 2.2 - Processador principal do Arduino UNO |
Outros modelos de Arduino utilizam processadores diferentes. Por exemplo, existem versões do Arduino Nano e Duemilanove que utilizam o ATmega168, que basicamente é um componente idêntico ao ATmega328, porém com menos memória. O Arduino MEGA 2560 utiliza o o ATmega2560, que possui mais pinos e mais memória do que o ATmega328. O Arduino Leonardo utiliza o processador ATmega32U4, que possui características semalhantes ao ATmega328, porém ele possui interface USB embutida, resultando em uma placa com apenas um processador (porém essa versão acabou não se tornando muito popular). Por fim, existem ainda versões de Arduino que utlilizam processadores ARM, como é o caso do Arduino DUE (AT91SAM3X8E), e ainda outras plataformas como o Intel Galileo, que utiliza um processador Intel (Intel® Quark SoC X1000).
O ATmega328 é o "cérebro" do Arduino UNO e, resumidamente, podemos dizer que ele tem três funções:
- Recebe, envia e interpreta os sinais da serial que vêm do processador USB ATmega16U2.
- Executa o software que está programado nele.
- Interage diretamente com os shields e elementos externos, realizando acionamento de dispositivos e leitura de sensores. A figura 2.2 mostra o bloco do processador principal.
Figura 2.3 - Alimentação do Arduino UNO |
Outra dificuldade que normalmente ocorre na análise do funcionamento do Arduino, é a dificuldade de se localizar um componente específico na placa, já que a mesma não possui impressa a identificação de todos eles. Apenas os LEDs, conectores e botão de reset têm identificação. Resistores, capacitores, chips e demais componentes não são identificados.
Figura 3 - Identificação de componentes do Arduino UNO |
A placa pode ser alimentada pela conexão USB ou por uma fonte de alimentação externa, conforme exibido na figura 4.
O circuito regulador para entrada externa é exibido a seguir. Nota-se que o CI responsável pela regulação de tensão é o NCP1117, da OnSemi. Destaque para o diodo D1 que protege o circuito caso uma fonte com tensão invertida for ligada.
Quando o cabo USB é plugado a um PC por exemplo, a tensão não precisa ser estabilizada pelo regulador de tensão. Dessa forma a placa é alimentada diretamente pela USB. O circuito da USB apresenta alguns componentes que protegem a porta USB do computador em caso de alguma anormalidade.
Figura 4 – Alimentação da placa Arduino UNO |
Além dos recursos apresentados anteriormente, a placa conta com um circuito pra comutar a alimentação automaticamente entre a tensão da USB e a tensão da fonte externa. Esse circuito está apresentado na figura abaixo. Caso haja uma tensão no conector DC e a USB é conectada, a tensão de 5V será proveniente da fonte externa e USB servirá apenas para comunicação com o PC.
Figura 5 – Conectores de alimentação Arduino UNO R3 |
Na figura 5 são exibidos os conectores de alimentação para conexão de shields e módulos na placa Arduino UNO.
- IOREF – Fornece uma tensão de referência para que shields possam selecionar o tipo de interface apropriada, dessa forma shields que funcionam com a placas Arduino que são alimentadas com 3,3V. podem se adaptar para ser utilizados em 5V. e vice-versa.
- RESET – pino conectado a pino de RESET do microcontrolador. Pode ser utilizado para um reset externo da placa Arduino.
- 3,3 V. – Fornece tensão de 3,3V. para alimentação de shield e módulos externos. Corrente máxima de 50 mA.
- 5 V – Fornece tensão de 5 V para alimentação de shields e circuitos externos.
- GND – pinos de referência, terra.
- VIN – pino para alimentar a placa através de shield ou bateria externa. Quando a placa é alimentada através do conector Jack, a tensão da fonte estará nesse pino.
Comunicação USB da Placa Arduino UNO
Figura 6 – Conversor USB-serial com ATmega16u |
Este microcontrolador é o responsável pela forma transparente como funciona a placa Arduino UNO, possibilitando o upload do código binário gerado após a compilação do programa feito pelo usuário. Possui um conector ICSP para gravação de firmware através de um programador ATMEL, para atualizações futuras.
Nesse microcontrolador também estão conectados dois leds (TX, RX), controlados pelo software do microcontrolador, que indicam o envio e recepção de dados da placa para o computador. Esse microcontrolador possui um cristal externo de 16 MHz. É interessante notar a conexão entre este microcontrolador com o ATMEL ATMEGA328, onde é feita pelo canal serial desses microcontroladores. Outro ponto interessante que facilita o uso da placa Arduino é a conexão do pino 13 do ATMEGA16U2 ao circuito de RESET do ATMEGA328, possibilitando a entrada no modo bootloader automaticamente quando é pressionado o botão Upload na IDE. Essa características não acontecia nas primeiras placas Arduino, onde era necessário pressionar o botão de RESET antes de fazer o Upload na IDE.
Microcontrolador ATMEL ATMEGA328
Figura 7 – Pinagem ATmega328 usado no Arduino UNO |
Possui 28 pinos, sendo que 23 desses podem ser utilizados como I/O . A imagem da figua 6 exibe a sua pinagem.
Esse microcontrolador pode operar com tensões bem baixas, de até 1,8 V., mas nessa tensão apenas opera até 4MHz. Possui dois modos de consumo super baixos, o Power-down Mode e o Power-save Mode, para que o sistema possa poupar energia em situações de espera. Possui, como periféricos uma USART que funciona a até 250kbps, uma SPI, que vai a até 5MHz, e uma I2C que pode operar até 400kHz. Conta com um comparador analógico interno ao CI e diversos timers, além de 6 PWMs. A corrente máxima por pino é de 40mA, mas a soma da corrente de todo o CI não pode ultrapassar 200mA. Ele possui um oscilador interno de 32kHz que pode ser utilizado, por exemplo, em situações de baixo consumo.
Entradas e saídas do Arduino
Figura 8 – Pinos de entrada e saída no Arduino UNO R3 |
Conforme exibido na figura 7, a placa Arduino UNO possui 14 pinos que podem ser usados como entrada ou saída digitais. Estes Pinos operam em 5 V, onde cada pino pode fornecer ou receber uma corrente máxima de 40 mA. Cada pino possui resistor de pull-up interno que pode ser habilitado por software. Alguns desse pinos possuem funções especiais:
- PWM : 3,5,6,9,10 e 11 podem ser usados como saídas PWM de 8 bits através da função analogWrite();
- Comunicação serial: 0 e 1 podem ser utilizados para comunicação serial. Deve-se observar que estes pinos são ligados ao microcontrolador responsável pela comunicação USB com o PC;
- Interrupção externa: 2 e 3 . Estes pinos podem ser configurados para gera uma interrupção externa, através da função attachInterrupt().
Figura 9 – Dimensões da Arduino UNO |
Para interface com o mundo analógico, a placa Arduino UNO possui 6 entradas, onde cada uma tem a resolução de 10 bits. Por padrão a referencia do conversor AD está ligada internamente a a 5V, ou seja, quando a entrada estiver com 5V o valor da conversão analógica digital será 1023. O valor da referência pode ser mudado através do pino AREF. A figura 6 exibe a relação entre os pinos do microcontrolador ATMEL ATMEGA328 e a pinagem do Arduino UNO.
Quem manipula a placa e projeta o circuito que será conectado aos seus I/Os deve ter muito cuidado pois, entre os pinos do microcontrolador e a barra de pinos, não há nenhum resistor, que limite a corrente, além disso, dependendo do local onde está trabalhando pode-se provocar curto circuito nos pinos já que a placa não possui isolação na sua parte inferior.
Figura 10 – Donwload IDE Arduino |
A placa Arduino UNO possui pequenas dimensões cabendo na palma da mão. Possui 4 furos para que a mesma possa ser fixada em alguma superfície. A figura a seguir exibe as suas dimensões físicas.
Programação da placa
Figura 10.1 – Configuração da placa Arduino UNO |
A programação do microcontrolador também pode ser feita através do conector ICSP (in – circuit serial programming) utilzando um programador ATMEL.
Normalmente usamos para programação do Arduino uma IDE (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado) é um programa de computador que possui as ferramentas necessárias para desenvolvimento de software. Basicamente possui um editor de código fonte e compilador.
Figura 10.2 – Configuração da porta USB COM4 no Arduino UNO |
A versão da IDE ARDUINO_1.8.13_2020.06.16 para Windows está disponível para download em: ARDUINO_1.8.13_2020.06.16 .
Após descompactar e instalar, deve-se criar uma atalho na área de trabalho. Abra a IDE Arduino pelo atalho criado na sua área de trabalho.
Figura 10.3 – Verificação de erros de programação no Arduino UNO |
Então clique no botão de compilação. Isso irá verificar se existe algum erro no código e gerar o arquivo de programa necessário para carregar na placa, conforme figura 10.3.
Figura 10.3 – Gravação de programação no Arduino UNO |
Caso não apareça nenhum erro, você deverá ver o resultado de sua programação na placa arduino UNO.
Conclusão
Figura 11 – Resumo de recursos da Arduino |
Nenhum comentário:
Postar um comentário