【深海王国】小学生都能玩的单片机!番外1:Arduino家族Uno-Mega-Nano-Pro Mini-ATtiny85的使用指南(4)

Hi٩(๑ ^ o ^ ๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦

(o゜▽゜)o☆ 今天大都督继续为大家带来单片机的番外系列——小学生都能玩的单片机!番外1带你快速学习认识Arduino家族:Uno、Mega、Nano、Pro Mini、ATtiny85,了解它们的使用场景与优缺点。

(4)Arduino Mega2560介绍与使用指南

PS:在观看本系列的过程中,如果有疑问可参考系列文章:
【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!

Arduino Mega2560介绍:

之前在本系列第一节中提到过(详见(1)家族成员作用介绍与选择),Arduino Mega2560跟它的其他兄弟姐妹有着本质的不同,就是它用的是ATmega2560芯片,而其他兄弟姐妹大多数都用ATmega328P,看数字大小就知道,2560>328,它显然更厉害。

  • 其实这个2560代表其有256
    KB的闪存。这是其主要的存储容量,可以存放程序代码。后面那个0大都督查资料也没查到,大概代表100个引脚?总之很厉害就对了。
  • 然后ATmega328P,这个数字没有像2560一样直接表示闪存容量,“32”部分代表32 KB的闪存,“8”部分表示它是属于AVR8位的微控制器系列,“P”通常表示“PicoPower”技术,即为低功耗版本。

在这里插入图片描述

然后其对应参数表如下:

规格ATmega2560ATmega328P
闪存256 KB32 KB
SRAM8 KB2 KB
EEPROM4 KB1 KB
引脚数100个28个(PDIP),32个(其他封装)
I/O 引脚86个23个
时钟速度16 MHz16 MHz

然后Arduino Mega2560拥有多达54个数字输入/输出引脚(其中15个可用作PWM输出)、16个模拟输入、4个UART(硬件串口)。它具备较高的处理能力和丰富的接口,可以用于复杂的电子项目和多任务处理应用。

Arduino Mega2560引脚资源:

Mega2560的引脚图如下:
在这里插入图片描述

可以看出,Mega2560的上半部分和UNO的外型是一模一样的,也就是说,能插在UNO上的拓展板,也可以插在Mega2560上。
但是需要注意!虽然上半部分外形跟UNO一样,但是很多引脚的额外配置都不一样了,具体改变如下:

  1. 软串口问题:并非Mega和Mega 2560板上的所有引脚都支持更改中断,因此只有以下引脚可用于RX:10、11、12、13、14、15、50、51、52、53、A8(62)、A9(63)、A10(64)、A11(65)、A12(66)、A13(67)、A14(68)、A15(69)。(详见官方文档软串口库
  2. I2C接口改变:
    Arduino UNO: 使用 A4 (SDA) 和 A5 (SCL) 进行 I2C 通信。
    Arduino Mega2560: 使用 20 (SDA) 和 21 (SCL) 进行 I2C 通信。
  3. SPI接口改变:
    Arduino UNO: SPI 接口使用引脚 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)。
    Arduino Mega2560: SPI 接口使用引脚 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS)。

除了这些通信接口的改变,Mega2560还有很多新增的引脚:

  1. 外部中断引脚增加: 除去原本UNO的D2、D3 、Mega2560还增加了D18、D19、D20、D21,也就是说如果采用单中断模式,Mega2560最多支持6个编码器,还是相当够用的(这些将来我们会学到)。
  2. PWM引脚增加:UNO有6个PWM引脚,Mega2560有15个,增加了9个(分别是2 到 13, 44 到 46),也就是说我们最多可以控制15个舵机。
  3. 模拟引脚、数字引脚增加:UNO有6 个模拟输入引脚,14 个数字 I/O 引脚。
    而Mega2560增加了10个模拟输入引脚,有16 个(A0 到 A15)。
    Mega2560增加了 40 个数字引脚,有54 个数字 I/O 引脚(从 0 到 53)。

关于什么是SPI、I2C,大家可以看这篇:
(6)uart串口通信与其他通信和Arduino程序下载失败的问题

Arduino Mega2560程序下载:

在之前我们提到过,由于Arduino UNO只有一个硬件串口,如果它被占用了,下载程序会很不方便,所以我们使用了软串口库解决这个问题。(详见软串口与SoftwareSerial库使用)。
现在我们的Mega2560有四个硬件串口,就不用再担心串口不够用的问题啦,从没打过怎么富裕的仗。

程序的修改也很简单(之前的程序详见(9)实战:使用软串口与蓝牙APP串口通讯)。
我们只需要把这两句代码删掉就可以,

#include <SoftwareSerial.h>  //引用库文件
SoftwareSerial Serial1(2, 3);  // 定义软串口RX为2, TX为3和软串口对象Serial1

剩下什么都不用动

void setup(){
  Serial.begin(9600); //Arduino与电脑通信的波特率
  Serial1.begin(9600);  //Arduino与BLE蓝牙通信的波特率
}

void loop(){
  char data = ' ';
  if(Serial.available()){  //如果电脑串口接收到数据
    data = char(Serial.read());  //将电脑端接受到的数据转化为char类型
    Serial1.print(data);  //将电脑接收到的数据发送到蓝牙APP上
  }
}

然后接线这样接就行:

ArduinoBLE蓝牙模块
19 (Serial1 RX)TX
18 (Serial1 TX)RX
3.3V3.3V
GNDGND

这也是就为什么之前编程的时候让大家将软串口命名成Serial1的原因,这样将Arduino UNO的项目移植到Arduino Mega2560上会很方便,删掉两行代码就行。
能这样做的原因就是,Arduino的四个串口在编程时分别以SerialSerial1Serial2,和 Serial3

在这里插入图片描述
分别对应引脚如下,在开发板上也都标注了,很方便大家接线。

串口编号RX 引脚TX 引脚
Serial001
Serial11918
Serial21716
Serial31514

大家也可以自己编一下程序,试试Serial2、Serial3串口,跟Serial、Serial1都是一样的,改个数字的事,哈哈。

今天学到这里就差不多啦,下节我们就尝试给Mega2560下载一些其他程序,然后再给它装配上我们自己DIY的拓展板试试效果吧,看到这里的你今天也辛苦啦,加油٩(ˊᗜˋ)و✧。

需要的相关材料链接我都放在公众号「深海大都督」里了,回复「Mega2560购买」就能获得啦~

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深海大都督

建设深海,没你不行!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值