Arduino介绍

官网链接 Arduino

Arduino是源自意大利的一个开放源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板以及一套程序开发环境软件。Arduino可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制电灯、电机和其他各式各样的物理设备;Arduino也可以开发出与PC相连的周边装置,能在运行时与PC上的软件进行通信。Arduino的硬件电路板可以自行焊接组装,也可以购买已经组装好的模块,而程序开发环境的软件则可以从网上免费下载并使用。

Arduino Uno引脚分配图

img
引脚 作用
0和1接口 串口输出输入(入门很少用到,如无必要尽量不用这两个接口)
2到13接口 可作为数字输入输出 (输出or输入,可自己定义) 其中带 ~ 符号的可作为模拟输出
A0到A5 模拟输入
GND 接地线
5V 输出5V电压
3.3V 输出3.3V电压
Vin 外部电源给arduino供电 ,电压要在7~12V之间
SCL与SDA I2c接口,初学者很少用

相关概念

  • 数字输入输出:只有0和1两种状态,表示开或关(高电平或低电平)
  • 模拟输入输出:就是将电信号转化为一系列数值,有一系列的量,如可设置灯泡百分之几的亮度,而不是只有开关。
  • 模拟输入:0-5V的电压转换为0-1023的整数来表示
  • 模拟输出:PWM (脉宽调制)输出 (0~255)
  • 高电平低电平:Arduino一般用的是5V的电压,超过3V就算是高电平,低于1.5V就是低电平啦,一般来说高电平就是5V上下,低电平就是指的0V。
  • PWM :(脉宽调制)输出,带PWM功能的引脚标有波浪线 ‘~’。
  • 拉高:给Arduino的引脚设定了模式之后,有时并未指定引脚的状态,引脚会悬空,状态忽高忽低,拉高就是说让引脚保持高电平的状态
  • 拉低:相反

Arduino Uno R3 - 详细参数

img

Arduino Uno R3 - 存储

Arduino的存储空间即是其主控芯片所集成的存储空间。也可以通过使用外设芯片的方式来扩展Arduino的存储空间。

  Arduino UNO的存储空间分三种:

  • Flash,容量为32 KB。其中0. 5 KB作为BOOT区用于储存引导程序,实现通过串口下载程序的功能;另外的31.5 KB作为用户储存程序的空间。相对于现在动辄几百GB的硬盘,可能觉得32 KB太小了,但是在单片机上,32 KB已经可以存储很大的程序了。
  • SRAM,容量为2 KB。SRAM相当于计算机的内存,当CPU进行运算时,需要在其中开辟一定的存储空间。当Arduino 断电或复位后,其中的数据都会丢失。
  • EEPROM,容量为1 KB。EEPROM的全称为电可擦写的可编程只读存储器,是一种用户可更改的只读存储器,其特点是在Arduino断电或复位后,其中的数据不会丢失。

Arduino Uno引脚分配 - 电源

  Arduino UNO可以通过3种方式供电:

  1、直流电源插孔

  可以使用直流电源插孔为Arduino开发板供电。电源插孔通常连接到一个适配器。

  开发板的供电范围可以是6-20V,但制造商建议将其保持在7-12V之间。高于12V时,稳压芯片可能会过热,低于7V可能会供电不足。

img

 2、VIN引脚

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

img

  3、USB接口

​ 连接到计算机时,提供500mA/5V电压。

所使用的供电方式决定了可用于电路的功率:

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

  电源引脚说明:

  img

  • VIN --- 可以通过此引脚向UNO供电;VIN有电时将忽略从USB或者其他引脚接入的电源
  • 5V --- 提供稳压的3.3V,为外部电子元件供电
  • 3.3V --- 提供稳压的3.3V,为外部电子元件供电
  • GND --- GND引脚与设备外壳相接(接地),用于闭合电路回路,并在整个电路中提供一个公共逻辑参考电平。

Arduino Uno引脚分配 - 数字引脚

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

需要注意的是:

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

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

img

数字电平意味着什么?

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

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

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

● 低于0.8v - 视为0。

● 高于2.0v - 视为1。

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

Arduino Uno引脚分配 - 模拟输入

img

Arduino uno r3 有6个模拟输入引脚(Analog In),可以用于接收模拟输入、用来测定0~5v的电压,但也可用作数字输入或数字输出。

  我们看到上图中每一个模拟输入引脚前面都标注了一个ADC,这是什么含义呢?这里就涉及到了模拟输入的原理。

ADC是什么?

ADC表示模拟到数字转换器。 ADC是用于将模拟信号转换为数字信号的电路。将输入的模拟信号通过ADC转换为数字信号,处理器才能对其进行处理。

  这里讲的模拟输入是指0 ~ 5v的电压值。在Arduino上,ADC具有10位分辨率,这意味着它可以通过1,024个数字电平表示模拟电压。相当于将连续的电压值0 ~ 5v映射到离散的数值0~1023。将0 ~ 5 V的电压分成1024份(210),算出来即为4.882mV的测量精度。即:0 ~ 4.882mV之间的电压值映射到数字0,4.883mV~9.764mV之间的电压值映射到数字1......

Arduino Uno引脚分配 - 关于模拟输出

Arduino控制板没有模拟输出引脚,但是数字引脚3、5、6、9、10、11具有PWM功能。

PWM是什么?

  脉冲宽带调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。

  PWM是一种对模拟信号电平进行数字编码的方法。

  PWM有两个关键组成部分:频率和占空比。频率决定了单个周期所用的时间。占空比 = 一个周期中高电平所占的时间/整个周期的时间。

  img

LED

  • ON:电源指示灯,灯亮时表示Arduino已经通电
  • TX:串口发送指示灯。当使用USB连接到计算机且Arduino向计算机传输数据时,TX灯会点亮。
  • RX:串口接收指示灯。当使用USB连接到计算机且Arduino接收到计算机传来的数据时,RX灯会点亮。
  • L:可编程控制指示灯。该LED通过特殊电路连接到Arduino的13 号引脚,当13号引脚为高电平或高阻态时,该LED 会点亮;当为低电平时,不会点亮。因此可以通过程序或者外部输入信号来控制该LED的亮灭。可以用来测试板子是否正常:如果运行Blink程序时,L灯一闪一闪说明板子是好的。

RESET

  按下该按键可以使Arduino重新启动,从头开始运行程序。

  复位引脚接低电平会使Arduino复位。当复位键被按下时,会使该端口接到低电平,从而使Arduino复位。

通信协议

串行(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(从选择)引脚确定主器件当前正在与哪个器件通信。

启用SPI的器件始终具有以下引脚:

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

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

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

I2C

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

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

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

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

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

参考链接

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

https://blog.csdn.net/chenhuanqiangnihao/article/details/113663176