文档库 最新最全的文档下载
当前位置:文档库 › arduino mega 2560 串口

arduino mega 2560 串口

arduino mega 2560 串口
arduino mega 2560 串口

arduino mega 2560 串口

2560的串口一共有4个,分别对应数字接口0-1,18-19,16-17,14-15所有串口都可以跟pc通信,但只有0-1是跟板子上的usb2ttl连接,只有0-1是可以用来下载程序的,即使购买了usb2ttl的线,在0-1以外的串口也不能用来下载,除非修改bootloader将蓝牙模块接在14-15上(注意蓝牙的rx、tx跟板子上的rx、tx要反接)程序里面可以用serial3.read()等类似操作程序里面serial操作0-1,serial1操作18-19,serial2操作16-17,serial3操作14-15这样使用usb线下载程序同时可以用蓝牙接收数据到电脑上。

串口通讯中最重要的一点就的通讯协议,一般串口通讯协议都会有波特率、数据位、停止位、校验位等参数。大家不会设置也不用怕,Arduino语言中Serial.begin()函数就能使大家轻松完成设置,我们只需要改变该函数的参数即可,例如Serial.begin(9600),则表示波特率为9600bit/s(每秒比特数bps),其余参数默认即可。

Arduino语言中还提供了Serial.available() 判断串口缓冲器状态、Serial.read()读串口、Serial.print()串口发送及Serial.println()带换行符串口发送四个函数。

下面用一段代码来演示这些函数的用途。无须外围电路,只需要将下载的USB 线连接即可。

char word;

void setup()

{

Serial.begin(9600); // 打开串口,设置波特率为9600 bps

}

void loop()

{

if (Serial.available() > 0) //判断串口缓冲器是否有数据装入

{

word = Serial.read();//读取串口

if(word=='a')//判断输入的字符是否为a

{

Serial.print("DFRobot ");//从串口发送字符串

Serial.println("is NO.1");//从串口发送字符串并换行

}

}

}

编译下载完程序后,点红圈里的按钮,打

开串口监视器;

选择串口监视器的波特率为

9600bps,在发送框里填上字母a,

点send发送,下面的显示框里就会

显示返回的数据,如果发送的是字

母a,则显示字符串,否则无返回。

Arduino 语法手册函数部分

Arduino 语法手册函数部分 摘自:函数部分 数字 I/O pinMode() 描述 将指定的引脚配置成输出或输入。详情请见digital pins。 语法 pinMode(pin, mode) 参数 pin:要设置模式的引脚 mode:INPUT或OUTPUT 返回 无 例子 ledPin = 13 语法 noTone(pin) 参数 pin: 所要停止产生声音的引脚 返回 无 shiftOut() shiftOut() 描述 将一个数据的一个字节一位一位的移出。从最高有效位(最左边)或最低有效位(最右边)开始。依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。 注意:如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin, LOW)。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 语法 shiftOut(dataPin, clockPin, bitOrder, value) 参数 dataPin:输出每一位数据的引脚(int)

clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 value: 要移位输出的数据(byte) 返回 无 shiftIn() 描述 将一个数据的一个字节一位一位的移入。从最高有效位(最左边)或最低有效位(最右边)开始。对于每个位,先拉高时钟电平,再从数据传输线中读取一位,再将时钟线拉低。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 语法 shiftIn(dataPin,clockPin,bitOrder) 参数 dataPin:输出每一位数据的引脚(int) clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 返回 读取的值(byte) pulseIn() 描述 读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位微秒。如果在指定的时间内无脉冲函数返回。 此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒) 语法 pulseIn(pin, value) pulseIn(pin, value, timeout) 参数 pin:你要进行脉冲计时的引脚号(int)。 value:要读取的脉冲类型,HIGH或LOW(int)。 timeout (可选):指定脉冲计数的等待时间,单位为微秒,默认值是1秒(unsigned long)返回 脉冲长度(微秒),如果等待超时返回0(unsigned long) 例子 int pin = 7; unsigned long duration;

Arduino编程语言

Arduino编程参考手册 首页 程序结构变量基本函数

程序结构 (本节直译自Arduino官网最新Reference) 在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数: setup() 当Arduino板起动时setup()函数会被调用。用它来初始化变量,引脚模式,开始使用某个库,等等。该函数在Arduino板的每次上电和复位时只运行一次。 loop() 在创建setup函数,该函数初始化和设置初始值,loop()函数所做事的正如其名,连续循环,允许你的程序改变状态和响应事件。可以用它来实时控制arduino板。 示例:

