Arduino Due – o Arduino com processador ARM de 32 bits 32

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 : MakerHero

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 : MakerHero

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? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

32 Comentários

  1. Tenho um Shield Ethernet w5100
    que utilizo no Arduino Uno.
    Posso utilizar esse Shield Ethernet no Arduino Due ?

  2. E os pinos TX/RX do modulo bluetooth não precisam de conversão de 5 para 3,3v uma vez que o módulo está sendo alimentado com 5volts.

  3. olá, o shr. saberia me informar em que velocidade trabalha este módulo bluetooth. quero emplementar um projeto onde de uns 5 metros se comunique cm um leitor de pulsos ( encoder ) e mais 5 – 10 sensores ( emissor-receptor ) gerando pulsos aleatórios.
    será que se eu usar este sistema não terá dificuldade em perder os pulsos. nunca usei este sistema mas achei intereçante o emprego no projeto. tbm não preciso me preocupar cm as tensões dos sensores poisficariam remotos.

    1. Marcio,

      Aconselho você a levar essa ideia de projeto para o nosso fórum. Lá você descreve bem a sua ideia e a gente consegue te ajuda 🙂

      Abraços!
      Diogo – Equipe MakerHero

  4. Se não usar o resistor pull-up?

    1. Olá Carlos,

      Não usar o resistor pull-up pode fazer com que o circuito não funcione como o esperado.

      Abraço!
      Rosana – Equipe MakerHero

  5. Boa tarde!
    Quero comprar um Due, devido a velocidade de clock em relação ao Mega, mas com a limitação de nível de sinal de 3,3V, fiquei com as seguintes dúvidas:

    1° Pergunta – Como o Arduino DUE possui saída 5V, posso ligar o modulo rele (com 6 reles) na porta de 5V, para acionar uma carga e o modulo Bluetooth, normalmente?

    2° Pergunta – Como os módulos Joystick são de 5V, posso ligar-los na saída de 3,3V do Due, para retornar para a porta analogia de 3,3V ou preciso liga-los na saída 5V, colocar um resistor de 10k para na saída do Joystick, para depois, coloca na entrada analogia do Arduino?

    Obrigado!

    1. Olá Caio!

      Acho que isso pode ser resolvido com este módulo:

      https://www.makerhero.com/produto/conversor-de-nivel-logico-33-5v-bidirecional/
      1ª Resposta: se o seu relé é acionado com 3,3 V é possível.

      2ª Resposta: É necessário converter a tensão que sai do joystick sim.
      Acho que seria melhor fazer uma divisão da tensão.

      Abraços!

      André – Equipe MakerHero

  6. Se eu ligar 5v em uma placa externa para alimentar os shields e ligar somente o GND e utilizar as portas digitais e analógicas, eu corro o risco de queimar a placa?

    1. Não queima, mas você deve respeitar os níveis das entradas dos módulos, para isso use os conversores bidirecionais 3,3V 5V. Esse conversor encontra-se à venda na loja da MakerHero. É preferível o conversor ao uso de divisores resistivos, isso principalmente devido a conversão 3,3V -> 5V que é garantida. Hoje não faço mais interfaceamento de dispositivos 5V para 3,3V sem esses conversores, é uma mão na roda.

  7. Olá Adilson. Bom, tenho uma dúvida enorme sobre a Interface TWI (Two Wire interface / Interface de 2 fios), que nada mais é do que a interface I2C. Em resumo, preciso ampliar o número de portas SDA e SCL do arduíno. Na verdade possuo 2 sensores que usam essa interface e como posso ligar apenas um sensor nela, não consigo usar os dois no mesmo arduíno. Já me indicaram fazer um circuito mux/demux para utilizá-los porém não consegui esquematizar na prática para fazê-lo. O arduíno due tem 2 portas SDA e SCL?

    Grato pela possível atenção.

    1. Boa tarde Felipe,

      Qual sensor você está usando? Você consegue mudar o endereço I2C dele? Caso consiga, você pode usar os 2 sensores na mesma porta.

      Abraço!

      Adilson – Equipe MakerHero

      1. Olá Adilson. Então, eu estou usando o TCS34725. O problema é que preciso usar dois destes sensores e como ele usa as saídas SDA e SCL. Ele é programado pela biblioteca Wire com os pinos SDA e SCL associados com A4 e A5. Eu queria poder usar também mais duas portas. Por exemplo, Sensor da Esquerda nas portas A4 e A5 e sensor da direita nas Portas A2 e A3 por exemplo.

      2. Então Adilson, até se quiser responder pelo Facebook fica melhor. Eu não sei o mapeamento de endereços de memória do arduíno, aliás meus conhecimentos não me permitem realizar esse tipo de mudança. Eu precisaria saber o esquema de ligação, a programação… Me sugeriram realizar uma ligação utilizando o mux/demux. Pesquisei a fundo e percebi que teria que usar um Ci para poder realizar este tipo de ação. Não achei nenhum exemplo prático dessas ligações e também não faço ideia como se programa este tipo de coisa. Existe algum tutorial que eu possa ler, independente das ideias (mux/demux ou endereçamento de memória) para você poder me ajudar? Tudo o que eu preciso é usar dois destes sensores. Como ele usa as saídas SDA e SCL, só consigo ligar um deles em um arduíno. Ele é programado pela biblioteca Wire com os pinos SDA e SCL associados com A4 e A5. Eu queria poder usar também mais duas portas. Por exemplo, Sensor da Esquerda nas portas A4 e A5 e sensor da direita nas Portas A2 e A3 por exemplo.

        1. Felipe, o método de ligação do I2C é multidrop”, ou seja, todos os dispositivos (sensores) são ligados ao SDA/SCL, do “master”, que é o Arduino. Isto é possível porque os sensores tem endereços diferentes; às vezes fixos, mas normalmente tem 3 pinos ou jumpers para alterar esse endereço. O master (Arduino) faz a pergunta para um determinado endereço, todos os slaves (sensores) ouvem, mas só o sensor que tiver o endereço igual ao da pergunta irá responder.
          Logo, não é necessário mais pinos de SDA/SCL para acessar vários sensores.
          Mais detalhes em https://pt.wikipedia.org/wiki/I%C2%B2C

  8. Gostaria de saber se essa placa é compatível com o ESP8266 e como seria um exemplo de ligação/montagem

  9. APP Bluetooth SPP não existe mais, você conhece um similar que possua o código fonte no GitHub?

  10. Olá… Shield LCD funciona normalmente?

    1. Boa tarde Natan,

      O nível de sinal do Arduino Due é 3.3V. O shield trabalha com nível de sinal de 5V, não vai funcionar.

      Abraço!

      Adilson – Equipe MakerHero

  11. 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

  12. 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.

    1. Roberto! Estou com exatamente o mesmo problema seu!

      Você conseguiu resolver?

      Luis Eduardo Guimaraes Pereira
  13. 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

  14. 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

  15. 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? 🙁

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

    1. Hi David,

      Please try the Bluetooth SPP Pro: https://play.google.com/store/apps/details?id=mobi.dzs.android.BLE_SPP_PRO

      Regards !

      Adilson – Equipe MakerHero

  17. 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

    1. 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)

    2. 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

    3. Pode usar 2 componentes reguladores de tensão: 7805T e 317T. No datasheet de cada um tem o circuito a ser montado para os valores de tensão de entrada e saída desejado.

Trackbacks and Pingbacks

  1. […] Qualquer problema que você pode ter ao programar a placa Due, você pode checar o nosso post explicando como utilizá-la. […]