Arduino知识集锦
- 格式:docx
- 大小:35.94 KB
- 文档页数:19
而当使用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);}。
第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 学习笔记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 的程序可以划分为三个主要部分:结构、变量(变量与常量)、函数。
结构部分⼀、结构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硬件的集成开发环境(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的关键。
[Arduino]基础知识官⽹什么是 Arduino 的 bootloader?在arduino的板⼦上,作为核⼼的avr单⽚机往往都会烧录⼀个bootloader,这个叫做bootloader的东东其实是arduino研发团队针对arduino板⼦开发的⼀⼩段代码,借助于这段代码,我们可以在不⽤外部烧录⼯具的情况下来把我们⾃⼰的代码下载到AVR单⽚机中。
为了使⼀些朋友更容易理解,不妨打个⽐⽅,bootloader类似于我们电脑中的windows操作系统,⽽我们的代码则类似于运⾏于windows上的各种程序。
⼀般⽽⾔,arduino板的卖家都会把每块板的bootloader都烧好后再出售,这样买家直接收到板后就能够把⾃⼰在arduinoIDE中编写的程序借助PC的USB⼝来下载到arduino单⽚机内。
当然,下载bootloader是需要借助于外部下载器的,可⽀持的下载器不少,基中⽐较具有性价⽐的是usbtinyisp,在淘宝上很多店家都有出售,⽐如易捷机器⼈电路的价格就只有38元。
对于⼀般⽤户,因为在下载⾃⼰代码的时候偶尔会出现破坏bootloader的情况,就像PC的windows系统突然之间崩溃了⼀样。
这时候,就会需要⽤外部下载器来恢复这个bootloader,就相当于PC重装系统。
Arduino 中 serial.available() 和 serial.read() 的使⽤?Serial.available() 指返回串⼝缓冲区中当前剩余的字符个数。
⼀般⽤这个函数来判断串⼝的缓冲区有⽆数据,当Serial.available()>0时,说明串⼝接收到了数据,可以读取。
Serial.read() 指从串⼝的缓冲区取出并读取⼀个Byte的数据。
⽐如有设备通过串⼝向Arduino发送数据了,我们就可以⽤Serial.read()来读取发送的数据。
典型的⽤法如下:while (Serial.available()>0){data = Serial.read();delay(2);}上⾯代码的意思就是,当串⼝接收到数据时(上⾯Serial.available()>0这句),反复读取串⼝的数据并赋值给data (上⾯data= Serial.read()这句),直到数据读完(即Serial.available()=0的时候)。
Arduino 是一款价格不高、易于使用的电子平台。
包括硬件和软件在内的整个平台是完全开源的,并且使用的是松散地基于C/C++ 的语言。
Arduino 是为希望尝试创建交互式物理对象的实践者、喜欢创造发明的人以及艺术家构建的。
这个三部分系列将从基本的Arduino 硬件开始,并使用它创建名为“'Duino tag”的交互式激光游戏,玩家可以使用几乎从头开始构建的设备玩tag 游戏。
在“构建基于Arduino 的激光游戏”的第1 部分中,我们将构思作为'Duino tag 的一部分的基本预备试验。
开始之前无论您是Arduino 新手还是经验丰富的构建者,此项目都有适合您的内容。
没有比创建交互式物理对象更令人满意的事情了,因为在需要中断或者需要修改时,您知道所有部件的位置以及所有部件的工作原理。
'Duino tag 枪是适合独立完成或与朋友共同完成的优秀项目。
要完成此项目,您至少应当基本了解电子学(您应当知道寄存器是什么,但是不必知道其中的深奥原理)并且了解编程(您应当知道循环和变量是什么,但是您不必解析Big O Notation)。
您可以勇敢地进行动手实践。
关于本系列在本系列中,我们将使用Arduino 技术来创建名为'Duino tag 的基本交互式激光游戏:∙第1 部分:了解一些Arduino 基础知识,布置项目,并且做一个帮助您了解红外线工作原理的实验。
∙第2 部分:构建和测试'Duino tag 枪的接收器部分,包括测试。
∙第3 部分:构建发送器并完成'Duino tag 枪。
关于本教程要继续学习本教程,您无需具有任何电子学工作经验,尽管使用电子元件的经验肯定对您有用。
对于微控制器经验也是如此。
如果您使用过微控制器,则有一定的优势,但是记住Arduino 平台非常适合没有相应经验的人员。
首先,您应当愿意拓展自己的技能。
使用电子器件和微控制器会是一种有益的经验。
#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位模拟数字转换器。