控制语句 if if,用于与比较运算符结合使用,测试是否已达到某些条件,例如一个输入数据在某个范围之外。使用格式如下: 该程序测试value是否大于50。如果是,程序将执行特定的动作。换句话说,如果圆括号中的语句为真,大括号中的语句就会执行。如果不是,程序将跳过这段代码。大括号可以被省略,如果这么做,下一行(以分号结尾)将成为唯一的条件语句。

圆括号中要被计算的语句需要一个或多个操作符。 if...else 与基本的if语句相比,由于允许多个测试组合在一起,if/else可以使用更多的控制流。例如,可以测试一个模拟量输入,如果输入值小于500,则采取一个动作,而如果输入值大于或等于500,则采取另一个动作。代码看起来像是这样:

else中可以进行另一个if测试,这样多个相互独立的测试就可以同时进行。每一个测试一个接一个地执行直到遇到一个测试为真为止。当发现一个测试条件为真时,与其关联的代码块就会执行,然后程序将跳到完整的if/else结构的下一行。如果没有一个测试被验证为真。缺省的else语句块,如果存在的话,将被设为默认行为,并执行。 注意:一个else if语句块可能有或者没有终止else语句块,同理。每个else if分支允许有无限多个。

ARDUINO入门及其简单实验7例

ARDUINO入门及其简单实验(7例) (1) 1. Arduino硬件开发平台简介 (1) 1.1 Arduino的主要特色 (2) 1.2 Arduino的硬件接口功能描述 (3) 1.3 Arduino的技术性能参数 (3) 1.4 电路原理图 (4) 2. Arduino软件开发平台简介 (5) 2.1 菜单栏 (5) 2.2 工具栏 (6) 2.3 Arduino 语言简介 (6) 3. Arduino开发实例中所用部分器件 (8) 1. LED简介 (8) 2. 光敏电阻简介 (9) 3. 直流电机简介 (9) 4. 电位器简介 (10) 4. Arduino平台应用开发实例 (10) 4.1【实作项目一】利用LED作光敏电阻采样实验 (10) 4.2【实作项目二】利用PWM信号控制LED亮度 (12) 4.3【实作项目三】单键控制一只LED的亮灭 (15) 4.4【实作项目四】利用PWM控制直流电机转速 (17) 4.5【实作项目五】利用电位器手控LED亮度 (19) 4.6【实作项目六】控制LED明暗交替 (21) 4.7【实作项目七】利用光敏电阻控制LED的亮灭 (23) ARDUINO入门及其简单实验(7例) 1. Arduino硬件开发平台简介 Arduino硬件是一块带有USB的I/O接口板(其中包括13条数字I/O引脚,6通道模拟输出,6通道模拟输入),并且具有类似于Java、C语言的集成开发环境。Arduino 既可以扩展一些外接的电子元器件,例如开关、传感器、LED、直流马达、步进马达或其他输入、输出装置;Arduino也可以独立运行,成为一个可以跟交互软件沟通的接口装置,例如:Flash、Processing、Max/MSP、VVVV或其他互动软件。Arduino 开发环境IDE全部开放源代码,可以供大家免费下载、利用,还可以开发出更多激发人们制作欲望的互动作品。

第十五课 Arduino 教程-- Arduino IO函数

第十五课Arduino I/O函数 Arduino板上的引脚可以配置为输入或输出。我们将在这些模式下解释引脚的功能。重要的是要注意,大多数Arduino模拟引脚可以按照与数字引脚完全相同的方式进行配置和使用。 引脚配置为INPUT Arduino引脚默认配置为输入,因此在使用它们作为输入时,不需要使用 pinMode()显式声明为输入。以这种方式配置的引脚被称为处于高阻抗状态。输入引脚对采样电路的要求非常小,相当于引脚前面的100兆欧的串联电阻。 这意味着将输入引脚从一个状态切换到另一个状态所需的电流非常小。这使得引脚可用于诸如实现电容式触摸传感器或读取LED作为光电二极管的任务。 被配置为pinMode(pin,INPUT)的引脚(没有任何东西连接到它们,或者有连接到它们而未连接到其他电路的导线),报告引脚状态看似随机的变化,从环境中拾取电子噪音或电容耦合附近引脚的状态。 上拉电阻 如果没有输入,上拉电阻通常用于将输入引脚引导到已知状态。这可以通过在输入端添加上拉电阻(到5V)或下拉电阻(接地电阻)来实现。10K电阻对于上拉或下拉电阻来说是一个很好的值。 使用内置上拉电阻,引脚配置为输入 Atmega芯片内置了2万个上拉电阻,可通过软件访问。通过将pinMode()设置为INPUT_PULLUP可访问这些内置上拉电阻。这有效地反转了INPUT模式的行为,其中HIGH表示传感器关闭,LOW表示传感器开启。此上拉的值取决于所使用的微控制器。在大多数基于AVR的板上,该值保证在20kΩ和50kΩ之间。在Arduino Due上,它介于50kΩ和150kΩ之间。有关确切的值,请参考板上微控制器的数据表。 当将传感器连接到配置为INPUT_PULLUP的引脚时,另一端应接地。在简单开关的情况下,这会导致当开关打开时引脚变为高电平,当按下开关时引脚为低电平。上拉电阻提供足够的电流来点亮连接到被配置为输入的引脚的LED。如果项目中的LED似乎在工作,但很昏暗,这可能是发生了什么。 控制引脚是高电平还是低电平的相同寄存器(内部芯片存储器单元)控制上拉电阻。因此,当引脚处于INPUT模式时,配置为有上拉电阻导通的引脚将被开启;如果引脚通过

