Tipos de Arduino

Guia Completo: Arduino Mega Pro Mini

Eletrogate 9 de junho de 2022

Por que Arduino Mega Pro Mini?

O Arduino Mega Pro Mini é a versão reduzida, em tamanho, do Arduino Mega. Este possui o mesmo processador do Arduino Mega e algumas especificações semelhantes, mas é menor e disponibiliza 16 portas digitais a mais.

Atmel ATmega2560_datasheet

Características do ATmega2560 :

  • Processador RISC com até 16 MIPS;
  • 256 KBytes de memória Flash;
  • 8 KBytes de memória estática;
  • 4 KBytes de memória não-volátil EEPROM;
  • 2 Timers/Contadores de 8 bits;
  • 2 Timers/Contadores de 16 bits;
  • 1 Contador Real Time;
  • 1 Conversor ADC de 10 bits com 16 canais;
  • Quatro canais PWM de 8 bits e 12 canais PWM de 16 bits;
  • Quatro  interfaces seriais, uma interface I2C e uma interface SPI;

Características do Arduino Mega Pro Mini

A placa do Arduino Mega Pro Mini foi desenvolvida para projetos mais complexos, assim como o Arduino Mega, e possui as seguintes Especificações Técnicas:

  • Microcontrolador Atmel ATmega2560;
  • Conversor USB-Serial CH340;
  • Corrente máxima no somatório dos pinos: 500 mA;
  • Consumo máximo: 800 mA;
  • Tensão de entrada (Vin/jack): 7 – 9 V;
  • Corrente máxima por pino: 20 mA;
  • Tensão de operação: 5 V;
  • Porta Micro USB;
  • Portas digitais I/O: 76;
  • Entradas analógicas: 16;
  • Possui 14 Portas PWM;
  • Possui 4 Portas UART (comunicação serial).

Pinout do Arduino Mega Pro Mini

Abaixo, a pinagem do Arduino Mega Pro Mini:


Projeto Exemplo no Arduino Mega Pro Mini

Para este projeto, iremos utilizar as portas UART do Mega Pro Mini. Neste projeto iremos usar 4 Arduinos. Um irá enviar comandos, enquanto os demais os receberão e atuarão de acordo. Fique atento na descrição dos Materiais, Requisitos, Diagrama esquemático e Código do nosso projeto.

Materiais necessários para o projeto de exemplo

Diagrama


Código Arduino Mega Pro Mini (Enviar)

void setup() {
  Serial0.begin (9600); //Estamos usando as portas seriais RX0 e TX0.
  Serial2.begin (9600); //Estamos usando as portas seriais RX1 e TX1.
  Serial3.begin (9600); //Estamos usando as portas seriais RX3 e TX3.
}

void loop() {
  Serial.write ('A'); //Acende o LED.
  delay (1000); //Tempo de espera de 1 segundo.
  Serial.write ('a'); //Desliga o LED.
  delay (1000); //Tempo de espera de 1 segundo.

  Serial1.write ('B'); //Acende o LED.
  delay (2000); //Tempo de espera de 2 segundos.
  Serial1.write ('b'); //Desliga o LED.
  delay (2000); //Tempo de espera de 2 segundos.

  Serial3.write ('C'); //Acende o LED.
  delay (3000); //Tempo de espera de 3 segundos.
  Serial3.write ('c'); //Desliga o LED.
  delay (3000); //Tempo de espera de 3 segundos.
}

Código Arduino Uno (Receber)

#define led 13 //Define o led do próprio Arduino como porta 13.

void setup() {
  Serial.begin (9600); //Iniciando a comunicação serial RX e TX.
  pinMode (led,OUTPUT); //Controlar o led para acender.
  digitalWrite(led, LOW); //Iniciando com o led desligado.
}

void loop() {
  if (Serial.available()>0){ //Se tiver alguma coisa na porta serial ele avisa a programação.
      char c=Serial.read(); //Ler este dado e armazenar na variável c.
      if (c=='A'){
          digitalWrite(led,HIGH);
      }

      if (c=='a'){
          digitalWrite(led,LOW);
       }
  }
}

Código Arduino Mega (Receber)

#define led 13 //Define o led do próprio Arduino como porta 13.

void setup() {
  Serial1.begin (9600);    //Iniciando a comunicação serial RX e TX.
  pinMode (led,OUTPUT);    //Controlar o led para acender.
  digitalWrite(led, LOW);  //Iniciando com o led desligado.
}

void loop() {
  if (Serial1.available()>0){ //Se tiver alguma coisa na porta serial ele avisa a programação.
      char c=Serial1.read();  //Ler este dado e armazenar na variável c.
      if (c=='B'){
          digitalWrite(led,HIGH);
      }

      if (c=='b'){
          digitalWrite(led,LOW);
       }
   }
}

Código Arduino Nano (Receber)

#define led 13 //Define o led do próprio Arduino como porta 13.

void setup() {
  Serial.begin (9600); //Iniciando a comunicação serial RX3 e TX3.
  pinMode (led,OUTPUT); //Controlar o led para acender.
  digitalWrite(led, LOW); //Iniciando com o led desligado.
}

void loop() {
  if (Serial.available()>0){ //Se tiver alguma coisa na porta serial ele avisa a programação.
      char c=Serial.read(); //Ler este dado e armazenar na variável c.
      if (c=='C'){
          digitalWrite(led,HIGH);
      }

      if (c=='c'){
          digitalWrite(led,LOW);
      }
   }
}

O que vai acontecer?

Assim que o projeto começar a funcionar, o Arduino Mega Pro Mini irá enviar informações para os outros executarem alguma função. Nestas funções, o Uno irá ligar e desligar o Led ligado à porta 13 a cada segundo. Os demais Arduinos seguirão a mesma lógica, porém com 1 segundo a mais, em cada. Ou seja, o Arduino Uno terá o intervalo de 1 segundo, o Arduino Mega de 2 segundos e o Arduino Nano de 3 segundos.


Considerações Finais

Esperamos que você tenha entendido e conseguido montar o seu projeto. Se tiver qualquer dúvida, mande nos comentários, aqui, em baixo. Gostou do projeto e também construiu o seu? Avalie o nosso post. Fez adaptações e conseguiu resultados ainda melhores? Tire uma foto e nos marque no Instagram @Eletrogate.

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Sobre o Autor


Gabriel Felizardo
@gabriel_felizardotv

Com ensino médio e técnico em eletrotécnica completos pelo SESI/SENAI. Gosto muito de eletrônica, tecnologias e temas envolvendo energia.
Trabalho nas redes sociais como vendedor e produtor de conteúdo digital. No meu tempo livre desenvolvo projetos envolvendo o Arduino, além de inventar muitas coisas.


Eletrogate

9 de junho de 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!