参考:https://www.yiboard.com/thread-831-1-1.html

在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义。Arduino Uno微控制器采用的是Atmel的ATmega328。 Arduino Uno开发板的引脚分配图包含14个数字引脚、6个模拟输入、电源插孔、USB连接和ICSP插头。引脚的复用功能提供了更多的不同选项,例如驱动电机、LED、读取传感器等。在这篇文章中,我们将介绍Arduino Uno引脚的功能。

Arduino Uno引脚分配图

<ignore_js_op>

Arduino-uno-pinout-diagram.png (76.96 KB, 下载次数: 200)

下载附件  保存到相册

2018-5-10 14:38 上传

 

Arduino Uno引脚分配 - 电源

Arduino Uno开发板可以使用三种方式供电:

●    直流电源插孔 -可以使用电源插孔为Arduino开发板供电。电源插孔通常连接到一个适配器。开发板的供电范围可以是5-20V,但制造商建议将其保持在7-12V之间。高于12V时,稳压芯片可能会过热,低于7V可能会供电不足。

●    VIN引脚 - 该引脚用于使用外部电源为Arduino Uno开发板供电。电压应控制在上述提到的范围内。

●    USB电缆 - 连接到计算机时,提供500mA/5V电压。

<ignore_js_op>

arduino-uno-pinout-power-supply.png (33.51 KB, 下载次数: 104)

下载附件  保存到相册

2018-5-10 15:07 上传

 

在电源插孔的正极与VIN引脚之间链接有一个极性保护的二极管,额定电流为1安培。

您使用的电源决定了可用于电路的功率。例如,使用USB为电路供电时,电流最大限制在500mA。考虑到该电源也用于为MCU、外围设备、板载稳压器和与其连接的组件供电。当通过电源插座或VIN为电路供电时,可用的最大电流取决于Arduino开发板上的5V和3.3V稳压器。

●    5v和3v3

根据制造商的数据手册,它们提供稳压的5V和3.3v,向外部组件供电。

●    GND

在Arduino Uno引脚分配图中,可以看到有5个GND引脚,它们都是互连的。

GND引脚用于闭合电路回路,并在整个电路中提供一个公共逻辑参考电平。务必确保所有的GND(Arduino、外设和组件)相互连接并且有共同点。

●    RESET - 复位Arduino开发板。

    IOREF - 该引脚是输入/输出参考。它提供了微控制器工作的参考电压。

Arduino Uno引脚分配 - 模拟输入

Arduino Uno有6个模拟引脚,它们作为ADC(模数转换器)使用。

这些引脚用作模拟输入,但也可用作数字输入或数字输出。

<ignore_js_op>

Arduino-uno-pinout-analog-in.png (32.53 KB, 下载次数: 111)

下载附件  保存到相册

2018-5-10 15:14 上传

 

模数转换

ADC表示模拟到数字转换器。 ADC是用于将模拟信号转换为数字信号的电子电路。模拟信号的这种数字表示允许处理器(其是数字设备)测量模拟信号并在其操作中使用它。

Arduino引脚A0-A5能够读取模拟电压。在Arduino上,ADC具有10位分辨率,这意味着它可以通过1,024个数字电平表示模拟电压。 ADC将电压转换成微处理器可以理解的位。

一个常见的ADC例子是IP语音(VoIP)。每部智能手机都有一个麦克风,可将声波(语音)转换为模拟电压。这通过设备的ADC,转换成数字数据,通过互联网传输到接收端。

Arduino Uno引脚分配 - 数字引脚

Arduino Uno的引脚0-13用作数字输入/输出引脚。其中,引脚13连接到板载的LED指示灯;引脚3、5、6、9、10、11具有PWM功能。

需要注意的是:

●    每个引脚可提供/接收最高40 mA的电流。但推荐的电流是20毫安。

●    所有引脚提供的绝对最大电流为200mA。

<ignore_js_op>

arduino-uno-pinout-digital-pins-pwm-1.png (93.26 KB, 下载次数: 114)

下载附件  保存到相册

2018-5-10 15:16 上传

 

数字电平意味着什么?

数字是一种表示1位电压的方式:0或1。Arduino上的数字引脚是根据用户需求设计为输入或输出的引脚。数字引脚可以打开或关闭。开启时,它们处于5V的高电平状态,当关闭时,它们处于0V的低电平状态。

在Arduino上,当数字引脚配置为输出时,它们设置为0或5V。

当数字引脚配置为输入时,电压由外部设备提供。该电压可以在0-5V之间变化,并转换成数字表示(0或1)。为了确定这一点,有2个阈值:

●    低于0.8v - 视为0。

●    高于2.0v - 视为1。

将组件连接到数字引脚时,确保逻辑电平匹配。如果电压在阈值之间,则返回值将不确定。

什么是PWM?