Arduino BLE 函数库中文

备注: Arduino Function: BLEPeripheral.connected() (缺失) Arduino BLE 函数库 描述 蓝牙低功耗(BLE)协议从蓝牙规范版本4.0开始。虽然以前的规范只允许制作一种无线UART,但该版本允许更智能的资源使用。结果是适用于大多数具有限制能量需求的芯片的低功率通信。BLE协议由多个角色组成。BLE节点可以作为外设,中央,广播和观察者。 广播角色周期性地发送具有数据的广告包。它不支持建立连接。理论上,广播机构的角色可以用于仅发射机的无线电。 观察者角色收听来自广播对等体的广告数据包中嵌入的数据。 中心是能够建立到对等体的多个连接的设备。中心角色始终是连接的发起者,并且基本上允许设备进入网络。 外设使用广告包来允许中心找到它,并且随后建立与之的连接。BLE协议经过优化,至少在处理能力和内存方面要求极少的外设实现资源。 中央和外围设备不得与客户端和服务器错误。他们之间没有联系。中央和外围设备可以是客户机,服务器或两者,具体取决于应用

数据结构 BLE数据结构分层组成。属性是定义的最小数据实体。属性被分组到服务中,每个服务可以包含零个或多个特征。这些特征又可以包括零个或多个描述符。 每个服务,特征和描述符都由UUID标识。 通用唯一标识符(UUID)是保证(或具有高概率)的全局唯一的128位(16字节)数字。您可以定义自己的UUID或使用标准的UUID。 每个属性都可以有权限。 权限是指定可以对每个特定属性执行哪些操作以及具体安全要求的元数据。 广告包(广播包) 广告包是周边中心知道可用的方式。在广告包中有关于外设的主要信息。广告包长度为31字节,并且必须符合减少内部有效信息数量的特定格式。如果中心想要进一步的信息,它可以发送一个扫描请求来请求另一个称为扫描响应的数据包,以便拥有其他31字节的信息。如果您没有足够的数据传输,并且31字节(或62个最终)广告数据包就足够了,您可以实现广播者角色并传输数据,而无需建立连接。如果您有更多的数据要传输,则必须执行外设角色进行传输。 有关广告包的进一步信息可以在此链接中找到,其中包含对此参数的基本介绍。 更多信息 在本节中,我们尝试简要介绍BLE标准。然而,BLE标准比这更广泛。如果你想加深一些争论,那里是链接到BLE标准规范: https://https://www.wendangku.net/doc/d98698685.html,/specifications/bluetooth-core-specification 有关BLE的其他有用信息及其在nRF52上的工作方式可以在北欧半导体网站上找到:https://https://www.wendangku.net/doc/d98698685.html,/index.jsp 北欧还提供了一个有用的应用程序,通过BLE与您的板进行交互。使用此应用程序可以读写特性并调试BLE通信: https://https://www.wendangku.net/doc/d98698685.html,/eng/Products/Nordic-mobile-Apps/nRF-Connect-for -mobile-previously-called-nRF-Master-Control-Panel 相关功能

arduino语法手册函数部分

