> 文档中心 > arduino教程-01. Arduino 板的说明

arduino教程-01. Arduino 板的说明

目录

      • 1.1 课程说明
      • 1.2 器材
      • 1.3 UNO电路:
        • UNO参数
      • 1.4 详细内容:
      • 数字电平
        • Arduino Uno引脚 - 整体
        • Arduino Uno引脚 - 电源
        • Arduino Uno引脚 - 模拟输入
        • Arduino Uno引脚 - 数字引脚
      • 1.5 板载LED闪烁实验
        • 程序说明
        • Ps:
      • 1.6 补充阅读相关知识:
        • 1.6.1 模拟引脚
        • 1.6.2. 数字引脚
      • 1.7 wiki:

英文原版数据手册:https://store-usa.arduino.cc/products/arduino-uno-rev3/

1.1 课程说明

认识Arduino控制板的各个部分,

1.2 器材

名称 数量 规格
Arduino uno控制板 1 R3

1.3 UNO电路:

在这里插入图片描述

UNO参数

名称 参数说明
工作电压: 5V
输入电压: 接上USB时无须外部供电或外部7V~12V DC输入
输出电压: 5V DC输出和3.3V DC输出 和外部电源输入
微处理器: ATmega328
Bootloader: Arduino Uno
时钟频率: 16 MHz
输入电压(推荐): 7-12V
输入电压(限制): 6-20V
支持USB接口协议及供电(不需外接电源)
支持ISP下载功能
数字I/O端口: 14(6个PWM输出口)
模拟输入端口: 6
直流电流 I/O端口: 40mA
直流电流 3.3V端口: 50mA
Flash 内存: 32 KB (ATmega328) (0.5 KB用于引导程序)
SRAM : 2 KB (ATmega328)
EEPROM: 1 KB (ATmega328)
尺寸: 75x55x15mm

1.4 详细内容:

我们将了解Arduino板上的不同组件。将学习Arduino UNO板,因为它是Arduino板系列中最受欢迎的。此外,它是开始使用电子和编码的最佳板。有些板看起来与下面给出的有些不同,但多数Arduino中的这些组件大部分是共同的。
在这里插入图片描述

数字电平

数字是一种表示1位电压的方式:0或1。Arduino上的数字引脚是根据用户需求设计为输入或输出的引脚。数字引脚可以打开或关闭。开启时,它们处于5V的高电平状态,当关闭时,它们处于0V的低电平状态。
在Arduino上,当数字引脚配置为输出时,它们设置为0或5V。
当数字引脚配置为输入时,电压由外部设备提供。该电压可以在0-5V之间变化,并转换成数字表示(0或1)。为了确定这一点,有2个阈值:
● 低于0.8v - 视为0。
● 高于2.0v - 视为1。
将组件连接到数字引脚时,确保逻辑电平匹配。如果电压在阈值之间,则返回值将不确定。

引脚 说明
1.Power USB Arduino板可以通过使用计算机上的USB线供电。你需要做的是将USB线连接到USB接口。
2.Barrel Jack 电源(毫米中心正极插头);Arduino板可以通过将其连接到电影插口直接从交流电源供电。该板可在 6 至 20 伏的外部电源上运行。但是,如果提供的电压低于 7V,则 5V 引脚可能会提供低于 5V 的电压,并且电路板可能会变得不稳定。如果使用超过 12V 的电压,稳压器可能会过热并损坏电路板。推荐的范围是 7 到 12 伏
3.Voltage Regulator 稳压器;稳压器的功能是控制提供给Arduino板的电压,并稳定处理器和其他元件使用的直流电压。
4.Crystal Oscillator 晶体振荡器;晶振帮助Arduino处理时间问题。Arduino如何计算时间?答案是,通过使用晶体振荡器。在Arduino晶体顶部打印的数字是16.000H9H。它告诉我们,频率是16,000,000赫兹或16MHz。
5、17.Arduino Reset Arduino重置;;你可以重置你的Arduino板,例如从一开始就启动你的程序。可以通过两种方式重置UNO板。首先,通过使用板上的复位按钮(17)。其次,你可以将外部复位按钮连接到标有RESET(5)的Arduino引脚。
6、7、8、9.Pins 引脚(3.3,5,GND,Vin)
- • 3.3V(6) - 提供3.3输出电压,最大电流消耗为 50 mA
- • 5V(7) - 提供5输出电压,通过 5V 或 3.3V 引脚提供电压会绕过稳压器,并可能损坏您的电路板。我们不建议这样做。
- • 使用3.3伏和5伏电压,与Arduino板一起使用的大多数组件可以正常工作。
- • GND(8)(接地) -Arduino上有几个GND引脚,其中任何一个都可用于将电路接地。
- • Vin(9) -Arduino 板使用外部电源时的输入电压(与来自 USB 连接或其他稳压电源的 5 伏相反)。您可以通过此引脚提供电压,或者,如果通过电源插孔提供电压,则通过此引脚访问它。
10.Analog pins 模拟引脚 Arduino UNO板有六个模拟输入引脚,A0到A5。这些引脚可以从模拟传感器(如湿度传感器或温度传感器)读取信号,并将其转换为可由微处理器读取的数字值。
11.Main microcontroller 微控制器 每个Arduino板都有自己的微控制器(11)。你可以假设它作为板的大脑。Arduino上的主IC(集成电路)与板对板略有不同。微控制器通常是ATMEL公司的。在从Arduino IDE加载新程序之前,你必须知道你的板上有什么IC。此信息位于IC顶部。有关IC结构和功能的更多详细信息,请参阅数据表。
12.ICSP pin ICSP引脚 大多数情况下,ICSP(12)是一个AVR,一个由MOSI(Master Output,Slave Input),MISO(Master Input, Slave Output),SCK(Serial Clock),RESET,VCC和GND组成的Arduino的微型编程头。在这里插入图片描述arduino教程-01. Arduino 板的说明

