top of page

Arduino é uma plataforma de prototipagem baseada em um microcontrolador (Figura MD1) de placa única, com suporte de entrada/saída embutido (embarcado), projetado para que o processo de utilização da eletrônica seja mais acessível. O hardware consiste em um dispositivo desenvolvido pela empresa Atmel Corporation projetado para um microcontrolador Atmel com possibilidade de comunicação diretamente com qualquer computador através de interfaces.

A empresa Atmel Corporation foi adquirida em 2016 pela empresa Microchip Technology Inc. A Microchip comercializa sistemas embarcados programáveis.

Arduino

microcontrolador

Figura MD1 - Microcontrolador

O Microcontrolador é um pequeno computador num único circuito integrado, contendo um núcleo de processador, memória para armazenar programas e periféricos programáveis de entrada e saída.

O Arduino é open source, isso significa que os usuários podem criar e modificar sua estrutura sem preocupação com questões de direitos autorais e nem de licenciamento, e com uma grande vantagem que é a facilidade de utilização.

O projeto Arduino foi idealizado por um grupo de cinco pesquisadores: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis, na cidade de Ivrea na Itália em 2005, no Interaction Design Institute (Instituto de Design e Interação), com o objetivo de utilizar em projetos escolares. A ideia era facilitar o trabalho dos designers e demais profissionais que desejavam incorporar recursos tecnológicos nos projetos, sem que eles tivessem conhecimentos de eletrônica e que seus custos fossem menores frente aos sistemas de prototipagem disponíveis na época.

No mercado existem diversos modelos de placas com diferentes configurações de memória interna, quantidade de portas, tamanhos e valores variados, como exemplo é possível citar as seguintes placas: Arduino UNO (Figura MD2), Arduino MEGA 2560 (Figura MD2), Arduino Leonardo, Arduino Due, Arduino Nano. Em geral, a escolha por uma determinada placa demanda da estrutura do projeto que será executado. As placas possuem: 

  • Microprocessador (responsável pelos cálculos e tomada de decisão);

  • Memória RAM (utilizada para guardar dados e instruções, volátil);

  • Memória flash (utilizada para guardar o Software, não volátil);

  • Temporizadores (timers);

  • Contadores;

  • Clock, etc.


Detalhes dos diversos modelos disponível em: 
https://www.arduino.cc/en/Main/Products


Para o desenvolvimento de nossos projetos utilizaremos o Arduino UNO e o Arduino MEGA 2560, esse último possui mais portas. O Arduino MEGA 2560 é o mais indicado para projetos maiores e mais complexos, sua placa permite controlar um maior número de dispositivos em comparação à placa UNO.

Figura MD2 - Placas Arduino

arduinoUno
arduinoMega

Arduino UNO

Arduino MEGA 2560

Clique na imagem para ampliar

O Arduino é a plataforma mais utilizada na área da Educação para o desenvolvimento de projetos de robótica. Os projetos desenvolvidos em Arduino podem melhorar a vida de muitas pessoas, como: sistemas para acessibilidades, seguranças, agricultura, pecuária, dentre outros.