; Arduino 语法手册函数部分 摘自:函数部分 数字 I/O pinMode() 描述 将指定的引脚配置成输出或输入。详情请见digital pins。 语法 pinMode(pin, mode) # 参数 pin:要设置模式的引脚 mode:INPUT或OUTPUT 返回 无 例子 ledPin = 13 语法 … noTone(pin) 参数 pin: 所要停止产生声音的引脚 返回 无 shiftOut() shiftOut() ) 描述 将一个数据的一个字节一位一位的移出。从最高有效位(最左边)或最低有效位(最右边)开始。依次向数据脚写入每一位,之后时钟脚被拉高或拉低,指示刚才的数据有效。 注意:如果你所连接的设备时钟类型为上升沿,你要确定在调用shiftOut()前时钟脚为低电平,如调用digitalWrite(clockPin, LOW)。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定

脚有效。 语法 shiftOut(dataPin, clockPin, bitOrder, value) 参数 dataPin:输出每一位数据的引脚(int) clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 value: 要移位输出的数据(byte) ^ 返回 无 shiftIn() 描述 将一个数据的一个字节一位一位的移入。从最高有效位(最左边)或最低有效位(最右边)开始。对于每个位,先拉高时钟电平,再从数据传输线中读取一位,再将时钟线拉低。 注意:这是一个软件实现;Arduino提供了一个硬件实现的SPI库,它速度更快但只在特定脚有效。 语法 《 shiftIn(dataPin,clockPin,bitOrder) 参数 dataPin:输出每一位数据的引脚(int) clockPin:时钟脚,当dataPin有值时此引脚电平变化(int) bitOrder:输出位的顺序,最高位优先或最低位优先 返回 读取的值(byte) pulseIn() 描述 《 读取一个引脚的脉冲(HIGH或LOW)。例如,如果value是HIGH,pulseIn()会等待引脚变为HIGH,开始计时,再等待引脚变为LOW并停止计时。返回脉冲的长度,单位微秒。如果在指定的时间内无脉冲函数返回。 此函数的计时功能由经验决定,长时间的脉冲计时可能会出错。计时范围从10微秒至3分钟。(1秒=1000毫秒=1000000微秒) 语法 pulseIn(pin, value) pulseIn(pin, value, timeout) 参数

Arduino常用函数精编版

(1)pinMode(接口名称,OUTPUT或INPUT),将指定的接口定义为输入或输出接口,用在setup()函数里。 (2)digitalWrite(接口名称,HIGH(高)或LOW(低)),将数字输入输出接口的数值置高或置低。 (3)digitalRead(接口名称),读出数字接口的值,并将该值作为返回值。 (4)analogWrite(接口名称,数值),给一个模拟接口写入模拟值(PWM脉冲)。数值取值0-255。 (5)analogRead(接口名称),从指定的模拟接口读取数值,Arduino对该模拟值进行数字转换,这个方法将输入的0~5V电压值 转换为0~1023间的整数值,并将该整数值作为返回值。 (6)delay(时间),延时一段时间,以毫秒为单位,如1000为1秒。 (7)Serial.begin(波特率),设置串行每秒传输数据的速率(波特率)。在与计算机进行通讯时,可以使用下面这些值:300、1200、2400、4800、9600、14400、19200、28800、38400、57600或115200,一般9600、57600和115200比较常见。除此之外还可以使用其他需要的特定数值,如与0号或1号引脚通信就需要特殊的波特率。该函数用在setup()函数里。 Serial.available() 的意思是:返回串口缓冲区中当前剩余的字符个数。一般用这个函数来判断串口的缓冲区有无数据,当Serial.available()>0时,说明串口接收到了数据,可以读取;

Serial.read()指从串口的缓冲区取出并读取一个Byte的数据,比如有设备通过串口向Arduino发送数据了,我们就可以用Serial.read()来读取发送的数据。 while(Serial.available()>0) { data= Serial.read(); delay(2); } (8)Serial.read(),读取串行端口中持续输入的数据,并将读入的数据作为返回值。 (9)Serial.print(数据,数据的进制),从串行端口输出数据。Serial.print(数据)默认为十进制,相当于Serial.print(数据,十进制)。 (10)Serial.println(数据,数据的进制),从串行端口输出数据,有所不同的是输出数据后跟随一个回车和一个换行符。但是该函数所输出的值与Serial.print()一样。 常用函数 数字I/O类: pinMode(pin,mode)数字IO口输入输出模式定义函数,将接口定义为输入或输出接口。

arduino函数学习笔记

