Arduino知识集锦
Arduino整理学习笔记

而当使用write()函数时,Arduino发送的是数值本身。
但是串口监视器接收到数据后,会将数值当做ASCLL码而显示其对应的字符。
总而言之,print是转换成ASCLL码才能发出去,就相当于中间介质。
而write是直接发送数据,不需要中间介质。
#define led1 9#define led2 8char val = '1';void setup() {Serial.begin(9600);pinMode(led1,OUTPUT);pinMode(led2,OUTPUT);}void loop() {if(Serial.available())val = Serial.read();if(val == '9'){digitalWrite(led1,HIGH);delay(1000);}elsedigitalWrite(led1,LOW);if(val == '8'){digitalWrite(led2,HIGH);delay(1000);}elsedigitalWrite(led2,LOW);}蓝牙模块:void setup(){Serial.begin(9600);}void loop(){while(Serial.available()){char c=Serial.read();if(c=='A'){Serial.println("Hello I am amarino");}}}2018.10.30下午建立多个软串口://主机程序#include <SoftwareSerial.h> SoftwareSerialportOne(2, 3); SoftwareSerialportTwo(4, 5);int mark,mark1;void setup(){Serial.begin(9600);while (!Serial){ }portOne.begin(9600);portTwo.begin(9600);}void loop(){//监听1号软串口portOne.listen();if(portOne.available()){Serial.println("Data from port one:"); delay(500); mark=1;}if(mark==1){int inByte1 = portOne.read();delay(2);Serial.println(inByte1);delay(1000);mark=0;}//监听2号软串口portTwo.listen();if(portOne.available()){Serial.println("Data from port two:"); delay(500);mark1=1;}if(mark1==1){int inByte2 = portOne.read();delay(2);Serial.println(inByte2);delay(1000);mark=0;}}//从机程序int i=9;void setup(){Serial.begin(9600);pinMode(13,OUTPUT);}void loop() {Serial.write(i); delay(1000);}。
arduino从零开始学

第1章进入Arduino的世界欢迎来到Arduino的世界!Arduino是一个开源的开发平台,在全世界范围内成千上万的人正在用它开发制作一个又一个电子产品,这些电子产品包括从平时生活的小物件到时下流行的3D打印机,它降低了电子开发的门槛,即使是从零开始的入门者也能迅速上手,制作有趣的东西,这便是开源Arduino的魅力。
通过本书的介绍,读者对Arduino会有一个更全面的认识。
本章知识点:Arduino的起源与发展Arduino的特点Arduino开发板简介Arduino的未来展望什么是Arduino什么是Arduino相信很多读者会有这个疑问,也需要一个全面而准确的答案。
不仅是读者,很多使用Arduino的人也许对这个问题都难以给出一个准确的说法,甚至认为手中的开发板就是Arduino,其实这并不准确。
那么,Arduino究竟该如何理解呢1.1.1 Arduino不只是电路板Arduino是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器[1]和相应的开发软件,目前在国内正受到电子发烧友的广泛关注。
自从2005年Arduino腾空出世以来,其硬件和开发环境一直进行着更新迭代。
现在Arduino已经有将近十年的发展历史,因此市场上称为Arduino 的电路板已经有各式各样的版本了。
Arduino开发团队正式发布的是Arduino Uno和Arduino Mega 2560,如图1-1和图1-2所示。
图1-1 Arduino Uno R3图1-2 Arduino Mega 2560 R3图1-1和图1-2所示的开发板就是所谓的Arduino I/O印刷电路板(Printed Circuit Board, PCB)。
Arduino项目起源于意大利,该名字在意大利是男性用名,音译为“阿尔杜伊诺”,意思为“强壮的朋友”,通常作为专有名词,在拼写时首字母需要大写。
其创始团队成员包括:Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti 6人。
Arduino快速入门必学

