Arduino Due – o Arduino com processador ARM de 32 bits

Arduino Due – o Arduino com processador ARM de 32 bits

O Arduino Due é a primeira placa da família Arduino baseada em um microcontrolador arm de 32 bits, o Atmel SAM3X8E ARM Cortex-M3. Isso faz do Arduino Due uma das placas mais rápidas da família Arduino, ideal para quem precisa de agilidade e alto poder de processamento.

Arduino Due

Além do excelente processador, essa placa conta também com :

  •  Clock de 84 Mhz
  •  54 entradas/saídas digitais, das quais 12 podem ser usadas como saída PWM
  •  12 entradas analógicas
  •  4 UARTS (interfaces seriais)
  •  512 Kb de memória
  •  Botão de reset
  •  Botão “erase”, que elimina o programa presente na memória da placa
  •  2 TWI (Two Wire interface / Interface de 2 fios), que nada mais é do que a interface I2C

As especificações completas dessa placa você encontra na página oficial do produto, em arduino.cc/en/Main/arduinoBoardDue

O Arduino Due exige atenção especial em alguns itens. O primeiro e principal é o nível de tensão dos pinos de I/O (entrada/saída). Esta placa trabalha com níveis de sinal de 3.3v, ao contrário dos principais módulos do mercado, que utilizam 5v.

Isso significa que você não pode usar os seus módulos de 5v no Arduino ? Não diretamente, pois isso provavelmente irá danificar o Arduino Due. Uma alternativa é o uso de um Regulador de Tensão LM2596, que converte o sinal de 5v da saída do módulo, para os 3.3v aceitos pelo Arduino Due.

Outra diferença, principalmente se você trabalha com as placas mais comuns do mercado, como o Arduino Uno e o Arduino Mega, é a IDE (ambiente de programação) do Arduino. O Arduino Due só irá funcionar com a versão 1.5.6-r2 (ou posterior, quando disponível), da IDE. Isso não é um problema, pois essa versão também funciona com as outras placas do Arduino, logo você não irá precisar de duas IDE´s na sua máquina.

A instalação da IDE 1.5.6-r2 segue o padrão de outras IDE do Arduino. Acesse a página de downloads do site oficial do Arduino em http://arduino.cc/en/Main/Software. Procure a seção mostrada abaixo , e clique em Windows (ZIP File), conforme indicado :

Download IDE 1.5.6

O download pode demorar um pouco, dependendo da sua conexão de internet (o tamanho do arquivo é 133 Mb). Abra o arquivo ZIP e extraia a pasta arduino-1.5.6-r2 para o local de sua preferência.

Dentro dessa pasta, execute o arquivo Arduino.exe, que irá carregar a IDE pronta para usar. Não há necessidade de instalação.

A interface dessa versão da IDE é praticamente igual às versões anteriores. Mas observe que agora, clicando em Ferramentas => Placas, temos agora a opção de utilizar a Arduino DUE :

IDE Arduino Due

Temos 2 opçôes de conexão : Arduino Due (Programming Port) (conector inferior do Arduino Due), e Arduino Due (Native USB Port) (conector superior).

Nos nossos testes, vamos usar o Arduino Due ligado ao computador usando a opção Arduino Due (Programming Port), com o cabo micro USB  ligado à porta inferior :

Arduino Due - Detalhe Conectores

Ao ligar o Arduino Due ao computador, não foi preciso baixar nenhum driver da internet. A placa foi reconhecida automaticamente, e a porta serial detectada foi a porta 16 :

Arduino Due - Device Manager

O funcionamento é o mesmo das outras placas Arduino, inclusive esta placa também tem o famoso led ligado à porta 13, que você pode testar com esse programa :

//Programa : Teste Arduino Due
//Autor : FILIPEFLOP

void setup() 
{
  pinMode(13, OUTPUT);
}