Arduino程序的主函数main在内部就已经定义了,所以只需void setup()和void loop().前者用于初始化在程序开头设置引脚的输入输出模式,初始化串口,执行一次。loop是死循环,是执行程序。 函数pinMode()有两个参数pin和mode, pin参数表示所要配置的引脚,mode 表示设置的模式INPUT或OUTPUT. arduino板上的模拟引脚亦可作数字引脚用,A0~A5对应数字14~19 digitalWrite()两个参数,pin表示设置的引脚(须设置为OUTPUT模式),value 表示输出的电压HIGH或LOW,此函数作用是设置引脚输出的电压为高或低。 digitalRead()一个参数,pin***(须设置为INPUT模式),用来获取引脚的电压情况HIGH或LOW. 若引脚没有连接到任何地方,那么随机返回高或低。 analogReference(type) analogRead(pin) 用于读取引脚的模拟电压值,返回值int 范围0~1023,pin 只能是6模拟接口。 analogWrite(pin,value)在指定引脚上输出一个模拟量,应用在LED灯亮度控制,电机转速控制。无返回值。Value表示PWM输出的占空比。范围0~255 shiftOut(dataPin,clockPin,bitOrder,val)无返回值能够将数据通过串行的方式在引脚上输出 shiftIn(datapin,clockPin,bitOrder)通过串行的方式在引脚上读入数据。 pulseIn(pin,state,timeout) 此函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或LOW。如果是HIGH,函数先将引脚变为高电平,在开始计时,一直到变为低电平为止,返回脉冲持续时间长短,单位MS,如果超时还未读到,将返回0. 函数返回值为unsigned long ,3个参数分别表示脉冲输入的引脚,脉冲响应的状态(高或低)和超时时间。 millis()函数可以获得机器运行的时间长度,单位ms.系统最长的时间为9小时22分,如果超出时间将从0开始,返回值unsigned long 型,无参数。 delay()延时函数单位MS 无返回值 delayMicroseconds ()延时函数,参数单位是微秒 数学库: min(x,y): #define min(a,b) (a)<(b))? (a):(b) max(x,y):#define max(a,b) (a)>(b))?(a):(b) abs(x)取绝对值 constrain(amt,low,high)取三个数中的中间值 map(x,in_min,in_max,out_min,out_max)函数将[in_min,in_max]范围内的x等比映射到[out_min,out_max]范围内,函数返回值为long 三角函数sin(rad),cos(rad),tan(rad)返回值为double randomSeed()函数用来设置随机数种子,随机数种子的设置对产生的随机数序列有影响,函数无返回值 random(howsmall,howbig)应用此函数可以产生随机数两个参数是随机数的范围,参数及返回值类型均是long 中断函数

Arduino基础知识

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 提供了使用交互式设备的低成本入口点。 本教程是“构建基于Arduino 的激光游戏”三部分系列的第1 部分,将主要介绍Arduino 基础知识。我们将开始使用Arduino,了解语言基础知识和API。我们将为'Duino tag 项目做准备,包括设计基础和整合部件列表。我们将了解如何在线订购部件、去哪里购买以及需要哪些部件。最后,使用一些采购的元件和一些基本测试代码,我们将演示控制枪械操作的基本原理 统要求 对于本教程,我们需要一些工具和设备: 具有USB 端口的计算机 虽然从技术的角度来说并不合适(许多类型的Arduino 硬件接口都是基 于旧式串行端口的),但是本系列在撰写时假定您使用的是基于USB 进行通信的模型。Arduino 软件可用于Microsoft? Windows?、Mac OS X 和Linux?(32 位和AMD 64 位)。 Arduino Diecimila 这是本教程中使用的Arduino 硬件的具体模型。您可以替换Arduino

arduino函数

writeMicroseconds() 描述 写入一个微秒(uS)的值给伺服,相应地控制轴。在标准伺服上,这将设定轴的角度。在标准舵机上,1000的参数值完全是逆时针的,2000是完全顺时针的,1500是中间的。 请注意,有些制造商并不严格遵循这一标准,因此伺服系统经常会对700和2300之间的值作出响应。随意增加这些端点,直到伺服不再继续增加其范围。但是请注意,试图驱动一个伺服超过它的端点(通常用咆哮的声音表示)是一个高电流状态,应该避免。 连续旋转伺服将以类似于写入功能的方式响应writeMicrosecond 函数。 句法 servo.writeMicroseconds(uS) 参数 servo:伺服类型的变量 uS:以微秒(int)为单位的参数值 例 #include 伺服myservo; void setup() { myservo.attach(9); myservo.writeMicroseconds(1500); //设置伺服到中点 } void loop(){}

attach() 描述 将伺服变量连接到一个引脚。请注意,在Arduino 0016及更早版本中,伺服库仅支持两个引脚:9和10。 句法 servo.attach(pin) servo.attach(pin, min, max) 参数 伺服:伺服类型的变量 引脚:伺服器所连接的引脚号 min(可选):脉冲宽度(以微秒为单位),对应于伺服的最小(0度)角度(默认为544)max(可选):脉冲宽度(以微秒为单位),对应于伺服的最大(180度)角度(默认为2400) 例 #include 伺服myservo; void setup() { myservo.attach(9); } void loop(){}

