Arduino Mega Tutorial – Pinagem e esquemas

Tempo de leitura: 7 minutes

Em primeiro lugar, por que Arduino Mega 2560?

Quando placas mais baratas estão disponíveis, por que escolher o Arduino Mega? A principal razão por trás disso são os recursos adicionais que são integrados a esta placa. O primeiro recurso é o grande projeto do sistema de E/S com 16 transdutores analógicos embutidos e 54 transdutores digitais compatíveis com USART e outros modos de comunicação. Em segundo lugar, tem RTC embutido e outros recursos como comparador analógico, temporizador avançado, interrupção para mecanismo de despertar do controlador para economizar mais energia e velocidade rápida com relógio de cristal de 16 Mhz para obter 16 MIBS. Possui mais de 5 pinos para Vcc e Gnd para conectar outros dispositivos ao Arduino Mega.

Outros recursos incluem suporte JTAG para programação, depuração e solução de problemas. Com grande memória FLASH e SRAM, esta placa pode lidar com grandes programas de sistema com facilidade. Também é compatível com os diferentes tipos de placas, como sinal de alto nível (5V) ou sinal de baixo nível (3,3V) com pino de referência de E/S.

Brownout e watchdog ajudam a tornar o sistema mais confiável e robusto. Suporta ICSP e também programação de microcontroladores USB com PC.

O Arduino Mega 2560 é uma substituição do antigo Arduino Mega e, portanto, em referência geral, ele será chamado sem a extensão ‘2560’. Devido ao grande número de pinos, geralmente não é usado para projetos comuns, mas você pode encontrá-los em projetos muito mais complexos, como detectores de Radon, impressoras 3D, sensor de temperatura, aplicativos IOT, aplicativos de monitoramento de dados em tempo real, etc.

 

Especificações do Arduino Mega 2560

Arduino Mega – Recursos básicos

Arduino Mega – Recursos avançados

O Arduino Mega 2560 também vem com recursos adicionais, como Comparador Analógico, Interrupção Externa e Interrupção de Software, Modo de Economia de Energia, Sensor de Temperatura Integrado, RTC e muito mais.

 

Arduino Mega Pinout

 

Pinos de Energia:

Diagrama de Pinos do Arduino Mega

Pinos do controlador:

RESET: (entrada de reset) Um nível baixo neste pino por mais do que o ciclo de 4 clock irá gerar um reset. O Arduino Mega possui circuito de reset embutido com botão para resetar o sistema e este pino pode ser usado por outros dispositivos para resetar o controlador.

XTAL1, XTAL2: Cristal (16Mhz) é conectado para fornecer relógio para o controlador com 2 capacitores de bypass para aterramento.

AREF: Este pino é usado quando usamos Adc para conversão de analógico para digital com tensão de referência externa para conversão e não queremos usar referência interna de 1,1V ou 5V.

Pinos digitais (70):

Pinos digitais (0-53) + Analógico (0-15) = Total de Pinos Digitais de E/S.

 

Pinos Digitais: de 0-53 (digital) e 0-15 (analógico) podem ser usados como entrada ou saída para transdutor digital e dispositivos de saída por pinMode() para a direção do pino, digtalWrite() para escrever o pino e digitalRead() para ler status do pino.

 

Aplicações:

Dispositivos de saída: Relé, LED, buzzer, LCD e outros.

Dispositivos de entrada: termistor digital, botão de pressão, sensor ultrassônico, joystick e outros

 

Exemplo:

  • Saída de sinal baixo na placa mega Arduino

pinMode(0, OUTPUT);

digitalWrite(0, LOW);

  • Sinal de leitura de entrada na placa mega Arduino

pinMode(0, INPUT);

digitalRead(0);

Pinos analógicos (16):

Pinos analógicos: de 0-15 (analógico) pode ser usado como pino de entrada analógica para adc, se não usado, ele funciona como pino digital normal. Pode ser usado por pinMode() para a direção do pino, analogRead() para ler o status do pino e obter o valor digital para o sinal analógico, deve-se tomar cuidado para a seleção da tensão de referência interna ou externa e o pino Aref.

 

Aplicações :

Dispositivos de entrada: termistor Ntc, sensores (como ldr, irled e umidade) e outros

Exemplo:

  • Sinal analógico INPUT na placa mega Arduino

pinMode(0, INPUT);

analogRead(0);

 

Função Pinos Alternativos:

Pinos SPI :
Pino 22 - SS, Pino 23 - SCK, Pino 24 - MOSI, Pino 25 – MISO

Esses pinos são usados para comunicação serial com protocolo SPI para comunicação entre 2 ou mais dispositivos. O bit de habilitação de SPI deve ser definido para iniciar a comunicação com outros dispositivos.

 

Aplicações:

Controlador de programação AVR, comunicação com outros periféricos como LCD e cartão SD com comunicação de quatro linhas em alta velocidade.

Pinos I2C:

Pino digital 20 para SDA e 21 para SCK (velocidade 400 khz) para permitir a comunicação de dois fios com outros dispositivos. As funções usadas são wire.begin () para iniciar a conversão I2C, com wire.Read() para ler dados i2c e wire.Write() para gravar dados i2c.

 

Aplicações:

Dispositivos de saída: LCD e comunicação entre vários dispositivos com dois fios.

Dispositivos de entrada: rtc e outros.

Exemplo:

Dados de leitura mestre I2c do escravo

Wire.begin();