void loop() 
{
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

Como comentamos anteriormente, o nível de tensão das portas digitais é de 3.3v. Isso faz com tenhamos que utilizar, no Arduino Due, módulos que trabalhem com nível de sinal de 3.3v, como por exemplo o módulo Bluetooth JY-MCU, do qual falamos no post Como usar o Arduino Bluetooth HC-05.

Podemos ligar diretamente esse módulo bluetooth ao Arduino Due, sem a necessidade de utilizar divisores de tensão, como no circuito abaixo, onde vamos utilizar o Arduino Due juntamente com um botão tipo push-button, e enviar dados para um celular com Android e o aplicativo Bluetooth SPP :

Montagem Arduino Due Bluetooth

Vejam que ligamos os pinos de alimentação do módulo bluetooth normalmente, no Vcc 5v e GND do Arduino. O push-button, por sua vez, tem um resistor pull-up ligado aos 3.3v do Arduino (Fio Verde), justamente porque o nível de sinal da portas, no Arduino Due, é de 3.3v.

LEMBRE-SE ! Não ligue diretamente módulos com nível de sinal de 5v às portas do Arduino Due. Siga rigorosamente as intruções e evite danos ao seu Arduino.

Após a montagem do circuito, carregue o seguinte programa no Arduino Due :

//Programa : Arduino Due e modulo Bluetooth 
//Autor : FILIPEFLOP

int leitura;
int contador;

void setup()
{
  Serial.begin(9600);
  //Pino ligado ao push-button
  pinMode(5,INPUT);
}
  
void loop()
{
  leitura = digitalRead(5);
  if (leitura != 1)
  {
    while(digitalRead(5) != 1)
    {
      delay(100);
    }
    contador = contador++;
    Serial.print("Contador : ");
    Serial.println(contador);
    } 
}

Agora, carregue no seu celular o aplicativo Bluetooth SPP, que pode ser baixado nesse link.

Na tela principal do aplicativo, pressione a tecla MENU  do seu celular,  depois em Connected:

Bluetooth SPP - Tela Principal

Clique sobre o dispositivo bluetooth desejado, que deve ter sido pareado previamente :

Bluetooth SPP - Connect

Feita a conexão com o módulo Bluetooth, clique em  Real-time mode na próxima tela :

Bluetooth SPP - Conectado

O programa entrará em modo de envio e recebimento de mensagens. Acionando o push-button, um contador incremental enviará os dados, via serial, para o módulo BT, que por sua vez os enviará ao Bluetooth SPP :

Bluetooth SPP - Recebendo dados

Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota aos posts (estrelas no início ou no final do artigo) e visite nossa loja FILIPEFLOP !

7
Arduino Due – o Arduino com processador ARM de 32 bits
18 votos, 4.78 classificação média (95% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

13 Comentários

  1. Natan - 27 de julho de 2016

    Olá… Shield LCD funciona normalmente?

  2. Bruno Henrique - 16 de julho de 2016

    Para a conversão é melhor usar um buffer coletor aberto, 7407, alimentado com a menor das tensões. ai, para converter os níveis, basta alimentar o resistor de pull-up com a tensão desejada

  3. Roberto Carlos - 26 de junho de 2016

    Bom dia !
    Estou tentando compilar para a minha DUE um sketch Hello World com uma tela oled 0,96 SPI;
    Porém a minha versão 1.6.9 atualizada e com as library´s instaladas informa que existem “bibliotecas invalidas.
    Isso só esta acontecendo para a placa DUE.
    Alguém testou com 1.6.9 IDE? Alguma idéia?
    Só consegui gravar com a IDE 1.5.6 e 1.6.2 AutoComplete.

  4. Daniel Oliveira Barbosa - 13 de dezembro de 2015

    Prezados,

    Eu estou utilizando o arduino due juntamente com um HC-05. Verifiquei que não há a necessidade de utilizar resistores como nos demais arduinos e esse módulo, todavia ao realizar um programa simples, onde o usuário é capaz de ligar e desligar um led por comandos via smartphone o Led sempre permanece ligado. Utilizando o serial monitor do arduino é possível realizar os comandos porém quando utiliza-se o smartphone não há essa possibilidade.

    Há algo que estou fazendo errado? Ao medir as tensões do TX e RX do Arduino, ambas ficam com valor de 3.3V todo o tempo. Deveria eu utilizar um resistor de Pull Down na TX do Arduino? Pois dessa maneira ele garantirá 0V e no momento do sinal enviado terei a tensão desejada.

    Por gentileza, peço que solucionem minha dúvida.

    Desde já, agradeço.

    Atenciosamente,
    Daniel Oliveira Barbosa

  5. Eduardo - 28 de outubro de 2015

    Olá, o ARDUINO DUO É O MESMO DO ARDUINO DEVIDO? PERGUNTO POIS, vi uma matéria que diz o seguinte:

    Ao utilizar estas placas mais rápidas que nós gostamos de executar um teste de velocidade simples que calcula Newton de aproximação para pi usando uma série infinita, escrito por Steve Curd do fórum Arduino. Você pode baixar o esboço de tentar a sorte.

    Em testes anteriores, o Arduino Mega2560 completou o teste em 5765 ms, e o Arduino Devido esmagou-o em 690 ms. Como você pode ver abaixo do M0 Pro 1950 ms necessário para o teste:

    OBRIGADO

  6. Daniel - 30 de junho de 2015

    Como acionar 3 buzzer, 4 sensores de distância, 1 sensor de precença, 2 DHT22 com este arduino?
    Pergunto pois ele é 5x mais rápido do que o mega, mas 3.3v? :(

  7. David G - 25 de maio de 2015

    My Samsung S5 says its not compatible with your android app, is there any way to resolve this?

  8. joao - 20 de julho de 2014

    Ola amigo, gostaria de saber como faço para usar o regulador de tensao 5v-3,3v quando eu tenho varios shields 5v para ligar no due?
    Desde ja agradeco

    • Paulo Ferreira - 10 de agosto de 2014

      Os conversores de níveis lógicos mais comuns são bidirecionais e têm um lado Hi-Voltage e o lado oposto é o Low-Voltage. Um detalhe é que em geral eles são pequenos e têm duas seções para conversal de sinal e uma para alimentação. Cada seção de sinal tem dois sinais para serem convertidos – portanto quatro simais, no total. No meio tem a seção de alimentação: +5v no lado Hi e +3,3V no lado oposto da plaquinha. E o GND , tanto no lado HI, quanto no lado LOW. Há que se ter em conta a corrente . Veja exemplos de ligação no site bristolwatch.com onde o autor mostra a conexão entre o Arduino e um Raspberrypi ( que também utiliza 3,3 V)

    • Paulo Ferreira - 14 de agosto de 2014

      Uma solução melhor é o uso de CIs como o 74HC4050 que têm 6 pares de pinos para fazer a função de conversão de voltagem de sinal

Deixe uma resposta