arduino参考手册中文

Arduino编程参考手册 程序结构 (5) 控制语句 (6) if (6) if...else (6) for (6) switch case (6) while (7) do...while .. (7) break (7) continue (7) return (7) goto (7) 相关语法 (7) 分号 (7) 大括号 (7) 注释 (7) define (7) include (7) 算术运算符 (7) 赋值 (7) 加,减,乘,除 (7) 取模 (7) 比较运算符 (7) if(条件) and ==, !=, <, > (比较运算符) (7) 布尔运算符 (7)

指针运算符 (8) 位运算 (8) 位与 (8) 位或 (8) 位异或 (9) 位非 (9) 左移、右移 (9) 复合运算符 (10) 自加++ (10) 自减-- (10) 复合加+= (10) 复合减-= (10) 复合乘*= (10) 复合除/= (10) 复合与&= (10) 复合或|= (10) 变量 (10) 常量 (10) 宏定义 (10) 整型常量 (11) 浮点数常量 (11) 数据类型 (12) void (12) boolean (12) char (12) unsigned char (12) byte (12)

unsigned int (12) word (12) long (12) unsigned long (12) float (12) double (13) string (13) String(c++) (13) array (13) 数据类型转换 (13) char() (13) byte() (13) int() (13) word() (13) long() (13) float() (13) 变量作用域&修饰符 (13) 变量作用域 (13) static (静态变量) (13) volatile (易变变量) (13) const (不可改变变量) (13) 辅助工具 (13) sizeof() (sizeof运算符) (13) ASCII码表 (13) 基本函数 (14) 数字I/O (15)

arduino基础-函数(arduino基础-函数).doc

arduino基础-函数(arduino基础-函数) Input output function Arduino contains a switching function of some processing input and output, is believed to have the book from a program example? PinMode (pin, mode) Specifies the digital foot (digital, pin) as input or output? Example: PinMode (7, INPUT); / / pin 7 is set as input mode DigitalWrite (pin, value) Specifies the number of pins to be on or off. The pin must first be passed through the pinMode as input or output mode, and the digitalWrite will take effect? Example: DigitalWrite (8, HIGH) ; / / set the high potential output pin 8 Int digitalRead (PIN) Read the value of the input pin and return HIGH when it is sensed that the foot is at high potentia 1. Otherwise, it will return LOW. Example:

arduino基本函数

关键字: if if...else for switch case while do... while break continue return goto 语法符号: ; {} // /* */ 运算符: = + - * /

% == != < > <= >= && || ! ++ -- += -= *= /= 数据类型: boolean 布尔类型 char 字符类型 byte 字节类型 int 整数类型 unsigned int 无符号整型

long 长整型 unsigned long 无符号长整型 float 实数类型 double stri ng array void 常量: HIGH | LOW 表示数字IO 口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。 INPUT | OUTPUT 表示数字IO 口的方向,INPUT 表示辒入(高阻态),OUTPUT 表示 辒出(AVR能提供5V电压 40mA电流)。 true | false true 表示真(1),false表示假(0)。 具体使用可以结合实验的程序 1、声明变量及接口名称(int val;int ledPin=13;)。 2、setup()——函数在程序开始时使用,可以初始化变量、接口模式、启用库等(例如:pinMode(ledPin,OUTUPT);)。 3、loop()——在setup()函数之后,即初始化之后,loop() 让你的程序循环地被执行。使用它来运转Arduino。 接下来就开始学习一下几个基本函数。

