Até 2012, a Arduino havia lançado somente placas de desenvolvimento baseadas em microcontroladores de 8 bits. Entretanto, no dia 22 de outubro deste ano, entrou para o mercado o Arduino Due. Controlado por um Atmel SAM3X8E, este é o primeiro Arduino a integrar a tecnologia ARM de 32 bits. Com tamanho muito próximo ao do Arduino Mega, a placa tem poder de processamento muito superior ao de seus descendentes. Neste post, veremos as principais características da placa e faremos sua primeira programação.
Descrição e Funcionamento
O que a placa integra?
O item central da placa é seu microcontrolador, o SAM3X8E, com core CORTEX-m3 e 144 pinos no encapsulamento LQFP. Possui memória flash com 512 KB para memória não volátil e SRAM de 96 KB para dados voláteis. O uC opera em 3.3 V, mas a placa pode ser alimentada por tensões entre 7 e 12 V, devido a seu regulador.
Fonte na imagem
Reset button: botão para reiniciar a execução do programa;
I2C communication: pinos para comunicação I2C;
Voltage for ADC: tensão de referencia para leitura analógica;
Ground: pino de terra;
PWM Output: saída de PWM
32-bit ARM Microcontroller: microcontrolador SAM3X8E
Erase button: botão para apagar o programa gravado;
Serial communication: pinos para comunicação serial;
Digital I/O Pins: pinos digitais;
SPI communication: pinos SPI do chip principal
Analog Inputs: entradas analógicas;
Power Pins: pinos para alimentação;
ICSP for serial converter: pinos ICSP para o chip USB-Serial;
USB-Serial converter: conversor USB-Serial;
Standalone power: entrada para tensões 7 - 12 V;
Programming LED's: LED's indicadores para programação;
Programming USB port: porta USB para programação da placa (conectadas ao chip conversor);
Native USB LED's: LED's indicadores para a comunicação USB nativa;
Native USB Port: porta USB para comunicação USB nativa (conectadas ao chip principal).
Especificações:
Tensão de operação: 3.3 V;
Tensão de entrada: 7 a 12 V;
Quantidade de pinos digitais: 54;
Quantidade de entradas analógicas: 12;
Quantidade de saídas analógicas: 2;
Resolução das entradas e saídas analógicas: 12 bits;
Quantidade de saídas PWM: 12;
Resolução das saídas PWM: 12 bits;
Memória flash: 512 Kbytes;
Memória SRAM: 96 Kbytes;
Frequência de clock: 84 MHz;
Protocolos de comunicação: CAN, UART (4), I2C, SPI e USB.
SCL e SDA 0 e 1: portas para comunicação I2C (necessário resistor de pull-up externo nos pinos 1);
Pinos PWM: portas que podem ser utilizados para gerar onda quadrada com duty-cycle variavel;
TX0 e RX0: portas para comunicação serial direta com o chip conversor USB-serial;
TX e RX 1 a 3: portas para comunicação serial;
CANRX e CANTX: portas para comunicação CAN;
DAC0 e DAC1: saídas analógicas;
A0 a A11: entradas analógicas;
DEBUG (SWD): portas para depuração;
MISO, SCK, RESET, GND, MOSI e 5V: portas para comunicação SPI.
Primeiro Programa
Preparando a IDE:
Quando baixada, a Arduino IDE não possui o recurso de programação em placas ARM. É simples, no entanto, habilitar essa opção: basta acessar o gerenciador de placas, pesquisar por "Due" e instalar o pacote "Arduino SAM Boards (32-bits ARM Cortex-M3).
LED blink
Nosso primeiro programa para a placa Due será o "blink", encontrado em Arquivo -> Exemplos -> 01.Basic -> Blink. Quando programada, a placa piscará o LED "L", como mostra o vídeo a seguir:
Entrada e Saída Analógica
Materiais necessários para o projeto com Entradas e Saídas Analógicas
void setup() {
analogReadResolution(12); // altera a resolução das entradas analógicas, que por padrão é de 10 bits (por compatibilidade com as demais placas), para 12 bits
analogWriteResolution(12); // define a resolução da saída analógica como 12 bits
}
void loop() {
analogWrite(DAC0, analogRead(A0)); // espelha a leitura analógica na saída DAC0
}
O vídeo a seguir mostra que a amplitude da saída analógica é menor do que a da entrada: 0.54 a 2.76 V. Isso decorre das limitações inerentes aos semicondutores utilizados no controle da saída de tensão.
ATENÇÃO: NÃO APLIQUE TENSÕES SUPERIORES A 3.3 V NAS ENTRADAS ANALÓGICAS DA PLACA
Considerações Finais
Placas com processadores de 32-bits são muito poderosas e eficientes. Para começar, é importante dar atenção aos códigos mais simples. Com a prática, no entanto, é possível explorar seus recursos para aplicações de alto nível, que superam os limites dos microcontroladores de 8 bits.
Espero que este post sirva para esclarecer os primeiros passos com a placa e instigar a curiosidade sobre ela. Obrigado pela leitura!
Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!
Sobre o autor
Eduardo Henrique
Formado técnico em mecatrônica no CEFET-MG, atualmente estuda Engenharia de Controle e Automação na UFMG.
Até 2012, a Arduino havia lançado somente placas de desenvolvimento baseadas em microcontroladores de 8 bits. Entretanto, no dia 22 de outubro deste ano, entrou para o mercado o Arduino Due. Controlado por um Atmel SAM3X8E, este é o primeiro Arduino a integrar a tecnologia ARM de 32 bits. Com tamanho muito próximo ao do Arduino Mega, a placa tem poder de processamento muito superior ao de seus descendentes. Neste post, veremos as principais características da placa e faremos sua primeira programação.
Precisa dos componentes para este projeto?
Encontre tudo na Loja Eletrogate com frete grátis para compras acima de R$ 200