温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Arduino教程:认识Arduino控制板

发布时间:2020-06-21 22:21:27 来源:网络 阅读:1098 作者:acktomas 栏目:编程语言

Arduino教程:认识Arduino控制板

1.1 课程说明

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

1.2 器材

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

1.3 UNO电路:

Arduino教程:认识Arduino控制板

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中的这些组件大部分是共同的。 Arduino教程:认识Arduino控制板

引脚 说明
1.Power USB Arduino板可以通过使用计算机上的USB线供电。你需要做的是将USB线连接到USB接口。
2.Barrel Jack 电源(桶插座);Arduino板可以通过将其连接到电影插口直接从交流电源供电。
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输出电压
- • 5V(7) - 提供5输出电压
- • 使用3.3伏和5伏电压,与Arduino板一起使用的大多数组件可以正常工作。
- • GND(8)(接地) -Arduino上有几个GND引脚,其中任何一个都可用于将电路接地。
- • Vin(9) -此引脚也可用于从外部电源(如交流主电源)为Arduino板供电。
10.Analog pins 模拟引脚 Arduino UNO板有六个模拟输入引脚,A0到A5。这些引脚可以从模拟传感器(如湿度传感器或温度传感器)读取信号,并将其转换为可由微处理器读取的数字值。
11.Main microcontroller 微控制器 每个Arduino板都有自己的微控制器(11)。你可以假设它作为板的大脑。Arduino上的主IC(集成电路)与板对板略有不同。微控制器通常是ATMEL公司的。在从Arduino IDE加载新程序之前,你必须知道你的板上有什么IC。此信息位于IC顶部。有关IC结构和功能的更多详细信息,请参阅数据表。
12.ICSP pin ICSP引脚 <br>大多数情况下,ICSP(12)是一个AVR,一个由MOSI(Master Output,Slave Input),MISO(Master Input, Slave Output),SCK(Serial Clock),RESET,VCC和GND组成的Arduino的微型编程头。Arduino教程:认识Arduino控制板Arduino教程:认识Arduino控制板<p>它通常被称为SPI(Serial Peripheral Interface,串行外设接口),可以被认为是输出的“扩展”。实际上,你是将输出设备从属到SPI总线的主机。SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。</p>
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伏之间)作为模拟输入引脚的上限。

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 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);
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI