Arduino Mega 2560中文教程含接口定义

Arduino Mega 2560有什么特点?

市面上有更便宜的Arduino板子,为什么要选择Arduino Mega?主要原因是这块板子更利于扩充,Arduino Mega 2560拥有很多别的板子不具备的特性。比如:它内置了16个模拟传感器和54个数字传感器接口,支持USART和其他通信模式。内置了RTC等功能,如模拟比较器、高级定时器、控制器唤醒机制中断等,16MHz晶钟可获得16 MIBS,同时它省电、快速度。有超过5组Vcc和Gnd引脚,可以方便的连接其他设备到Arduino Mega 2560。


Arduino Mega 2560的其他特性包括JTAG支持编程、调试和故障排除;拥有较大的闪存和SRAM,可以轻松处理大体积的程序;它还兼容不同类型的模块,如高电平(5V)或低电平(3.3V)与I/O ref 引脚;它支持PC端的ICSP及USB单片机编程。Arduino Mega 2560是旧型号Arduino Mega的替代品,所以,它将被命名为“2560”扩展。所以上一些较复杂项目时,这是个极佳的选择。

Arduino Mega 2560的硬件规格

Arduino Mega 的高级特性

Arduino Mega 2560还增加了模拟比较器、外部中断和软件中断、节电模式、内置温度传感器、RTC等功能。

Arduino Mega 的接口定义


电源针:

Arduino Mega的接口分区


控制针:

RESET: (Reset input)这个引脚的低电平超过4个时钟周期板子将会复位。Arduino Mega内置复位电路,按键复位系统,可用于其他设备的复位控制器。

XTAL1,XTAL2: 晶振(16Mhz)是连接控制器时钟,通过2个旁路电容接地。

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

Digital 针(70):

Digital 针脚(0-53) + Analog 针脚(0-15) = 总 Digital I/O 针脚.

Digital 针 :0-53(Digital针) 和 0-15(Analog针) 都可以作为数字传感器或模块的输入或输出,用pinMode()来确定引脚的功能,digtalWrite()表示针写入,digitalRead()表示针的读取状态。

例子

如:在Arduino mega 上输出低电平信号:

pinMode(0,OUTPUT);
digitalWrite(0,LOW);

如:在Arduino mega 上输入读取信号:

pinMode(0,INPUT);
digitalRead(0);

Analog 针(16):

Analog 针:0-15(Analog 针)可以作为ADC的模拟输入引脚,如果不使用,则作为普通数字引脚使用。用pinMode()来确定引脚的功能,analogRead()可以读取引脚状态,得到模拟信号的数字值,但必须注意内部或外部参考电压的选择和 Aref 引脚电压。

例子

如:在Arduino mega 上输入模拟信号:

pinMode(0,INPUT);
analogRead(0);

SPI Pins:

Pin 22 - SS, Pin 23 - SCK, Pin 24 - MOSI, Pin 25 – MISO

这些引脚用于与SPI协议进行串行通信,一般用于2个或多个设备之间的通信。必须设置 SPI enable bit 才能与其他设备通信。

I2C Pins:

Digital针20是I2C针的SDA,Digital针21是I2C针的SCK(400Khz)。使用函数 wire.begin() 来启动 I2C, wire. read() 来读取I2C数据, wire. write()来写入I2C数据。

例子

I2c的主从数据读取:

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

PWM针:

Digital针2-13可以作为PWM输出,使用analowrite()写入PWM值,范围:0-255。它采用滤波器在输出端获取模拟信号,这是低成本DAC系统的替代方案。

例子

Arduino mega 输出连续模拟信号:

pinMode(0,OUTPUT);
analogWrite(0,255);

USART针:

Pin 0 – RXD0, pin 1 – TXD0
Pin 19 – RXD1, pin 18 – TXD1
Pin 17 – RXD2, pin 16 – TXD2
Pin 15 – RXD3, pin 14 – TXD3

USART针:用于与pc或其他设备的串行通信,用于数据共享和日志记录。它与 serialBegin()  一起使用,用于设置串口波特率,并开始和 serial.Println() 通信,以便在串口设备上输出并打印字符串。

例子

如:设置串口波特率为9600,并串口打印“hello”:

Serial.begin(9600);
Serial.Println(“hello”);

Pinchange中断针:

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

这些引脚用于引脚更换中断。启用pinchange中断位必须设置为全局中断启用。

例子

用于旋转编码器,按钮式中断等。

pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, CHANGE);

硬件中断针:

Digital针18 – 21,2,3为硬件中断针,用于硬件中断服务。硬件中断必须启用全局中断,以便从其他设备获得中断。

例子

用于ISR程序按钮,外置设备唤醒控制器,超声波等传感器。

pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, LOW);

Arduino Mega的其他组件

直流电源接口:

这个接口可用于提供7-12V范围内的外部电源给Arduino Mega。Arduino Mega R3拥有5v和3.3v电压调节器,用于调节Arduino控制器和传感器的电源。

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


ICSP是通过串口使用SPI协议在线烧录程序的接口。

Reset 键:

Reset 键:内置电容复位电路、按钮复位电路和电阻复位电路。可利用 Reset 按钮在复位针上获得4周期低电平信号,使控制器处于复位模式。