O Arduino é uma plataforma de prototipagem baseada em um microcontrolador 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 originalmente com microcontroladores Atmel (empresa adquirida em 2016 pela Microchip Technology Inc), permitindo a comunicação direta com computadores através de interfaces simples.
O que é um 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 "cérebro" oculto dentro da placa Arduino.
Filosofia Open Source
O Arduino é open source. Isso significa que usuários podem criar e modificar sua estrutura sem preocupação com direitos autorais ou licenciamento. Idealizado em 2005 na Itália por Massimo Banzi e sua equipe, o objetivo era criar uma ferramenta de baixo custo para estudantes e designers.
Estrutura e Modelos
Embora existam diversos modelos (UNO, MEGA, Leonardo, Nano, Due), todos compartilham componentes essenciais:
- Microprocessador: Responsável pelos cálculos e decisões.
- Memória RAM: Armazena dados temporários (volátil).
- Memória Flash: Onde o seu código fica gravado (não volátil).
- Clock: Define a velocidade de operação.
Arduino UNO
- Microcontrolador: ATmega328
- Voltagem de Operação: 5V
- Entrada (recomendada): 7-12V
- Entrada (limite): 6-20V
- Portas Digitais: 14 (6 portas PWM)
- Portas Analógicas: 6 (A0 até A5)
- Memória Flash: 32KB (0,5KB p/ bootloader)
- SRAM: 2K (local das variáveis)
- EEPROM: 1K (dados não voláteis)
- Velocidade de CLOCK: 16 MHz
- Peso: 25g
Arduino MEGA 2560
- Microcontrolador: ATmega2560
- Voltagem de Operação: 5V
- Entrada (recomendada): 7-12V
- Entrada (limite): 6-20V
- Portas Digitais: 54 (15 portas PWM)
- Portas Analógicas: 16 (A0 até A15)
- Memória Flash: 256KB (8KB p/ bootloader)
- SRAM: 8K (variáveis)
- EEPROM: 4K (dados não voláteis)
- Clock: 16 MHz
- Peso: 37g
Alimentação (Power)
Via USB (5V) ou fonte externa (7V a 12V). Tensões abaixo de 7V podem causar instabilidade, e acima de 12V podem danificar o regulador de tensão.
VIN: Entrada direta para bateria/fonte externa.
5V / 3.3V: Saídas de tensão para alimentar sensores.
GND: O referencial zero (Terra) do circuito.
Conectores de Alimentação (Power)
IOREF (Referência)
Fornece a tensão de referência (ex: 5V) para que Shields se adaptem automaticamente à voltagem da placa.
RESET
Reinicia o microcontrolador quando este pino é conectado ao GND (Terra).
3.3V (Saída)
Fornece tensão regulada de 3,3V para alimentar sensores de baixa tensão. (Corrente limitada).
5V (Saída)
Saída principal de 5V regulada. Alimenta a maioria dos componentes. A fonte vem do USB ou do regulador interno.
GND (Terra)
Referência de 0V. Essencial para fechar o circuito elétrico. Todos os GNDs devem ser interligados.
VIN (Entrada de Voltagem)
Pino para alimentação externa direta (pré-regulador). Aceita de 7V a 12V para operação estável.
Portas e Interfaces
No Arduino, as portas são os pontos de conexão com o mundo externo. Elas são divididas em duas categorias principais: Digitais (que incluem as binárias e PWM) e Analógicas.
Portas Digitais (0 a 13)
Trabalham com dois estados de tensão: 0V (LOW) e 5V (HIGH). São usadas para enviar (saída) ou receber (entrada) dados binários.
Comunicação Serial
- Porta 0 (RX): Recepção de dados.
- Porta 1 (TX): Transmissão de dados.
- * Conectadas diretamente aos LEDs indicadores da placa.
Interface SPI
Pinos para comunicação com sensores complexos e cartões SD:
- Pino 10 (SS): Seleção do escravo.
- Pino 11 (MOSI): Saída de dados do Mestre.
- Pino 12 (MISO): Entrada de dados no Mestre.
- Pino 13 (SCK): Relógio de sincronização.
Manipulação via Código:
digitalRead(pino)
Lê o estado de uma entrada (Retorna HIGH ou LOW).
digitalWrite(pino, estado)
Define a saída como 5V (HIGH) ou 0V (LOW).
Portas Analógicas (A0 - A15)
Diferente das digitais, estas portas leem tensões variáveis entre 0V e 5V com alta precisão. Elas funcionam apenas como entrada.
- Resolução: 10 bits (conversor A/D).
- Escala Digital: Converte a tensão em valores de 0 a 1023.
- Exemplo: 0V = 0 | 5V = 1023 | 2.5V = 512.
- Aplicações: Potenciômetros, LDRs e Sensores de Temperatura.
Portas PWM (Modulação por Largura de Pulso)
Identificadas pelo sinal ~, estas portas digitais "simulam" sinais analógicos variando a potência média entregue.
Escala de Saída: Trabalha com valores de 0 a 255.
Aplicações: Brilho de LEDs, velocidade de motores DC e geração de áudio.
PWM no Arduino Mega 2560:
Possui 15 saídas PWM nos pinos: 2 a 13, 44, 45 e 46.
Divisor de Tensão: 5V para 3.3V
Necessário para sensores que não suportam 5V. Utilizamos a fórmula:
Exemplo: Para obter 3.3V a partir de 5V, podemos utilizar os seguintes resistores:
R1 = 1.8kΩ e R2 = 3.3kΩ.
Comunicação e Código
A interação com o PC ocorre via Serial:
Serial.begin(9600); // Inicia a comunicação
Serial.print("EuderTech"); // Envia texto ao monitor
Para expandir recursos, usamos bibliotecas:
#include <LiquidCrystal.h> // Exemplo para Display LCD