Thank you 谢谢收看!
硬件特性介绍
Arduino语言
Arduino语言实际上是把AVR单片机底层控制代 码使用C语言函数化
1、常量:
HIGH|LOW 表示数字IO口的电平,HIGH表示高电平(1), LOW表示低电平(0) INPUT|OUTPUT 表示数字IO口的方向,INPUT表示输入 (高阻态),OUTPUT表示输出(AVR能提供5V电压 40mA 电流)
案例:串口通讯
char word; void setup() { Serial.begin(9600); // 打开串口,设置波特率为 9600 bps } void loop() { if (Serial.available() > 0) //判断串口缓冲器是否有数据装入 { word = Serial.read(); //读取串口 if(word=='a') //判断输入的字符是否为 a { Serial.print("Robot "); //从串口发送字符串 Serial.println("is NO.1"); //从串口发送字符串并换行 }}}
2、结构: void setup() 初始化变量,管教模式,调用库函数等 void loop()连续执行函数内的语句
Arduino 函数
1、数字I/O
pinMode(pin,mode)数字IO口输入输出模式定义函数 (mode:input/output)
digitalWrite(pin,value)数字IO口输出电平 (value:high/low)
案例:PWM 使 PIN11 脚上的 LED 逐渐变亮逐渐变暗。
int ledPin = 11; // 设定控制 LED 的数字 IO 脚 int val; //定义一个变量
Arduino编程知识学习大全(中册)

6.3 驱动LED点阵
O 6.3.1 LED点阵显示表情 O 6.3.2 LED点阵跑马灯 O 6.3.3 回纹灯 O 6.3.4 矩形回缩灯
6.3.1 LED点阵显示表情
6.3.2 LED点阵跑马灯
O 在6.3.5小节中实现了由三个LED组成的简 易跑马灯,在本节就在8*8的LED点阵上来 实现跑马灯。这个示例的电路不需要改动, 我们直接编写对应的程序就可以了。
6.4 使用74HC595驱动 LED
O 6.4.1 74HC595使用方式 O 6.4.2 使用74HC595驱动LED点阵
6.4.1 74HC595使用方式
O 74HC595是一个CMOS(Complementary Metal-Oxide-Semiconductor)器件
6.4.2 使用74HC595驱动LED点 阵
O pinMode(pin,mode)
6.2.1 使用数字针脚点亮LED
O 由于数字针脚只能输出高电压和低电压, 因此在不借用其他元件的情况下只可以点 亮或者熄灭LED。
1.电路图
2.程序
O int pin=10;
//指定LED连接的针脚
O void setup(){ O pinMode(pin,OUTPUT);//设置针脚模式为输出 O digitalWrite(pin,HIGH);//设置针脚输出电压
寄存器地址
D15~D12 X X X X X X X X X
D11 D10
0
0
0
0
0
0
0
0
0
1
1
1
0
D9 D8
0
0
0
1
1
0
1
1
Arduino结构类单词本

位非 位左移 位右移 自加 自减 复合加 复合减 复合乘 复合除 复合与 复合或
读音 /vɪˈdoʊt/ /ˈsetɪp/
/luːp/ /ɪf/ /els/ /swɪtʃ kæɪs/ /waɪl/ /doʊ ... waɪl/ /breɪk/ /kənˈtɪnjuː/ /rɪˈtɜːn/ 分号 大括号 双斜杠 斜杠星 /dɪˈfaɪn/ /ɪnˈkluːd/ 等于号 加号 减号 乘号 除号 百分号 双等号 叹号等于 小于号 大于号 小于等于 大于等于 双与号 双竖线 叹号 与号 竖线 次方号
类别1 类别2 基础
控制
进阶语 法
算术运 算符 结构类 关系运 算符
布尔运 算符
位运算 符
语句 void setup loop
if else switch case while do...while break continue return
; {} // /**/ #define #include = + * / % == != < > <= >= && || ! & | ^
Arduino语句学习笔记
译文 无 设置、安装、配置 循环 如果 否则 条件开关 当…时 做…当… 打破 继续 返回 无 无 无 无 为...下定义 把...列为一部分 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无 无
位运算
符
~
波浪
无
<<
双小于号
无
>>
双大于号
无
++
双加号
无
--
双减号
无
+=
加等于
arduino学习笔记.pdf

arduino 学习笔记arduino 学习笔记 1 - 什么是 arduino?要了解arduino就先要了解什么是单片机,arduino平台的基础就是AVR 指令集的单片机。
1、什么是单片机?它与个人计算机有什么不同?一台能够工作的计算机要有这样几个部份构成:中央处理单元CPU (进行运算、控制)、随机存储器RAM(数据存储)、存储器ROM(程序存储)、输入/输出设备I/O(串行口、并行输出口等)。
在个人计算机(PC)上这些部份被分成若干块芯片,安装在一个被称之为主板的印刷线路板上。
而在单片机中,这些部份全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如模拟量/数字量转换(A/D)和数字量/模拟量转换(D/A)等。
2、单片机有什么用?实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用酷睿处理器吗?应用的关键是看是否够用,是否有很好的性能价格比。
如果一台冰箱都需要用酷睿处理起来进行温度控制,那价格就是天价了。
单片机通常用于工业生产的控制、生活中与程序和控制有关(如:电子琴、冰箱、智能空调等)的场合。
下图就是一个Atmega328P-PU单片机,基于AVR指令集的8位处理器,频率20MHz,存储器空间32KB。
什么是 Arduino?Arduino 是一个能够用来感应和控制现实物理世界的一套工具。
它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。
Arduino 可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。
Arduino 项目可以是单独的,也可以在运行时和你电脑中运行的程序(例如:Flash,Processing,MaxMSP)进行通讯。
Arduino板你可以选择自己去手动组装或是购买已经组装好的;Arduino开源的IDE可以免费下载得到。
Arduino语法详解_含示例详解

Arduino语法详解_含⽰例详解Arduino 的程序可以划分为三个主要部分:结构、变量(变量与常量)、函数。
结构部分⼀、结构1.1 setup()1.2 loop()⼆、结构控制2.1 if2.2 if...else2.3 for2.4 switch case2.5 while2.6 do... while2.7 break2.8 continue2.9 return2.10 goto三、扩展语法3.1 ;(分号)3.2 {}(花括号)3.3 //(单⾏注释)3.4 /* */(多⾏注释)3.5 #define3.6 #include四、算数运算符4.1 =(赋值运算符)4.2 +(加)4.3 -(减)4.4 *(乘)4.5 /(除)4.6 %(模)五、⽐较运算符5.1 ==(等于)5.2 !=(不等于)5.3 <(⼩于)5.4 >(⼤于)5.5 <=(⼩于等于)5.6 >=(⼤于等于)六、布尔运算符6.1 &&(与)6.2 ||(或)6.3 !(⾮)七、指针运算符7.1 * 取消引⽤运算符7.2 & 引⽤运算符⼋、位运算符8.1 & (bitwise and)8.2 | (bitwise or)8.3 ^ (bitwise xor)8.4 ~ (bitwise not)8.5 << (bitshift left)8.6 >> (bitshift right)九、复合运算符9.1 ++ (increment)9.2 -- (decrement)9.3 += (compound addition)9.4 -= (compound subtraction)9.5 *= (compound multiplication)9.6 /= (compound division)9.6 &= (compound bitwise and)9.8 |= (compound bitwise or)变量部分⼗、常量10.1 HIGH|LOW(引脚电压定义)10.2 INPUT|OUTPUT(数字引脚(Digital pins)定义)10.3 true | false(逻辑层定义)10.4 integer constants(整数常量)10.5 floating point constants(浮点常量)⼗⼀、数据类型11.1 void11.2 boolean(布尔)11.3 char(有号数据类型)11.4 unsigned char(⽆符号数据类型)11.5 byte(⽆符号数)11.6 int(整型)11.7 unsigned int(⽆符号整型)11.8 word11.9 long(长整数型)11.10 unsigned long(⽆符号长整数型)11.11 float(浮点型数)11.12 double(双精度浮点数)11.13 string(char array/字符串)11.14 String object(String类)11.15 array (数组)⼗⼆、数据类型转换12.1 char()12.2 byte()12.3 int()12.4 word()12.5 long()12.6 float()⼗三、变量作⽤域 & 修饰符13.1 variable scope(变量的作⽤域)13.2 static(静态变量)13.3 volatile13.4 const⼗四、辅助⼯具14.1 sizeof()函数部分⼗五、数字 I/O15.1 pinMode()15.2 digitalWrite()15.3 digitalRead()⼗六、模拟 I/O16.1 analogReference() 16.2 analogRead()16.3 analogWrite() PWM ⼗七、⾼级 I/O17.1 tone()17.2 noTone()17.3 shiftOut()17.4 shiftIn()17.5 pulseIn()⼗⼋、时间18.1 millis()18.2 micros()18.3 delay()18.4 delayMicroseconds()⼗九、数学运算19.1 min()19.2 max()19.3 abs()19.4 constrain()19.5 map()19.6 pow()19.7 sqrt()19.8 ceil()19.9 exp()19.10 fabs()19.11 floor()19.12 fma()19.13 fmax()19.14 fmin()19.15 fmod()19.16 ldexp()19.17 log()19.18 log10()19.19 round()19.20 signbit()19.21 sq()19.22 square()19.23 trunc()⼆⼗、三⾓函数20.1 sin()20.2 cos()20.3 tan()20.4 acos()20.5 asin()20.6 atan()20.7 atan2()20.8 cosh()20.9 degrees()20.10 hypot()20.11 radians()20.12 sinh()20.13 tanh()⼆⼗⼀、随机数21.1 randomSeed()21.2 random()⼆⼗⼆、位操作22.1 lowByte()22.2 highByte()22.3 bitRead()22.4 bitWrite()22.5 bitSet()22.6 bitClear()22.7 bit()⼆⼗三、设置中断函数23.1 attachInterrupt()23.2 detachInterrupt()⼆⼗四、开关中断24.1 interrupts()(中断)24.2 noInterrupts()(禁⽌中断)⼆⼗五、通讯25.1 Serial25.1.1 if (Serial)25.1.2 Serial.available()25.1.3 Serial.begin()25.1.4 Serial.end()25.1.5 Serial.find()25.1.6 Serial.findUntil()25.1.7 Serial.flush()25.1.8 Serial.parseFloat()25.1.9 Serial.parseInt()25.1.10 Serial.peek()25.1.11 Serial.print()25.1.12 Serial.println()25.1.13 Serial.read()25.1.14 Serial.readBytes()25.1.15 Serial.readBytesUntil()25.1.16 Serial.setTimeout()25.1.17 Serial.write()25.1.18 Serial.SerialEvent()25.2 Stream⼆⼗六、USB(仅适⽤于 Leonardo 和 Due)26.1 Mouse(键盘)26.2 Keyboard(⿏标)以下是⽰例部分含详细注解结构部分⼀、结构1.1 setup()在Arduino中程序运⾏时将⾸先调⽤ setup() 函数。
Arduino编程基础入门

Arduino编程基础入门第一章:什么是Arduino?Arduino是一种开源电子平台,它由一个硬件部分和一个软件部分组成。
Arduino硬件包括一个可以编程的微控制器,用于控制各种电子元件的操作。
Arduino软件则是用于编写和上传程序到Arduino硬件的集成开发环境(IDE)。
第二章:Arduino的组成部分Arduino板上有一个微控制器,这是Arduino的核心部分。
该微控制器可以通过Arduino IDE进行编程,并通过与电脑的连接来上传程序。
Arduino板上还有一些输入和输出引脚,可以连接各种传感器和执行器。
此外,Arduino板还包括一个供电接口和一个USB 接口。
第三章:Arduino的编程语言Arduino使用一种基于C++的编程语言,它简单易学,适合初学者。
与其他编程语言相比,Arduino的编程语言具有一些专门为微控制器开发设计的特性,如控制引脚、延时函数等。
通过编写程序,可以实现与各种外部设备的交互。
第四章:Arduino的开发环境Arduino开发环境(IDE)是一个用于编写、上传和调试Arduino程序的软件工具。
它提供了一个简单直观的界面,使得编程变得容易上手。
通过IDE,用户可以创建新的程序、编辑现有的程序,并将程序上传到Arduino板上。
IDE还提供了错误检查、调试功能等。
第五章:Arduino的基本语法Arduino的基本语法与C++类似,包括函数、变量、运算符等。
在编写Arduino程序时,需要了解一些基本的语法规则,如注释、变量声明、控制结构等。
掌握这些基本语法是学习Arduino编程的重要一步。
第六章:Arduino的输入与输出Arduino的输入输出是其最基本的功能之一。
通过连接各种传感器和执行器,可以实现与外部环境的交互。
例如,可以通过连接一个温度传感器来读取环境温度,并通过连接一个LED灯来控制其亮灭。
学习如何使用不同的输入输出引脚是使用Arduino的关键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#Arduino 语法setup() 初始化函数loop() 循环体函数控制语句类似于C//if if...else for switch case while do... while break continue return got o扩展语法类似于C//;(分号) {}(花括号) //(单行注释) /* */(多行注释) #define #include算数运算符类似于C//=(赋值运算符) +(加) -(减) *(乘) /(除) %(模)比较运算符类似于C//==(等于) !=(不等于) <(小于) >(大于) <=(小于等于) >=(大于等于)布尔运算符类似于C//&&(与) ||(或) !(非)指针运算符类似于C//* 取消引用运算符 & 引用运算符位运算符类似于C& (bitwise and) | (bitwise or) ^ (bitwise xor) ~ (bitwise not) << (bitshift left) >> (bit shift right)复合运算符类似于C++ (increment) -- (decrement) += (compound addition) -= (compound subtraction) *= (compound multiplication) /= (compound division) &= (compound bitwise and) |= (c ompound bitwise or)常量constants 预定义的常量BOOL true false引脚电压定义,HIGH和LOW【当读取(read)或写入(write)数字引脚时只有两个可能的值: HIGH 和 LOW 】HIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或OUTPUT时含义有所不同。
当一个引脚通过pinMode被设置为INPUT,并通过digitalRead读取(read)时。
如果当前引脚的电压大于等于3V,微控制器将会返回为HIGH。
引脚也可以通过pinMode被设置为INPUT,并通过digitalWrite设置为HIGH。
输入引脚的值将被一个内在的20K上拉电阻控制在HIGH上,除非一个外部电路将其拉低到LOW。
当一个引脚通过pinMode被设置为OUTPUT,并digitalWrite设置为HIGH时,引脚的电压应在5V。
在这种状态下,它可以输出电流。
例如,点亮一个通过一串电阻接地或设置为LOW的OUTPUT属性引脚的LED。
LOW的含义同样取决于引脚设置,引脚定义为INPUT或OUTPUT时含义有所不同。
当一个引脚通过pinMode配置为INPUT,通过digitalRead设置为读取(read)时,如果当前引脚的电压小于等于2V,微控制器将返回为LOW。
当一个引脚通过pinMode配置为OUTPUT,并通过digitalWrite设置为LOW时,引脚为0V。
在这种状态下,它可以倒灌电流。
例如,点亮一个通过串联电阻连接到+5V,或到另一个引脚配置为OUTPUT、HIGH的的LED。
数字引脚(Digital pins)定义,INPUT和OUTPUT【数字引脚当作 INPUT 或 OUTPUT都可以。
用pinMode()方法使一个数字引脚从INPUT到OUTPUT变化】Arduino(Atmega)引脚通过pinMode()配置为输入(INPUT)即是将其配置在一个高阻抗的状态。
配置为INPUT的引脚可以理解为引脚取样时对电路有极小的需求,即等效于在引脚前串联一个100兆欧姆(Megohms)的电阻。
这使得它们非常利于读取传感器,而不是为LED 供电。
引脚通过pinMode()配置为输出(OUTPUT)即是将其配置在一个低阻抗的状态。
这意味着它们可以为电路提供充足的电流。
Atmega引脚可以向其他设备/电路提供(提供正电流positive current)或倒灌(提供负电流negative current)达40毫安(mA)的电流。
这使得它们利于给LED供电,而不是读取传感器。
输出(OUTPUT)引脚被短路的接地或5V 电路上会受到损坏甚至烧毁。
Atmega引脚在为继电器或电机供电时,由于电流不足,将需要一些外接电路来实现供电。
整数常量进制例子格式备注10(十进制) 123 无2(二进制) B1111011 前缀'B' 只适用于8位的值(0到255)字符0-1有效8(八进制) 0173 前缀”0”字符0-7有效16(十六进制) 0x7B 前缀”0x”字符0-9,A-F,A-F有效小数是十进制数。
这是数学常识。
如果一个数没有特定的前缀,则默认为十进制。
二进制以2为基底,只有数字0和1是有效的。
'u' or 'U' 指定一个常量为无符号型。
(只能表示正数和0)例如: 33u'l' or 'L' 指定一个常量为长整型。
(表示数的范围更广)例如: 100000L'ul' or 'UL' 这个你懂的,就是上面两种类型,称作无符号长整型。
例如:32767ul浮点常量浮点数被转换为被转换为10.0 102.34E5 2.34 * 10^5 23400067E-12 67.0 * 10^-12 0.000000000067数据类型类似于Cvoid boolean char unsigned char byte int unsigned int wordlong unsigned long float double string - char array String - object array -(数组)数据类型转换类似于Cchar() byte() int() word() long() float()word()把一个值转换为word数据类型的值,或由两个字节创建一个字符。
word(x)word(h, l)参数X:任何类型的值H:高阶(最左边)字节L:低序(最右边)字节修饰符类似于Cstatic volatile const辅助工具sizeof()数字 I/OpinMode()将指定的引脚配置成输出或输入【pinMode(pin, mode) pin:要设置模式的引脚 mode:INPUT 或OUTPUT】例子:ledPin = 13 // LED连接到数字脚13void setup(){pinMode(ledPin,OUTPUT); //设置数字脚为输出}void loop(){digitalWrite(ledPin,HIGH); //点亮LEDdelay(1000); // 等待一秒digitalWrite(ledPin, LOW); // 灭掉LEDdelay(1000); //等待第二个}digitalWrite()给一个数字引脚写入HIGH或者LOW。
如果一个引脚已经使用pinMode()配置为OUTPUT模式,其电压将被设置为相应的值,HIGH 为5V(3.3V控制板上为3.3V),LOW为0V。
如果引脚配置为INPUT模式,使用digitalWrite()写入HIGH值,将使内部20K上拉电阻(详见数字引脚教程)。
写入LOW将会禁用上拉。
上拉电阻可以点亮一个LED让其微微亮,如果LED工作,但是亮度很低,可能是因为这个原因引起的。
补救的办法是使用pinMode()函数设置为输出引脚。
注意:数字13号引脚难以作为数字输入使用,因为大部分的控制板上使用了一颗LED与一个电阻连接到他。
如果启动了内部的20K上拉电阻,他的电压将在1.7V左右,而不是正常的5V,因为板载LED串联的电阻把他使他降了下来,这意味着他返回的值总是LOW。
如果必须使用数字13号引脚的输入模式,需要使用外部上拉下拉电阻。
digitalRead()digitalRead(PIN)【pin:你想读取的引脚号(int),返回 HIGH 或 LOW】例子:ledPin = 13 // LED连接到13脚int inPin = 7; // 按钮连接到数字引脚7int val = 0; //定义变量存以储读值void setup(){pinMode(ledPin, OUTPUT); // 将13脚设置为输出pinMode(inPin, INPUT); // 将7脚设置为输入}void loop(){val = digitalRead(inPin); // 读取输入脚digitalWrite(ledPin, val); //将LED值设置为按钮的值}模拟 I/OanalogReference()analogReference(type)配置用于模拟输入的基准电压(即输入范围的最大值)。
选项有:DEFAULT:默认5V(Arduino板为5V)或3.3伏特(Arduino板为3.3V)为基准电压。
INTERNAL:在ATmega168和ATmega328上以1.1V为基准电压,以及在ATmega8上以2.56V 为基准电压(Arduino Mega无此选项)INTERNAL1V1:以1.1V为基准电压(此选项仅针对Arduino Mega)INTERNAL2V56:以2.56V为基准电压(此选项仅针对Arduino Mega)EXTERNAL:以AREF引脚(0至5V)的电压作为基准电压。
type:使用哪种参考类型(DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, 或者 EXTERNAL)改变基准电压后,之前从anal??ogRead()读取的数据可能不准确。
不要在AREF引脚上使用使用任何小于0V或超过5V的外部电压。
如果你使用AREF引脚上的电压作为基准电压,你在调用analogRead()前必须设置参考类型为EXTERNAL。
否则,你将会削短有效的基准电压(内部产生)和AREF引脚,这可能会损坏您Arduino板上的单片机。
另外,您可以在外部基准电压和AREF引脚之间连接一个5K电阻,使你可以在外部和内部基准电压之间切换。
请注意,总阻值将会发生改变,因为AREF引脚内部有一个32K电阻。
这两个电阻都有分压作用。
所以,例如,如果输入2.5V的电压,最终在在AREF引脚上的电压将为2.5 * 32 /(32 + 5)= 2.2V。
analogRead()从指定的模拟引脚读取数据值。
Arduino板包含一个6通道(Mini和Nano有8个通道,Mega有16个通道),10位模拟数字转换器。