Wire.requestFrom(2, 1); //1byte data

Wire.Read();

Pinos PWM:

O pino digital 2-13 pode ser usado como saída PWM com analogWrite() para escrever o valor pwm de 0-255. É uma alternativa de DAC para sistema de baixo custo obter sinal analógico na saída usando filtro.

 

Aplicação:

Dispositivos de saída: controle de velocidade do motor, dimmer de luz, pid para sistema de controle eficiente.

Exemplo:

  • Sinal analógico de SAÍDA na placa mega Arduino

pinMode(0, OUTPUT);

analogWrite(0,255);

Pinos USART:

Pino 0 – RXD0, Pino 1 – TXD0

Pino 19 – RXD1, Pino 18 – TXD1

Pino 17 – RXD2, Pino 16 – TXD2

Pino 15 – RXD3, Pino 14 – TXD3

Este pino é usado para comunicação de usuário serial com pc ou outro sistema para compartilhamento e registro de dados. É usado com serialBegin() para definir a configuração da taxa de transmissão e iniciar a comunicação com serial.Println() para imprimir a matriz de char em outra saída de dispositivo.

 

Aplicação:

Comunicação de dois controladores, comunicação de pc e controlador, depuração com usart por monitor serial.

Exemplo:

Serial.begin(9600);

Serial.Println(“olá”);

Pinos de interrupção:

Digital Pin 0,22,23,24,25,10,11,12,13,15,14

Analog Pin 6,7,8,9,10,11,12,13,14,15

Este pino é usado para interrupção de mudança de pino. Habilitar o bit de interrupção de troca deve ser definido com a habilitação de interrupção global.

 

Aplicação :

Codificador rotativo, interrupção baseada em botão de pressão e outros.

Exemplo:

pinMode(0, OUTPUT);

pinMode(1, INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt (1), LOW, CHANGE);

Pinos de interrupção de hardware:

Pino digital 18 – 21,2,3 interrupção de hardware é usado para serviços de interrupção. A interrupção de hardware deve ser habilitada com habilitação de interrupção global para obter interrupção de outros dispositivos.

 

Aplicação:

Botão para programa ISR, controlador de despertar com dispositivos externos, sensores como ultrassônicos e outros.

Exemplo:

pinMode(0, OUTPUT);

pinMode(1, INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt (1), LOW, LOW);

Componentes esquemáticos do Arduino Mega:

Fonte de alimentação DC Jack:

Fonte externa para Arduino Mega de 7 a 12 volts é fornecida com esta porta. O Arduino Mega R3 tem um regulador de tensão para alimentação de 5v e 3,3v para o controlador Arduino e alimentação do sensor.

AVR 2560 :

Este é o controlador principal usado para programar e executar tarefas para o sistema. Este é o cérebro do sistema para controlar todos os outros dispositivos a bordo.

ATmega8 :

Este controlador é usado para comunicação entre o controlador principal e outros dispositivos. Este controlador é programado para comunicação USB e recursos de programação serial.

ICSP 1 (ATmega8) e 2 (AVR 2560)

Possui recursos de programação via barramento serial com programador AVR via comunicação SPI. AVR 2560 está programado para operar o sistema e ATmega 8 está programado para comunicação serial e programação.

 

Reset :

Possui circuito de reset com capacitor, botão e resistor para resetar o controlador. Um botão de pressão é usado para obter um sinal de 4 ciclos baixo no pino de reinicialização para colocar o controlador no modo de reinicialização.

Crystal :

Ele tem um circuito de cristal com dois capacitores e um cristal de 16 Mhz para os pinos xtal 1 e 2 fazendo interface com o AVR 2560.

I2C :

Possui recursos de I2C (comunicação de dois fios) com um resistor pull-up externo.

USART :

Possui pin TXD e RXD para comunicação serial com indicador LED.

 

Alguns programas simples para experimentar no Arduino Mega 2560

Programa 1: LED piscando (pino digital)

/*
Acende um LED por dois segundos e depois apaga por dois segundos no pino 13, repetidamente.
*/

// a função de configuração é executada uma vez quando você pressiona reset ou liga a placa

void setup() {
  // inicializa o pino digital 13 como uma saída.
  pinMode(13, OUTPUT);
}

// a função de loop executa novamente e novamente
void loop() {
  digitalWrite(13, HIGH);   // ligue o LED (HIGH é o nível de tensão)
  delay(2000);              // espere por dois segundos
  digitalWrite(13, LOW);    // desligue o LED
  delay(2000);              // espere por dois segundos
}

 

Programa 2: Dimmer de luz LED (PWM):

int brightness = 0;    // valor pwm

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

void loop()
{
  analogWrite(3, brightness);  // pwm escreve no pino 3
  ++brightness;                // o brilho é incrementado em 1
  if (brightness <= 0 || brightness >= 255) {
     brightness=0;  // brilho limitado a 0-255
  }
  delay(10);
}

 

Programa 3: Tensão de leitura analógica (pino analógico com USART):

void setup()
{
    Serial.begin(9600);  // usa a função de início de comunicação com a taxa de transmissão definida para 9600
}

void loop()
{
   int sensorValue = analogRead(A0);  // Os dados do pino 0 analógico são lidos e convertidos em valor digital armazenado em sensorValue.
   Serial.println(sensorValue);       // usart para emitir o valor do sensor no monitor serial
}

Você também pode tentar sua própria lógica e implementar programas para Arduino mega com funções básicas C e Arduino.