通常,脉宽调制(PWM)是一种调制技术,用于将消息编码为脉冲信号。 PWM由两个关键部分组成:频率和占空比。 PWM频率决定了完成单个周期(周期)所需的时间以及信号从高到低的波动速度。占空比决定信号在总时间段内保持高电平的时间。占空比以百分比表示。

在Arduino中,支持PWM的引脚产生约500Hz的恒定频率,而占空比根据用户设置的参数而变化。见下图:

<ignore_js_op>

arduino-pwm-diagram.png (21.78 KB, 下载次数: 94)

下载附件  保存到相册

2018-5-10 15:17 上传

 

PWM信号用于直流电机的速度控制,调光LED等。

通信协议

串行(TTL) - 数字引脚0和1是Arduino Uno的串行引脚。

它们由板载USB模块使用。

什么是串行通信?

串行通信用于在Arduino板和其他串行设备(如计算机,显示器,传感器等)之间交换数据。每块Arduino板至少有一个串口。串行通信发生在数字引脚0(RX)和1(TX)以及USB上。 Arduino也支持通过数字引脚与SoftwareSerial Library进行串行通信。这允许用户连接多个支持串行的设备,并保留主串行端口可用于USB。

软件串行和硬件串行 - 大多数微控制器都具有用于与其他串行设备进行通信的硬件。软件串行端口使用引脚更改中断系统进行通信。有一个用于软件串行通信的内置库。处理器使用软件串行来模拟额外的串行端口。软件串行唯一的缺点是它需要更多的处理,并且不能支持与硬件串行相同的高速。

SPI - SS / SCK / MISO / MOSI引脚是SPI通信的专用引脚。它们可以在Arduino Uno的数字引脚10-13和ICSP插头上找到。

串行外设接口(Serial Peripheral Interface,SPI)是一种串行数据协议,由微控制器用来与总线中的一个或多个外部设备进行通信,如连接。 SPI也可以用来连接2个微控制器。在SPI总线上,总是有一个设备表示为主设备,其余所有设备都表示为从设备。在大多数情况下,微控制器是主设备。 SS(从选择)引脚确定主器件当前正在与哪个器件通信。

启用S​​PI的器件始终具有以下引脚:

●    MISO(主从输出) - 用于向主设备发送数据的线路

●    MOSI(主机输出从机输入) - 发送数据到外围设备的主机线

●    SCK(串行时钟) - 由主设备生成的用于同步数据传输的时钟信号。

I2C - SCL / SDA引脚是I2C通信的专用引脚。在Arduino Uno上,它们可以在模拟引脚A4和A5上找到。

I2C通信协议通常称为“I2C总线”。 I2C协议旨在实现单个电路板上组件之间的通信。使用I2C时,有2条通信线,称为SCL和SDA。

●    SCL是用于同步数据传输的时钟线。

●    SDA是用于传输数据的通讯线。

I2C总线上的每个器件都有一个唯一的地址,最多可以在同一条总线上连接255个器件。

Aref - 模拟输入的参考电压。

中断 - INT0和INT1。 Arduino Uno有两个外部中断引脚。

外部中断 - 外部中断是外部干扰出现时发生的系统中断。干扰可能来自用户或网络中的其他硬件设备。 Arduino中这些中断的常见用途是读取编码器产生的方波或外部事件唤醒处理器的频率。

Arduino有两种形式的中断:

●    外部输入

●    引脚状态变化

ATmega168 / 328上有两个外部中断引脚,称为INT0和INT1。 INT0和INT1分别映射到引脚2和3相反,引脚变化中断可以在任何引脚上激活。

Arduino Uno引脚定义 - ICSP插头

ICSP表示在线串行编程。该名称源自在系统编程(ISP)。 Arduino相关的制造商,如Atmel,开发了自己的在线串行编程插头。这些引脚使用户能够编程Arduino开发板上的固件。 Arduino开发板上有6个ICSP引脚,可通过编程电缆连接到编程器设备。

<ignore_js_op>

arduino-uno-pinout-icsp-e1524402554147.png (85.59 KB, 下载次数: 89)

下载附件  保存到相册

2018-5-10 15:19 上传

 

了解引脚定义

Arduino Uno开发板是当今市场上最流行的开发板之一,这就是为什么我们在本文中主要介绍这款开发板。本篇文章主要介绍了其大部分功能,但也有很多高级的选项,我们在这篇文章中没有涉及。

要为项目选择开发板时,需要了解的重要一点是其功能和局限性。理解开发板使用的不同通信协议也很重要。当然,你不需要记住所有这些信息,你可以回到这篇文章并阅读相关信息。