1、pinMode(接口名称,OUTPUT或INPUT)将——接口定义为输入或输出接口,用在setup()函数里。 2、digitalWrite(接口名称, HIGH或LOW)——将数字接口值至高或低。 3、digitalRead(接口名称)——读出数字接口的值。 4、analogWrite(接口名称, 数值)——给一个接口写入模拟值(PWM波)。对于ATmega168芯片的Arduino(包括Mini或BT),该函数可以工作于3, 5, 6, 9, 10和11号接口。老的ATmega8芯片的USB和serial Arduino仅仅支持9, 10和11号接口。 5、analogRead(接口名称)——从指定的模拟接口读取值,Arduino对该模拟值进行10-bit 的数字转换,这个方法将输入的0-5电压值转换为0到1023间的整数值。 6、delay()——延时一段时间,delay(1000)为一秒。 7、Serial.begin(波特率)——设置串行每秒传输数据的速率(波特率)。在同计算机通讯时,使用下面这些值:300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600或115200。你也可以在任何时候使用其它的值,比如,与0号或1号插口通信就要求特殊的波特率。用在setup()函数里 8、Serial.read()——读取持续输入的数据。 9、Serial.print(数据,数据的进制)——从串行端口输出数据。Serial.print(数据)默认为十进制等于Serial.print(数据,DEC)。 10、Serial.println(数据,数据的进制)——从串行端口输出数据,跟随一个回车和一个换行符。这个函数所取得的值与Serial.print()一样。 以上几个函数是常用基本函数,还有很多以后会慢慢学习 逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式。逻辑运算符有4个,它们分别是:!(逻辑非)、||(逻辑或)、&&(逻辑与)^(异或)。在位运算里面还有&(位与)、|(位或)的运算。 “<<”代表左移运算符(就相当于'shl')。该运算符为双目运算符,结合方向为从左到右,作用是把一个整型数的所有位向左移动指定的位数,移动到左边界之外的多余二进制位会被丢弃,并从右边界移入0。

arduino学习必须掌握的函数

必须掌握的函数,一共只有十个,所以一定要记住,没有什么难的 1.数字输入输出I/O ·①pinMode(pin, mode) 说明:数字IO 口输入输出模式定义函数,pin 表示为0~13,mode 表示为INPUT 或OUTPUT。 作用:负责某一接口是输入还是输出,INPUT输入 ·②digitalWrite(pin,value) 说明:数字IO口输出电平定义函数,pin 表示为0~13,value为HIGH 或LOW。作用:定义HIGH可以点亮接在相应pin上的灯。 ·③int state=digitalRead(pin) 说明:数字IO口读输入电平函数,pin 表示为0~13。 作用:读取接在pin脚上的按键或传感器的状态,state为状态值为HIGH 或LOW。模拟输入输出I/O ·④int val=analogRead(pin) 说明:模拟IO口读函数,pin 表示为0~5 作用:读模拟传感器的状态,比如说电位器的位置(val表示为0~1023)。 主函数 ⑤void setup() 初始化程序,每次开机只运行一次

⑥void loop() 在setup()函数之后,即初始化之后,loop() 让你的程序循环地被执行。使用它来运转Arduino。连续执行函数内的语句,这部份的程式会一直重复的被执行,直到Arduino 板子被关闭。 ⑦delay(100025); //设定延时时间,1000 = 1秒 舵机控制 ⑧Servo myservo; 说明:定义了使用的舵机的名字myservo,如用多个舵机,应起不同名字。 ⑨myservo.attach(9); 说明:放在setup()里,告诉单片机我的舵机接在那个引脚上了。 ⑩myservo.write(pos); 说明:放在loop()中,控制舵机运动到那个角度,pos从0到180。

Arduino教程

Arduino 教程一: 数字输出
Arduino, 教程 11 Comments ?
Arduino 的数字 I/O 被分成两个部分,其中每个部分都包含有 6 个可用的 I/O 管脚,即管脚 2 到管脚 7 和管脚 8 到管脚 13。除了管脚 13 上接了一个 1K 的电阻之外,其他各个管脚都直接连接到 ATmega 上。我们可以利用一个 6 位的数字跑马灯,来对 Arduino 数字 I/O 的输出功能进行验证,以下是相应的原理图: 电路中在每个 I/O 管脚上加的那个 1K 电阻被称为限流电阻, 由于发光二极管在电路中没有等效电阻值, 使用限流电阻可 以使元件上通过的电流不至于过大,能够起到保护的作用。 该工程对应的代码为:
int BASE = 2; int NUM = 6; int index = 0; void setup() { for (int i = BASE; i < BASE + NUM; i ++) { pinMode(i, OUTPUT); } } void loop() { for (int i = BASE; i < BASE + NUM; i ++) { digitalWrite(i, LOW); } digitalWrite(BASE + index, HIGH); index = (index + 1) % NUM; delay(100); }
下载并运行该工程,连接在 Arduino 数字 I/O 管脚 2 到管脚 7 上的发光二极管会依次点亮 0.1 秒,然后再熄灭:

这个实验可以用来验证数字 I/O 输出的正确性。 Arduino 上一共有十二个数字 I/O 管脚, 我们可以用同样的办法验证其他六个管脚的正 确性,而这只需要对上述工程的第一行做相应的修改就可以了:
int BASE = 8;
SEP
01
Arduino 教程二: 数字输入
Arduino, 教程 3 Comments ?
在数字电路中开关(switch)是一种基本的输入形式,它的作用是保持电路的连接或者断开。Arduino 从数字 I/O 管脚上只能读出高电 平(5V)或者低电平(0V),因此我们首先面临到的一个问题就是如何将开关的开/断状态转变成 Arduino 能够读取的高/低电平。解 决的办法是通过上/下拉电阻,按照电路的不同通常又可以分为正逻辑(Positive Logic)和负逻辑(Inverted Logic)两种。 在正逻辑电路中,开关一端接电源,另一端则通过一个 10K 的下拉电阻接地,输入信号从开关和电阻间引出。当开关断开的时候, 输入信号被电阻“拉”向地,形成低电平(0V);当开关接通的时候,输入信号直接与电源相连,形成高电平。对于经常用到的按压式 开关来讲,就是按下为高,抬起为低。 在负逻辑电路中,开关一端接地,另一端则通过一个 10K 的上拉电阻接电源,输入信号同样也是从开关 和电阻间引出。当开关断开时,输入信号被电阻“拉” 向电源,形成高电平(5V);当开关接通的时候,输 入信号直接与地相连,形成低电平。对于经常用到的 按压式开关来讲,就是按下为低,抬起为高。 为了验证 Arduino 数字 I/O 的输入功能,我们可以将 开关接在 Arduino 的任意一个数字 I/O 管脚上(13 除 外),并通过读取它的接通或者断开状态,来控制其 它数字 I/O 管脚的高低。本实验采用的原理图如下所 示,其中开关接在数字 I/O 的 7 号管脚上,被控的发 光二极管接在数字 I/O 的 13 号管脚上:
Arduino 教程三: 模拟输入
Arduino, 教程 5 Comments ?
Arduino 的优势在于对数字信号的识别和处理,但我们所生活的真实世界并不是数字(digital)化的,简单到只要用 0 和 1 就能够表示 所有的现象。例如温度这一我们已经司空见惯的概念,它只能在一个范围之内连续变化,而不可能发生像从 0 到 1 这样的瞬时跳变,

Arduino 语言常用语句

/*************Arduino 语言*************/ 结构 ?void setup() 初始化变量,管脚模式,调用库函数等 ?void loop() 连续执行函数内的语句 功能 数字I/O ?pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin 表示为0~13,mode表示为INPUT或OUTPUT。 ?digitalWrite(pin, value) 数字IO口输出电平定义函数,pin 表示为0~13,value表示为HIGH或LOW。比如定义HIGH 可以驱动LED。 ?int digitalRead(pin) 数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。 模拟I/O ?int analogRead(pin) 模拟IO口读函数,pin表示为0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可 以读模拟传感器(10位AD,0~5V表示为0~1023)。 ?analogWrite(pin, value) - PWM数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表

示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机 PWM调速或音乐播放。 扩展I/O ?shiftOut(dataPin, clockPin, bitOrder, value) SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展, dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表 示所要传送的数据(0~255),另外还需要一个IO口做 74HC595的使能控制。 ?unsigned long pulseIn(pin, value) 脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。 比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。 时间函数 ?unsigned long millis() 返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大 概需要50天时间。 ?delay(ms) 延时函数(单位ms)。 ?delayMicroseconds(us) 延时函数(单位us)。 数学函数

arduino语言(1)

Arduino语言 Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。 在与Arduino DIYER接触的这段时间里,发现有些朋友对Arduino语言还是比较难入手,那么这里我就简单的注释一下Arduino语言(本人也是半罐子水,有错的地方还请各位指正)。 基础C语言 关键字: if...else 必须紧接着一个问题表示式(expression),若这个表示式为真,紧连着表示式后的代码就会被执行。若这个表示式为假,则执行紧接着else之后的代码. 只使用 if 不搭配else是被允许的。 范例: if (val == 1) { digitalWrite(LED,HIGH); } for 用来明定一段区域代码重复指行的次数。 范例: for (int i = 0; i < 10; i++) { Serial.print("ciao"); } switch case if叙述是程序里的分叉路口,switch case 是更多选项的路口。Swith case 根据变量值让程序有更多的选择,比起一串冗长的if叙述,使用swith case可使程序代码看起来比较简洁。 范例 : switch (sensorValue) { case 23: digitalWrite(13,HIGH); break; case 46: digitalWrite(12,HIGH); break; default: // 以上条件都不符合时,预设执行的动作 digitalWrite(12,LOW); digitalWrite(13,LOW); } while

相关文档