它通常被称为SPI(Serial Peripheral Interface,串行外设接口),可以被认为是输出的“扩展”。实际上,你是将输出设备从属到SPI总线的主机。SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。

13.Power LED indicator 电源LED指示灯 当你将Arduino插入电源时,此LED指示灯应亮起,表明你的电路板已正确通电。如果这个指示灯不亮,那么连接就出现了问题。
14.TX and RX LEDs TX和RX LED 在你的板上,你会发现两个标签:TX(发送)和RX(接收)。它们出现在Arduino UNO板的两个地方。首先,在数字引脚0和1处,指示引脚负责串行通信。其次,TX和RX LED(13)。发送串行数据时,TX LED以不同的速度闪烁。闪烁速度取决于板所使用的波特率。RX在接收过程中闪烁。
15.Digital I/O 数字I/O Arduino UNO板有14个数字I/O引脚(15)(其中6个提供PWM(脉宽调制)输出),这些引脚可配置为数字输入引脚,用于读取逻辑值(0或1);或作为数字输出引脚来驱动不同的模块,如LED,继电器等。标有“〜”的引脚可用于产生PWM。
16.AREF AREF AREF代表模拟参考。它有时用于设置外部参考电压(0至5伏之间)作为模拟输入引脚的上限。

Arduino Uno引脚 - 整体

在这里插入图片描述

Arduino Uno引脚 - 电源

在这里插入图片描述

Arduino Uno引脚 - 模拟输入

在这里插入图片描述

Arduino Uno引脚 - 数字引脚

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

需要注意的是:
● 每个引脚可提供/接收最高40 mA的电流。但推荐的电流是20毫安
● Uno 上的 14 个数字引脚中的每一个都可以用作输入或输出,每个引脚可以提供或接收 20 mA 作为推荐的工作条件,并具有 20-50k ohm 的内部上拉电阻(默认断开)。最大 40mA 是任何 I/O 引脚上不得超过的值,以避免对微控制器造成永久性损坏
在这里插入图片描述

1.5 板载LED闪烁实验

