Arduino Mega 2560.

首先,为什么Arduino Mega 2560?

当有更便宜的电路板时,为什么要用Arduino Mega呢?这背后的主要原因是附加的功能,是内置与此板。第一个特点是大型I/O系统设计,内置16个模拟换能器和54个数字换能器,支持USART和其他通信模式。其次,它具有内置RTC等功能,如模拟比较器,高级定时器,中断控制器唤醒机制,节省更多的电力和速度与16 Mhz的水晶时钟得到16 MIBS。它有超过5个引脚的Vcc和Gnd,以连接其他设备Arduino Mega。

其他特性还包括JTAG对编程、调试和故障排除的支持。该板具有大的FLASH存储器和SRAM,可以轻松处理大型系统程序。它也兼容不同类型的板,如高电平信号(5V)或低电平信号(3.3V)的I/O ref引脚。

撤销和看门狗有助于使系统更可靠和强大。它支持ICSP以及使用PC的USB微控制器编程。

该Arduino Mega 2560是一个旧的Arduino Mega的替换,所以在一般参考,它将被称为没有' 2560 '扩展。由于许多引脚的数量,它通常不用于常见的项目,但你可以在更复杂的项目中找到它们,如氡探测器,3D打印机,温度传感,物联网应用,实时数据监控应用等。

Arduino Mega 2560规格

Arduino Mega -基本功能

Arduino兆 特征
微控制器 AVR ATmega 2560(8位)
电源供应 7-12V(控制器内置稳压器)
数字I / O引脚 54
模拟I / O管脚 16
总数字I / O. 70(数字+模拟)
时钟速度 16 MHz(工厂设置为1MHz)
闪存 128 KB.
SRAM. 8 KB
沟通 USB(使用Atmega 8编程),ICSP(编程),SPI,I2C和USART

Arduino Mega - 高级功能

Arduino兆 先进的功能
计时器 2(8bit)+ 4(16bit)= 6计时器
PWM. 12(- 18位)
ADC 16(10位)
USART 4
PIN更改中断 24

Arduino Mega 2560还装满了模拟比较器,外部中断和软件中断,省电模式,内置温度传感器,RTC等功能的附加功能。

Arduino Mega Pinout.

Arduino Mega Pinout.
Arduino Mega Pinout.

权力针:

Arduino兆 权力针
vin. 电源电压(7-12V)
接地 地面
5V供应 用于硬件设备外部供电
3.3 v电源 用于外部低压硬件设备供电

Arduino Mega Pin图

Arduino Mega Pin配置
Arduino Mega Pin配置

控制器销:

重启:(复位输入)此引脚上的低电平超过4个时钟周期将产生复位。Arduino Mega具有内置的复位电路,带有按钮可重置系统,此引脚可供其他设备使用以重置控制器。

XTAL1 XTAL2:Crystal(16MHz)连接到带有2个旁路电容的控制器供电时钟。

诺:使用此引脚,当我们使用ADC进行模拟与数字转换时的外部参考电压进行转换,不想使用内部1.1V或5V参考。

数字引脚(70):
数字引脚(0-53)+模拟(0-15)=总数字I / O引脚。

数字针:从0-53(数字)和0-15(模拟)可以使用作为输入或输出的数字转换器和输出设备的pinMode()引脚方向,digtalWrite()写引脚和digitalRead()读引脚状态。

应用:

输出设备:继电器,LED,BUZZER,LCD等。

输入设备:数字热敏电阻,按钮,超声波传感器,操纵杆等

例子:

  • Arduino兆板低信号输出

pinMode(0,输出);

DigitalWrite(0,低);

  • Arduino Mega Loard上的输入读取信号

PinMode(0,输入);

DigitalRead(0);

模拟引脚(16):

模拟引脚:从0-15(模拟)可以用作ADC的模拟输入引脚,如果不使用它作为正常数字引脚。Pinmode()可以用于引脚方向,Analogread()读取引脚状态并获得模拟信号的数字值,必须小心内部或外​​部参考电压选择和ISF引脚。

应用程序:

输入设备:NTC热敏电阻,传感器(如LDR,IRRED和湿度)和其他

例子 :

  • Arduino Mega Loard上的输入模拟信号

PinMode(0,输入);

analogRead (0);

替代针功能:

SPI销:
引脚22 - SS,引脚23 - SCK,引脚24 - MOSI,引脚25 - MISO

这些引脚用于与SPI协议进行串行通信,用于2个或更多设备之间的通信。必须设置SPI启用位以启动与其他设备的通信。

应用:

AVR控制器编程,与LCD、SD卡等外设进行高速四线通信。

I2C引脚:

用于SDA和21的数字销20用于SCK(速度400kHz),以实现与其他设备的两个线通信。使用的函数是wire.begin()以启动i2c转换,使用wire.read()读取I2C数据和Wire.Write()来写入I2C数据。

应用:

输出设备:LCD和具有两根电线的多个设备之间的通信。

输入设备:RTC等。

例子:

i2c主站从从站读取数据