A filosofia de fonte aberta da plataforma Arduino promove o surgimento de diversas comunidades na internet, que disponibilizam gratuitamente informações através de fóruns e materiais didáticos (livros, apostilas e vídeos) sobre a ferramenta, facilitando a pesquisa e promovendo discussões sobre os futuros projetos que serão implementados pelos usuários. Como exemplo: o website de divulgação do Arduino (https://www.arduino.cc/), um site com tutoriais (https://www.arduino.cc/) de diversos projetos e; e um fórum (http://playground.arduino.cc/) para sanar as dúvidas dos usuários.

As portas analógicas (Figura MD6) são usadas para ler valores de tensão contínua, com precisão, entre 0V e 5V. Diferente das portas digitais, as portas analógicas apenas leem valores de entrada e não enviam sinais de saída.

Características das Portas Analógicas:

  • Notação: As portas analógicas são representadas pela letra "A" seguida de um número (exemplo: A4).

  • Leitura de Valores: A leitura das portas analógicas resulta em valores que variam de 0 a 1023. Esta faixa representa a conversão de um sinal analógico para digital usando um conversor A/D (Analógico para Digital) com resolução de 10 bits (2^10 = 1024 valores).

    • 0: Representa uma tensão de 0V.

    • 1023: Representa uma tensão de 5V.

  • Uso Comum: As portas analógicas são frequentemente utilizadas para ler valores de sensores que fornecem uma saída analógica, como sensores de temperatura, luz, e potenciômetros.

Portas Analógicas

Figura MD6 - Portas Analógicas

portasAnalogicas

Clique na imagem para ampliar

Portas PWM

As portas PWM (Pulse Width Modulation ou Modulação por Largura de Pulso) se diferenciam das portas digitais, pois permitem trabalhar com uma escala de valores que vai de 0 a 255, representando uma variação de tensão entre 0V e 5V. Isso permite obter resultados analógicos utilizando portas digitais.

Características das Portas PWM:


Escala de Valores: As portas PWM trabalham com valores de 0 a 255, onde:

  • 0: Representa 0V.

  • 255: Representa 5V.

  • Modulação: A técnica PWM modula a largura do pulso do sinal digital para controlar a potência média entregue a um dispositivo.

  • Indicação nas Placas: Nas placas Arduino, as portas PWM são indicadas pelo carácter ‘~’ na frente de seu número.

Aplicações das Portas PWM:

  • Controle de Velocidade de Motores: Ajustando o valor PWM, é possível controlar a velocidade de motores DC.

  • Controle de Luminosidade dos LEDs: Modificando o valor PWM, pode-se variar a intensidade luminosa de LEDs.

  • Geração de Sinais Analógicos e de Áudio: Através da modulação do sinal, é possível gerar tons e formas de onda analógicas.​

Portas PWM na Placa Arduino Mega 2560:

A placa Arduino Mega 2560 possui 15 saídas PWM, distribuídas entre os seguintes pinos:

  • Pinos PWM: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 44, 45 e 46.​

Figura MD7 - Portas PWM

portasPWM

Clique na imagem para ampliar

Placa Arduino MEGA 2560

O Arduino MEGA 2560 possui as seguintes especificações:

  • Microcontrolador: ATmega2560;

  • Voltagem: 5V;

  • Entrada de Voltagem (recomendada): 7-12V;

  • Entrada de Voltagem (limite): 6-20V;

  • Portas Digitais: 54 (15 portas PWM);

  • Portas Analógicas: 16 (A0 até A15);

  • Memória Flash: 256KB (8KB usado no bootloader*);

  • SRAM: 8K (local das variáveis);

  • EEPROM: 4K (armazenar dados mesmo sem alimentação);

  • Velocidade de CLOCK: 16 MHhz;

  • Peso: 37g.

 Bootloader é nome dado ao gerenciador de inicialização do Arduino. Executado pelo microcontrolador após um Reset (Boot).
 

Figura MD3 - Placas MEGA em detalhes

MEGA2560

Clique na imagem para ampliar

Placa Arduino UNO

O Arduino UNO possui as seguintes especificações:

  • Microcontrolador: ATmega328;

  • Voltagem: 5V;

  • Entrada de Voltagem (recomendada): 7-12V;

  • Entrada de Voltagem (limite): 6-20V;

  • Portas Digitais: 14 (6 portas PWM);

  • Portas Analógicas: 6 (A0 até A5);

  • Memória Flash: 32KB (0,5KB usado no bootloader);

  • SRAM: 2K;

  • EEPROM: 1K;

  • Velocidade de CLOCK: 16 MHhz;

  • Peso: 25g.

Figura MD4 - Placas UNO em detalhes

unoEspecificacoes

Clique na imagem para ampliar

Quando conectado via USB (sigla de Universal Serial Bus, em português, Porta Universal), o circuito interno do Arduino é alimentado com uma tensão contínua de 5V. Esta porta, além da função de proporcionar energia, permite também a comunicação do Arduino com o computador. Assim, podemos enviar e receber dados entre o Arduino e o computador. Esta operação é possível com a instalação de um driver que emula uma porta serial através da porta USB.
 

Caso necessário, é possível alimentar a placa utilizando uma fonte externa ou uma bateria, com saída entre 7V e 12V contínua. Valores inferiores de alimentação podem causar instabilidade nos resultados de processamento do Arduino e valores superiores podem danificar a placa. A fonte pode ser conectada com um plug de 2,1 mm (centro positivo) no conector de alimentação.

A seguir são exibidos os conectores de alimentação (Figura MD5) para conexão de Shields e módulos na placa Arduino MEGA:

Alimentação do Arduino

Figura MD5 - Alimentação da Placa Mega

alimentacaoPlacas

Clique na imagem para ampliar

  • IOREF: Fornece uma tensão de referência para que Shields possam selecionar o tipo de interface apropriada. Dessa forma, Shields que funcionam com placas Arduino alimentadas com 3,3V podem se adaptar para serem utilizados em 5V e vice-versa.

  • RESET: Pino para ser utilizado para um reset (reinicialização) externo da placa Arduino. Conectando este pino ao GND reinicia o microcontrolador.

  • 3.3V: Fornece tensão de 3,3V para alimentação. Este pino pode ser utilizado para alimentar módulos e sensores que operam a 3,3V. A corrente máxima fornecida é limitada pelo regulador de bordo.

  • 5V: Fornece tensão de 5V para alimentação. Este pino é utilizado para alimentar módulos e componentes que necessitam de 5V. Ele recebe alimentação do regulador de bordo quando a placa é alimentada via USB ou através do conector de 2,1 mm.

  • GND: Pino Ground (terra). Estes pinos são usados para referenciar a tensão zero e são essenciais para completar o circuito elétrico. Todas as conexões de alimentação e comunicação devem compartilhar uma referência comum de GND.

  • VIN: Pino para alimentar a placa externamente. Este pino pode ser utilizado para fornecer uma tensão de entrada diretamente à placa. Essa tensão deve estar entre 7V e 12V, e será regulada internamente para os 5V necessários para a operação do microcontrolador. Este pino é especialmente útil se você estiver usando uma fonte de alimentação externa que não seja o plugue de 2,1 mm.

No Arduino existem dois tipos de portas: digitais (binárias e PWM) e analógicas. Cada porta tem uma finalidade específica.

Portas

As portas digitais são utilizadas para trabalhar com dois valores binários de tensão: 0V e 5V. Através destas portas podemos mandar e receber dados. Normalmente, nas placas Arduino, temos um total de 14 portas digitais, numeradas de 0 a 13. As portas 0 e 1 são dedicadas aos LEDs RX e TX, respectivamente - o LED TX acende quando há transmissão de dados e o RX acende quando há recepção de dados pela porta serial. Estas portas estão conectadas diretamente ao sistema de comunicação do Arduino.

Portas Digitais

Portas Digitais Específicas e Comunicação Serial:

  • Porta 0 (RX): Utilizada para recepção de dados. Conectada diretamente ao pino RX do sistema de comunicação serial.

  • Porta 1 (TX): Utilizada para transmissão de dados. Conectada diretamente ao pino TX do sistema de comunicação serial

Comunicação SPI:

Alguns pinos têm funções específicas para suportar a comunicação SPI (Serial Peripheral Interface), permitindo a comunicação com diversos componentes e a formação de redes:

  • Pino 10 (SS - Slave Select): Utilizado para selecionar o dispositivo com o qual o Arduino vai comunicar-se.

  • Pino 11 (MOSI - Master Out Slave In): Envia dados do mestre (Arduino) para o escravo (dispositivo SPI).

  • Pino 12 (MISO - Master In Slave Out): Recebe dados do escravo (dispositivo SPI) para o mestre (Arduino).

  • Pino 13 (SCK - Serial Clock): Fornece o sinal de relógio para sincronizar a comunicação entre o mestre e o escravo.

Principais Funções para Manipular as Portas Digitais:

DigitalRead(pino):

  • Descrição: Lê o valor de uma porta digital configurada como entrada.

  • Uso: Retorna HIGH (5V) ou LOW (0V) dependendo do estado do pino.

DigitalWrite(pino, estado):

  • Descrição: Atribui um valor (HIGH ou LOW) a uma porta digital configurada como saída.

  • Uso: Configura o pino para 5V (HIGH) ou 0V (LOW).​

Aplicações Comuns:

Leitura de Sensores Digitais: Usando digitalRead para verificar o estado de sensores binários (por exemplo, um botão).

Controle de Atuadores: Usando digitalWrite para ligar/desligar LEDs, relés, ou outros dispositivos.

Comunicação com Dispositivos SPI: Utilizando os pinos 10-13 para se comunicar com módulos SPI como sensores, displays e cartões SD.

Divisor de Tensão: Convertendo 5V para 3.3V

O divisor de tensão é um circuito simples que utiliza dois resistores para reduzir uma tensão de entrada para um valor menor. Esse método é útil quando precisamos alimentar dispositivos que operam com 3.3V, mas temos disponível uma fonte de 5V.

Fórmula do divisor de Tensão


A saída do divisor de tensão pode ser calculada com a seguinte fórmula:

  • Vin​ é a tensão de entrada (5V, no nosso caso).

  • Vout​ é a tensão de saída desejada (3.3V).

  • R1​ e R2​ são os resistores utilizados no circuito.

Escolhendo os Resistores

Para obter 3.3V a partir de 5V, podemos usar os seguintes valores de resistores:

  • R1​=1.8kΩ

  • R2​=3.3kΩ

Esquema do Circuito

divisortensao.png

Clique na imagem para ampliar

divisor-tensao.webp

Comunicação Serial

A comunicação com o Arduino é realizada através da comunicação serial. A porta USB (Universal Serial Bus) é utilizada tanto para fazer upload de dados para o Arduino quanto para enviar sinais e comandos. Essa comunicação serial é essencial para a interação entre o Arduino e o computador.

 Principais Funções da Comunicação Serial:

Serial.begin(velocidade):​

  • Descrição: Inicializa a Interface Serial.

  • Parâmetro: Velocidade - Taxa de transferência de dados (em bits por segundo). Como padrão utiliza-se o valor 9600.​
     

Serial.print("mensagem")

  • Descrição: Envia uma mensagem para o monitor serial. A mensagem pode ser uma string, um número ou o estado/valor de um componente.
     

Serial.available()

  • Descrição: Retorna o número de bytes disponíveis para leitura na porta serial. Permite identificar se há dados enviados ou recebidos.


Serial.read()

  • Descrição: Lê os dados disponíveis na porta serial. Retorna o próximo byte de dados recebidos.

  • Serial.flush()


Serial.flush()

  • Descrição: Esvazia o buffer de entrada da porta serial. Após a chamada a Serial.flush(), qualquer chamada a Serial.read() ou Serial.available() retornará apenas dados recebidos após essa chamada.

Biblioteca

Biblioteca são pequenos programas utilizados no desenvolvimento dos programas. Contém código e dados auxiliares para que esses programas possam executar os dispositivos eletrônicos.

A IDE do Arduino já possui algumas bibliotecas padrões para as funções mais básicas, mas caso queira utilizar alguma outra, utilize o comando "#include <Biblioteca.h>", onde a "Biblioteca" é o nome da biblioteca que você deseja utilizar.
Exemplo:

#Include <LiquidCrystal.h>

Para importar uma biblioteca externa, siga os seguintes passos na IDE do Arduino:

  • Vá até o menu Sketch.

  • Selecione Incluir Biblioteca.

  • Escolha a biblioteca desejada na lista ou selecione Gerenciar Bibliotecas... para abrir o Gerenciador de Bibliotecas, onde você pode procurar e instalar novas bibliotecas


Observação: Para importar uma biblioteca externa, utilize a opção “Sketch> Incluir Biblioteca".

bottom of page