arduino上有一个名称为L的led发光二级管,这个led其实是连接在13号引脚上的,所以我们通过控制13号引脚就能够控制此led灯闪烁。
下面我们来看程序源码

  /*     作者:智芯坊     时间:年    月    日     发表地址:     程序说明:     使一个Led亮一秒,灭一秒,如此往复。   */  void setup() { // 初始化数字引脚,使其为输出状态。      // 大部分Arduino控制板上,数字13号引脚都有一颗Led。      pinMode(13, OUTPUT);} void loop() {      digitalWrite(13, HIGH);   // 使Led亮      delay(1000);// 持续1秒钟      digitalWrite(13, LOW);    // 使Led灭      delay(1000);// 持续1秒钟。  }

程序说明

  1. 首先打开Arduino 1.8.5 IDE,我们把代码输入。

  2. 然后选择控制板型号,本次实验使用的是arduino兼容控制板,选择为arduino uno即可。

  3. 然后选择端口号,本次实验为COM7端口,一般为列表最后一个。

  4. 然后点击编译,编译完成后,会在左下方提示。编程成功后,就可以点击下载了。下载完成后,也会在左下方提示。

Ps:

  1. 所有Arduino程序都是由参数设置(setup)和循环(loop)两个函数组成,函数名后面一定跟着小括号;大括号({})用于界定程序区块的范围
  2. 若要指挥Arduino控制某个数字引脚的元器件,必须先把引脚设置成“输出(output)”模式,若是要接收来自传感器的输入值,则要把该引脚设置成“输入(input)”模式。Arduino的每个数字和模拟引脚都能输出“高电位”和低电位信号
  3. 注释(comment):是程序中的说明文字,语法:
    //: 放在说明文字的前方;单行注释
    /* …… */:多行注释。

1.6 补充阅读相关知识:

1.6.1 模拟引脚

本文是对于Arduino芯片上模拟引脚的介绍。上面所说的Arduino芯片主要包括(Atmega8, Atmega168,Atmega328或Atmega1280)。

  1. 数模转换电路
    Arduino中使用的Atmega控制器都配有一个板载6通道数模转换器,这个转换器的精度为10bit,能够返回0-1023的整数。尽管模拟引脚的主要功能是读取模拟信号,但是实际上和0-13号数字引脚一样,模拟引脚也可以进行INPUT、OUTPUT操作(GPIO)。因此,如果你在做项目时需要更多的数字引脚,那么模拟引脚也可用作GPIO操作。
  • 引脚编号
    A0、A1、A2、A3……就是模拟引脚的编号。你可以用这个编号让模拟引脚输出高电平或低电平。下面的例子会将A0口设置为输出模式,并且输出高电平:
pinMode(A0, OUTPUT);digitalWrite(A0, HIGH);
  1. 上拉电阻
    模拟引脚也有和数字引脚一样的内置上拉电阻。通过下列代码激活模拟引脚内部的上拉电阻。
    digitalWrite(A0, HIGH); // 将上拉电阻激活。(这与普通的输入引脚有点区别)
    但是激活了上拉电阻后,再用analogRead()的话,读出的值会受到影响。
  2. 一些额外需注意的细节
    如果一个引脚已经被设置成为OUTPUT模式,analogRead函数就不能够正常工作。因此,如果要将模拟引脚当做数字引脚并且设置了OUTPUT模式,请在调用analogRead前将这个模拟引脚重新定义为INPUT模式。
    如上所述,如果你将模拟引脚定为输出模式并且输出了HIGH,那么它内部的上拉电阻就会被激活。如果这时候再转为INPUT,那么上拉电阻将依然工作着。(因此,你需要先设置为LOW,再转换为INPUT,才能够获得正确结果。)
    从Atmega的数据手册中,我们可以知道:如果要在模拟引脚上进行快速的电平切换,会导致电子噪声。这会给模电转换模块带来“抖动”,从而影响到其他引脚上的模拟信号值读取。因此,你需要在将模拟引脚进行电平操作切换后使用后用delay函数进行一小段时间的延迟,然后再使用analogRead()去读取其他引脚上的模拟信号。

1.6.2. 数字引脚

Arduino上的引脚可以被设置为输入模式(INPUT)或输出模式(OUTPUT)。甚至很多Arduino (Atmega单片机)上的模拟引脚也可以被当做数字引脚使用。本篇文章将介绍引脚在两种不同模式(INPUT和OUTPUT)下的功能。

  1. INPUT模式
    Arduino (Atmega) 引脚默认是输入模式(INPUT)因此在程序中一般你不需要特别指定为INPUT模式。处在INPUT模式的引脚将处于高阻抗状态(high-impedance)(相当于引脚串接了一个100兆欧的电阻),因而它对于电路几乎没有任何影响。数字引脚可以被用来读取触碰开关、把LED当做以光电二极管读取,或者使用RCTime来读取模拟信号传感器。
    然而,使用pinMode(pin, INPUT)配置的引脚在没连接到任何电路上时(处于悬空状态),从引脚读出的结果可能会“乱跳”。这是因为引脚收到了电子噪声的干扰,或者由于电容耦合读取了附近引脚的值。
  2. INPUT模式引脚的上拉电阻
    一般来说,我们希望在输入引脚悬空时保持一个稳定的状态。这可以通过加一个上拉电阻(上拉到+5V)或加一个下拉电阻(下拉到GND)来实现。上拉电阻或下拉电阻一般选用10kΩ电阻比较合适。
  3. 使用INPUT_PULLUP对输入引脚进行配置
    在Atmega芯片中每个输入引脚都对应着一个20kΩ的上拉电阻,你可以通过代码去使这些内置上拉电阻发挥作用(只需在pinMode函数中传入INPUT_PULLUP函数作为参数即可) 。使用上拉电阻会“反转”读取结果,当读取到HIGH的时候说明引脚上为低电压,当读取到LOW时说明引脚上是高电压。
    不同微控制器内置上拉电阻的阻值大小也不尽相同。在大多数AVR板中,上拉电阻用的是20kΩ到50kΩ。而在Arduino Due中,上拉电阻用的是50kΩ到150kΩ。如果你想知道你板子上内置上拉电阻的确切阻值,请参阅微控制器的数据手册。
    当传感器连接到用INPUT_PULLUP常量配置的引脚时,传感器的另一端应该被连接到GND。假如你将一个开关连接到这个引脚上,当开关断开时将会读到HIGH,闭合时读到LOW。
    上拉电阻的电流足够让LED微微亮起,所以如果你发现在自己的项目中,LED虽然在工作,但是亮度很微弱,一般就说明你将引脚错误地设置为了INPUT模式。
    在单片机内部,上拉电阻是用一个寄存器(单片机的一块记忆区域)控制的,这个寄存器又同时控制引脚是高电平(HIGH)还是低电(LOW)。基于这个原因,如果你将一个INPUT_PULLUP的输入引脚重新配置成OUTPUT的话,它会立即输出高电平。相反,如果你将一个正在输出高电平的OUTPUT引脚重新配置为INTPUT,它会自动将上拉电阻打开。
    在Arduino 1.0.1之前可以用以下代码配置内部上拉电阻:
pinMode(pin, INPUT); // 将引脚设置为INPUT模式digitalWrite(pin, HIGH); // 打开引脚的上拉电阻

而目前应该这样写

pinMode(pin,INPUT_PULLUP);

特别提示: 13号引脚相比其他引脚来说不适宜配置为INPUT模式,因为在绝大多数板上,它连着一个板载LED。如果你激活13号引脚上的上拉电阻,它只能拉到1.7V而非你所期望的5V,因为LED分走了电压。而由于一直不满5V,从13号引脚上读出的结果总是LOW。如果你非要将13号引脚设置为INPUT模式,请外加一个下拉电阻。
4. OUTPUT模式
OUTPUT模式的引脚在工作时是低阻抗的,也就是说OUTPUT模式的引脚能够给外部电路提供可靠的电流支持。Atmega引脚最高可以为外部设备提供40mA的电流。这个电流完全足够点亮LED(别忘记串接电阻,否则甚至会烧掉你的LED)或者驱动绝大多数传感器。不过别指望用它去直接驱动大多数继电器、螺线管或者电机。
让Arduino的引脚短路,或者让大电流通过都可能会损坏内部晶体管或损坏Atmega芯片。如果第一种情况发生,你会发现虽然Arduino貌似工作正常,但是那个损坏的引脚已经无法工作了。因此,最好在外围串接470Ω到1kΩ的电阻,来确保外电路总电流小于等于40mA,除非如果你的电路确实需要比较高的电流,否则就最好进行限流。

1.7 wiki:

  1. void: 只用在函数声明中。它表示该函数将不会被返回任何数据到它被调用的函数中。
  2. setup():当Arduino板起动时setup()函数会被调用。用它来初始化变量,引脚模式,开始使用某个库,等等。该函数在Arduino板的每次上电和复位时只运行一次。
  3. loop():可以用它来实时控制arduino板。
  4. pinMode():
    void pinMode (uint8_t pin, uint8_t mode)
     设置引脚模式
     配置引脚为输出或输出模式。
    参数:
     pin 引脚编号
     mode: INPUT, OUTPUT, 或 INPUT_PULLUP。
    例子:
  5. pinMode(ledPin, OUTPUT); // sets the digital pin as output
    注解:
    模拟引脚也可以当作数字引脚使用, 编号为14(对应模拟引脚0)到19(对应模拟引脚5).
    digitalWrite()
    void digitalWrite (uint8_t pin, uint8_t value)
     写数字引脚
     写数字引脚, 对应引脚的高低电平. 在写引脚之前, 需要将引脚设置为OUTPUT模式.
    参数:
     pin 引脚编号
     value HIGH 或 LOW
    用法:
  6. digitalWrite(ledPin, HIGH); // 点亮LED
    注解:
     模拟引脚也可以当作数字引脚使用, 编号为14(对应模拟引脚0)到19(对应模拟引脚5).
    delay(ms)
    void delay (unsigned long ms)
     延时(毫秒)
     延时, 单位毫秒(1秒有1000毫秒).
    警告:
    参数为unsigned long, 因此在延时参数超过32767(int型最大值)时, 需要用"UL"后缀表示为无符号 长整型, 例如: delay(60000UL);. 同样在参数表达式, 切表达式中有int类型时, 需要强制转换为 unsigned long类型, 例如:
  7. delay((unsigned long)tdelay * 100UL);