Wire.begin();

wire.requestfrom(2,1);// 1byte数据

wire.read();

PWM PINS.:

数字引脚2-13可用作模拟手写()的PWM输出,从0-255写PWM值。通过使用过滤器将DAC的DAC替代地获取模拟信号。

应用:

输出设备:电机速度控制,光调光器,PID用于高效控制系统。

例子:

  • Arduino Mega Board上的输出模拟信号

pinMode(0,输出);

Amplwwrite(0,255);

USART针:
引脚0 - RXD0,引脚1 - TXD0,引脚19 - RXD1,引脚18 - TXD1,引脚17 - RXD2,引脚16 - TXD2,引脚15 - RXD3,引脚14 - TXD3

此引脚用于与PC或其他系统进行串行USART通信,以进行数据共享和记录。它与SerialBegIn()一起使用,以设置波特率设置并开始与Serial.println()开始通信以在其他设备输出上打印ark数组。

应用:

双控制器通信,pc机与控制器通信,通过串行监视器与usart进行调试。

例子:

Serial.begin (9600);

以“你好”);

Pinchange中断大头针:
数字管脚0,22,23,24,25,10,11,12,13,15,14模拟管脚6,7,8,9,10,11,12,13,14,15

该引脚用于引脚更改中断。必须使用全局中断启用设置pinchange中断的启用位。

应用程序:

旋转编码器,按下基于按钮的中断等。

例子 :

pinMode(0,输出);

PINMODE(1,INPUT_PULLUP);

attachInterrupt (digitalPinToInterrupt(1)、低变化);

硬件中断引脚:

数字引脚18 - 21,2,3硬件中断用于中断服务。必须使用全局中断使能硬件中断使能为从其他设备获取中断。

应用:

按钮的ISR程序,唤醒控制器与外部设备,传感器,如超声波和其他。

例子:

pinMode(0,输出);

PINMODE(1,INPUT_PULLUP);

AttanceLerruct(DigitalPintErtrupt(1),低,低);

Arduino Mega Schematic Components:

直流插孔电源:

外部电源Arduino Mega从范围7-12伏与该端口提供。Arduino Mega R3有一个电压调节器,为Arduino控制器和传感器供应5v和3.3v电源。

AVR 2560:

这是用于为系统编程和运行任务的主控制器。这是控制船上所有其他设备的系统的大脑。

ATmega8:

该控制器用于主控制器和其他设备之间的通信。本控制器具有USB通讯和串行编程功能。

ICSP 1(ATMEGA8)和2(AVR 2560):

使用SPI通信,它具有使用AVR程序员使用串行总线进行编程的功能。AVR 2560被编程为运行系统,Atmega 8被编程用于串行通信和编程。

Arduino Mega ICSP引脚
Arduino Mega ICSP Pinout for ATmega 2560

重启 :

它具有带电容器,按钮和电阻的复位电路,以重置控制器。按钮用于在RESET引脚上获得4个周期低信号,以在复位模式下获取控制器。

水晶:

它有一个晶体电路与两个电容和一个16mhz晶体的xtal引脚1和2与avr 2560接口。

I2C:

它具有I2C(两个线通信)具有外部上拉电阻的功能。

USART:

它具有与LED指示灯串行通信的TXD和RXD引脚。

一些简单的程序试图在Arduino Mega 2560

程序1:闪烁LED(数字引脚)

/ *打开一个LED,然后再次关闭两个销13上的两个秒钟。* ///在按重置或电源电源时,设置功能运行一次,或者将数字引脚13初始化为输出。PinMode(13,输出);} //循环函数再次运行,再次void循环(){digitewrite(13,高);//转动LED(高电平电压电平)延迟(2000);//等待两种第二迪网(13,低);//转动LED延迟(2000);//等待两秒}

程序2:LED灯光调光器(PWM):

int亮度= 0;// pwm值void setup(){pinmode(3,输出);void循环(){Amplswrite(3,亮度);// PWM写入PIN 3 ++亮度;//亮度递增1(亮度<= 0 ||亮度> = 255){亮度= 0;//亮度限制为0-255}延迟(10);}

程序3:模拟读取电压(模拟引脚带USART):

void setup() {Serial.begin(9600);// usart通信开始函数baudrate设置为9600}void loop() {int sensorValue = analogRead(A0);//读取模拟管脚0数据并转换成数字值存储在sensorValue。以sensorValue);// usart在串行监视器上输出传感器值}

您也可以尝试自己的逻辑和实现程序的Arduino mega与基本的C和Arduino功能。

作者

1评论

  1. Julz Moore.

    你确定这页上的SPI引脚是正确的吗?
    “引脚22 - SS,引脚23 - SCK,PIN 24 - MOSI,PIN 25 - MISO”

    ATmega2560 SPI数据表显示:
    引脚19 - SS,引脚20 - SCK,PIN 21 - MOSI,引脚22 - MISO。

    (Arduino引脚映射:SS = 53,SCK = 52,MOSI = 51,MISO = 50)