Arduino Uno微控制器采用的是Atmel的ATmega328的更多相关文章

  1. 详解Arduino Uno开发板的引脚分配图及定义(重要且基础)

    首先开发板实物图如下: 在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义.Arduino Uno微控制器采用的是Atme ...

  2. 使用Atmel Studio编程Arduino Uno开发板

    使用Atmel Studio 7编程Arduino Uno开发板非常简单.Arduino Uno开发板是使用AVR微控制器的嵌入式应用开发的著名平台之一. 大多数人通常会使用Arduino自己的软件工 ...

  3. 基于Proteus仿真的Arduino学习(1)——Arduino Uno最小系统及LED的简单使用

    一.前言:  A.Arduino简介 Arduino是由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Banzi.David Cuartielles.Tom Igoe.Gianluc ...

  4. Arduino UNO开发板、Arduino CNC Shield V3.0扩展板、A4988驱动板、grbl固件使用教程

    前言 CNC Shield V3.0可用作雕刻机,3D打印机等的驱动扩展板,板上一共有4路步进电机驱动模块的插槽,可驱动4路不进电机,而每一路步进电机都只需要2个IO口,也就是说,6个IO口就可以很好 ...

  5. 微控制器(MCU)架构介绍

    微控制器(MicroController)又可简称MCU或μC,也有人称为单芯片微控制器(Single Chip Microcontroller),将ROM.RAM.CPU.I/O集合在同一个芯片中, ...

  6. single-chip microcomputer Microcontroller 单片机 单片微型计算机 微控制器

    https://zh.wikipedia.org/wiki/单片机 单片机,全称单片微型计算机(英语:single-chip microcomputer),又称微控制器(microcontroller ...

  7. 痞子衡嵌入式:ARM Cortex-M内核那些事(2)- 第一款微控制器

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是第一款Cortex-M微控制器. 1.天生荣耀:ARM Cortex-M处理器由来 ARM公司自2004年推出ARMv7内核架构时,摒弃 ...

  8. ST推出新软件STM32Cube ,让STM32微控制器应用设计变得更容易、更快、更好用

    功能强大的STM32Cube 新软件平台由设计工具.中间件和硬件抽象层组成,让客户能够集中精力创新 意法半导体(STMicroelectronics,简称ST)针对STM32微控制器推出一套免费的功能 ...

  9. Arduino UNO仿真开发环境设置和仿真运行

    一. Proteus仿真平台简介 Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司).它不仅具有其它EDA工具软件 ...

随机推荐

  1. unity 真机调试

    [Unity3D]Android和ios真机调试测Profiler http://blog.csdn.net/swj524152416/article/details/53466413 Unity5. ...

  2. 想在java接口自动化里用上Python的requests?这样做就可以了

    相信现在很多的公司自动化测试重点都在接口层,因为接口测试更加接近代码底层,相对于UI自动化,接口自动化有着开发更快.覆盖更全.回报率高等优点. 接口自动化代码实现不难,本质上就是代码模拟发送请求,然后 ...

  3. 数据库的表的字段名称与实体类(pojo)不对应解决方案

    数据库的表的字段名称与实体类(pojo)不对应解决方案 数据库表 ![image-20200429130200825](C:%5CUsers%5C%E6%9E%97%E6%AD%A3%E6%98%8E ...

  4. Mybatis源码学习第六天(核心流程分析)之Executor分析

    今Executor这个类,Mybatis虽然表面是SqlSession做的增删改查,其实底层统一调用的是Executor这个接口 在这里贴一下Mybatis查询体系结构图 Executor组件分析 E ...

  5. 极简显示sessionid的jsp程序 war下载

    下载地址:https://files.cnblogs.com/files/xiandedanteng/simpleJspSessionId20200103.zip 解压后得到myweb.war就是可以 ...

  6. [Java数据结构]Map的contiansKey和List的contains比较

    Map的containskey方法使用哈希算法查找key是否存在,运算时间是常数: List的contains方法是将元素在列表中遍历,运算时间和列表长度有关. 我使用两种不同SQL语句获取两种不同类 ...

  7. Java SPI详细的例子

    先翻一个来自于Baeldung的介绍: 为了更通俗易懂我就没有直译,如果有不严谨的地方请大神指教. JavaSPI的定义 Java SPI defines four main components S ...

  8. JAVA热部署,通过agent进行代码增量热替换!!!

    在前说明:好久没有更新博客了,这一年在公司做了好多事情,包括代码分析和热部署替换等黑科技,一直没有时间来进行落地写出一些一文章来,甚是可惜,趁着中午睡觉的时间补一篇介绍性的文章吧. 首先热部署的场景是 ...

  9. C语言汇总3

    16-18 1.常量 整型常量:1: 2: 3: 实型常量(小数):单精度常量[3.14],双精度常量(默认情况下)[10.1f] 字符型常量 ' 5 ',只要在双引号的任意的唯一一个字符就为字符型常 ...

  10. 小白的springboot之路(十八)、i18n多语言支持(后端篇)

    0-前言 在有些系统中,比如网站,往往需要支持多国语言,英文版中文版什么的,这个其实也不难: 今天我们就来介绍spring boot中用i18n在后端支持多语言: 当然,也可以直接在前端用i18n直接 ...