Arduino编程语言参考大全
Arduino-语法手册
函数部分
十五、数字 I/O 15.1 pinMode() 15.2 digitalWrite() 15.3 digitalRead() 十六、模拟 I/O 16.1 analogReference() 16.2 analogRead() 16.3 analogWrite() PWM 十七、高级 I/O 17.1 tone() 17.2 noTone() 17.3 shiftOut() 17.4 shiftIn() 17.5 pulseIn() 十八、时间 18.1 millis() 18.2 micros()
Arduino 语法手册
Arduino 的程序可以划分为三个主要部分:结构、变量(变量与常量) 、函数。
结构部分
一、结构 1.1 setup() 1.2 loop() 二、结构控制 2.1 if 2.2 if...else 2.3 for 2.4 switch case 2.5 while 2.6 do... while 2.7 break 2.8 continue 2.9 return 2.10 goto 三、扩展语法 3.1 ;(分号) 3.2 {}(花括号) 3.3 //(单行注释) 3.4 /* */(多行注释) 3.5 #define 3.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)
Arduino 语法手册
#Arduino 语法setup() 初始化函数loop() 循环体函数控制语句类似于C//if if...else for switch case while do... while break continue return goto扩展语法类似于C//;(分号) {}(花括号) //(单行注释) /* */(多行注释) #define #include算数运算符类似于C//=(赋值运算符) +(加) -(减) *(乘) /(除) %(模)比较运算符类似于C//==(等于) !=(不等于) <(小于) >(大于) <=(小于等于) >=(大于等于)布尔运算符类似于C//&&(与) ||(或) !(非)指针运算符类似于C//* 取消引用运算符 & 引用运算符位运算符类似于C& (bitwise and) | (bitwise or) ^ (bitwise xor) ~ (bitwise not) << (bitshift left) >> (bitshift right)复合运算符类似于C++ (increment) -- (decrement) += (compound addition) -= (com pound subtraction) *= (compound multiplication) /= (compound divis ion) &= (compound bitwise and) |= (compound bitwise or)常量constants 预定义的常量BOOL true false引脚电压定义,HIGH和LOW【当读取(read)或写入(write)数字引脚时只有两个可能的值: HIGH 和 LOW 】HIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或OUTPUT时含义有所不同。
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编程,从新手到达人系列(一)
学好Arduino编程,从新手到达人系列(一)作者:来源:《电脑报》2018年第44期随着Arduino开源硬件的流行,越来越多非工程背景的人士能轻松借助Arduino来快速实现自己的创意,成为名副其实的创客。
如今,Arduino也逐渐走入了中国的校园,越来越多的中国学生也因此接触到了图形化的软硬件编程。
Arduino是一款便捷灵活、方便上手的开源电子原型平台。
它由板子大叔(Massimo Banzi)和他的团队创造,Arduino具有跨平台、开放性强、界面简单清晰等特点,被广泛运用于电子元器件的开发控制。
虽然Arduino已经把硬件和软件分离,软件端也做到了底层驱动代码和应用代码的隔离,用户只要学一些简单的入门编程知识,也能够快速上手,但是,代码编程对于大部分青少年来说仍然存在着技术壁垒。
因此,认识和了解简易图形化编程软件,对于想学习图形化编程软件的青少年来说就显得非常有必要了。
一、让Arduino 说出 Hello World!1.Hello World!首先先来练习一个不需要其他辅助元件,只需要一块Arduino 和一根下载线的简单实验,让我们的Arduino 说出“Hello World!”,这是一个让Arduino 和PC 机通信的实验,这也是一个入门实验,希望可以帶领大家进入Arduino 的世界。
2.实验用到的电子原件及电子模块:①Arduino板 1个②USB 数据线我们按照上面所讲的将Arduino 的驱动安装好后,我们打开Arduino 的软件,编写一段程序让Arduino 接收到我们发的指令就显示“Hello World!”字符串,当然你也可以让Arduino 不用接收任何指令就直接不断回显“Hello World!”,其实很简单,一条if()语句就可以让你的Arduino 听从你的指令了,我们再借用一下Arduino 自带的数字13 口LED,让Arduino 接收到指令时LED 闪烁一下,再显示“Hello World!”。
Arduino语法参考
(无符号整型)unsigned int常量个字节的空间,但是无符号的前缀意味着它不能存储负数,一样,也用2像Arduino语言有一些特殊意义的关键字。
例如HIGH和LOW用来表示你打开或关闭int用来设定某个特0-65535。
它的范围是INPUT(高电平或者低电平)Arduino 的一个引脚(pin),和OUTPUT定引脚是输入接口还是输出接口。
True,像它们的字面意思一样;表示一个条件或一个运算是真还是假。
longFalse(长整型)和之间的数字。
它是int的两倍大小。
能够存储-2147483648到2417483647变量变量保存在(无符号长整型)unsigned longArduino内存中,它可以用来保存数据,你可以应用这个变量的数据变量在程序中是可以随便更改的。
来计算或者将这个数据应用到程序中。
正如字面意思,0无符号长整型的范围是到4294967295是一个非常简单的微处理器,所以当你声明一个变量时,还必须指因为Arduino float定它的类型。
这意味着告诉处理器为你所要存储的数据留出多大的空间。
(浮点型)它的存储空间很大,能够存储浮点值,你能用它存储带小数的数字,每个浮点型下面是一些常见的数据类型:会用掉四个字节,所以要谨慎使用。
Boolean(布尔)只能是真或者假两种值。
double(双精度浮点型)次方。
哇,非30810的1.797 693 134 862 315 7双精度浮点数最大值为乘以常大!char(字符)Arduino?保存一个字符,如。
和任何计算机一样,将字符存储为一个数字,虽string(字符串)。
然你拷打的是文字。
当字符用数字里存储时,数值范围是-128到127字符来存储文本信息(你可以用字符串通过串口发送一条信息、或用一组ASCII加上一个。
注意:字符串的每一个字符会占用一个字节的存储空间,者在LCD显示屏上展示)个可用字零字符。
表示字符串的结束。
127ASCIIUNICODE在计算机系统里主要有两组有效字符:ASCII和。
Arduino的程序语言
Arduino的程序语言一一个Arduino脚本程式码(SKETCH)由两部分组成void setup()在这个函数范围内放置初始化Arduino 板子的程式- 在主要程式开始撰写前,使Arduino 板子装置妥当的指令。
void loop()在此放置你的Arduino脚本。
这部份的程式会一直重复的被执行,直到Arduino 板子被关闭。
特殊符号Arduino 语言用了一些符号描绘程式码,例如注释和程式区块。
; //(分号)Arduino 语言每一行程序都是以分号为结尾。
这样的语法让你可以自由地安排代码,你可以将两个指令放置在同一行,只要中间用分号隔开。
(但这样做可能降低程式的可读性。
)范例:delay(100);{}(大括号)大括号用来将程式代码分成一个又一个的区块,如以下范例所示,在loop()函数的前、后,必须用大括号括起来。
范例:void loop(){Serial.pritln("cial");}注释程式的注释就是对代码的解释和说明,编写注释有助于程式设计师(或其他人)了解代码的功能。
Arduino处理器在对程式码进行编译时会忽略注释的部份。
Arduino 语言中的编写注释有两种方式//单行注释:这整行的文字会被处理器忽略/*多行注释:在这个范围内你可以写一整首诗*/常数在Arduino语言中事先定义了一些具特殊用途的保留字。
HIGH 和LOW 用来表示你开启或是关闭了一个Arduino的脚位(pin)。
INPUT 和OUTPUT 用来指示这个Arduino的脚位(pin)是属于输入或是输出用途。
true 和false 用来指示一个条件或表示式为真或是假。
变数变数用来指定Arduino 记忆体中的一个位置,变数可以用来储存资料,程式人员可以透过脚本代码去不限次数的操作变数的值。
因为Arduino 是一个非常简易的微处理器,但你要宣告一个变数时必须先定义他的资料型态,好让微处理器知道准备多大的空间以储存这个变数值。
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程序可以分为三个主要部分:结构, 数值 (变量与常量) 和函数.结构∙setup()∙loop()控制结构∙if∙if...else∙for∙switch case∙while∙do... while∙break∙continue∙return∙goto进阶语法∙; (semicolon)∙{} (curly braces)∙// (single line comment)∙/* */ (multi-line comment)∙#define∙#include算术运算符∙= (assignment operator)∙+ (addition)∙- (subtraction)∙* (multiplication)∙/ (division)∙% (modulo)比较运算符∙== (equal to)∙!= (not equal to)∙< (less than)∙> (greater than)∙<= (less than or equal to) ∙>= (greater than or equal to)布尔运算符∙&& (and)∙|| (or)∙! (not)指针运算符∙* dereference operator∙& reference operator位运算符∙& (bitwise and)∙| (bitwise or)∙^ (bitwise xor)∙~ (bitwise not)∙<< (bitshift left)∙>> (bitshift right)符合运算符∙++ (increment)∙-- (decrement)∙+= (compound addition)∙-= (compound subtraction)∙*= (compound multiplication) ∙/= (compound division)∙&= (compound bitwise and) ∙|= (compound bitwise or)数值常量∙HIGH | LOW∙INPUT | OUTPUT|INPUT_PULLUP ∙true | false∙integer constants∙floating point constants数据类型∙void∙boolean∙char∙unsigned char∙byte∙int∙unsigned int∙word∙long∙unsigned long∙float∙double∙string - char array∙String - object∙array转换∙char()∙byte()∙int()∙word()∙long()∙float()变量范围与限定符∙variable scope∙static∙volatile∙constUtilities函数数字I/O∙pinMode()∙digitalWrite()∙digitalRead()模拟I/O∙analogReference() ∙analogRead()∙analogWrite() - PWM 高级I/O∙tone()∙noTone()∙shiftOut()∙shiftIn()∙pulseIn()时间∙millis()∙micros()∙delay()∙delayMicroseconds() 数学∙min()∙max()∙abs()∙constrain()∙map()∙pow()三角函数∙sin()∙cos()∙tan()随机数∙randomSeed()∙random()位与字节∙lowByte()∙highByte()∙bitRead()∙bitWrite()∙bitSet()∙bitClear()∙bit()外部中断∙attachInterrupt()∙detachInterrupt()中断∙interrupts()∙noInterrupts()通信∙Serial∙StreamUSB(仅适用于Leonardo、Due、Micro)∙Keyboard∙Mouse。
arduino编程语言教程
arduino编程语言教程Arduino编程语言是一种基于C++语言的简化版本,专门用于编程控制Arduino开发板的微控制器。
本篇文章旨在为初学者提供Arduino编程语言的基本知识和代码示例,帮助读者快速入门。
以下将围绕Arduino的语法、变量、函数和常用库进行介绍。
首先,Arduino编程语言的语法大体上与C++语言相似,但做了简化处理,使其更加易于上手。
在Arduino编程语言中,程序从`void setup()`函数开始执行,该函数在程序启动时运行一次。
在`setup()`函数中,我们进行一些初始化设置,例如设置引脚模式、串口通信的波特率等。
与`void setup()`函数相对的是`void loop()`函数,它会不断循环执行。
类似于C++中的`while(1)`循环,该函数中的代码会一直运行,直到关闭电源或重新上传新的程序。
在Arduino编程语言中,可以通过定义变量来存储和操作数据。
变量的定义方式与C++相同,需要指定数据类型。
例如,可以使用`int`定义一个整数变量,使用`float`定义一个浮点数变量。
变量的命名需要遵循一定规则,以字母开头,只能包含字母、数字和下划线。
Arduino编程语言中还有一些常用的函数,用于输入输出控制。
例如,`digitalWrite(pin, HIGH)`函数可设置指定引脚的电平为高电平(5V),`digitalWrite(pin, LOW)`函数可设置指定引脚的电平为低电平(0V)。
另外,还可以使用`analogRead(pin)`函数读取模拟信号输入的电压值,范围从0到1023之间。
在Arduino编程语言中,还有许多常用库可以用于简化我们的编程工作。
例如,`Wire`库可以方便地进行I2C通信,`Servo`库可用于控制舵机,`LiquidCrystal`库可用于驱动LCD显示屏等。
使用这些库之前,我们需要在程序中包含相应的头文件,并进行相应的初始化设置。
Arduino编程语言
Arduino编程参考手册首页程序结构(本节直译自Arduino官网最新Reference)在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数:setup()当Arduino板起动时setup()函数会被调用。
用它来初始化变量,引脚模式,开始使用某个库,等等。
该函数在Arduino板的每次上电和复位时只运行一次。
loop()在创建setup函数,该函数初始化和设置初始值,loop()函数所做事的正如其名,连续循环,允许你的程序改变状态和响应事件。
可以用它来实时控制arduino板。
示例:控制语句ifif,用于与比较运算符结合使用,测试是否已达到某些条件,例如一个输入数据在某个范围之外。
使用格式如下:该程序测试value是否大于50。
如果是,程序将执行特定的动作。
换句话说,如果圆括号中的语句为真,大括号中的语句就会执行。
如果不是,程序将跳过这段代码。
大括号可以被省略,如果这么做,下一行(以分号结尾)将成为唯一的条件语句。
圆括号中要被计算的语句需要一个或多个操作符。
if...else与基本的if语句相比,由于允许多个测试组合在一起,if/else可以使用更多的控制流。
例如,可以测试一个模拟量输入,如果输入值小于500,则采取一个动作,而如果输入值大于或等于500,则采取另一个动作。
代码看起来像是这样:else中可以进行另一个if测试,这样多个相互独立的测试就可以同时进行。
每一个测试一个接一个地执行直到遇到一个测试为真为止。
当发现一个测试条件为真时,与其关联的代码块就会执行,然后程序将跳到完整的if/else结构的下一行。
如果没有一个测试被验证为真。
缺省的else语句块,如果存在的话,将被设为默认行为,并执行。
注意:一个else if语句块可能有或者没有终止else语句块,同理。
每个else if分支允许有无限多个。
另外一种表达互斥分支测试的方式,是使用switch case语句。
基于Arduino的嵌入式系统入门与实践-Arduino的编程语言
3.1 函数
(5)bitWrite() 功能:给一个数字变量的指定位赋值。 语法格式:bitWrite(x,n,b)。 参数说明:x:数字变量;n:指定要赋值的位(最低位是0位) ;b:要赋的值(0或1)。 返回值:无。 (6)highByte() 功能:提取一个字的高字节,或一个较大数据的第二个低字节。 语法格式:highByte(x)。 参数说明:x:数字变量(任意类型)。 返回值:字节。
21
3.1 函数
(2)randomSeed() 功能:随机种子初始化伪随机数发生器,使产生的随机序列始 于一个随机点。当很长时,这个序列总是相同的。 语法格式:randomSeed(seed)。 参数说明:seed:初始化伪随机序列的数据(unsigned long类型)。无返回值。
22
3.1 函数
第3章 Arduino的编程语言
3.1 函数 3.2 变量 3.3 程序结构 3.4 控制语句 3.5 运算符 3.6 Arduino类库 3.7 Arduino自定义类库
3.1 函数
在C/C++语言编程中,函数是很常见的。Arduino提 供了许多函数,其功能是控制 Arduino开发板,进行数值计 算等。包括数字I/O函数、模拟I/O函数、高级I/O函数、 时间函数、数学函数、字符函数、随机函数、位和字节函数、 外部中断函数以及串口通讯函数等。
8
3.1 函数
(3)map() 功能:将整数从一个范围映射到另一个范围。下限可能大于或 小于上限,该函数可用于将数的范围取反。只适用整数。 语法格式:map(value, fromLow, fromHigh, toLow, toHigh)。 参数说明:value:要映射的整数。fromLow :映射前数 据范围的下限,fromHigh :映射前数据范围的上限。 toLow:映射后数据范围的下限,toHigh:映射后数据范 围的上限。 返回值:映射后的数据。 例如
arduino 编程语言
Arduino语言注解Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把A VR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解A VR单片机(微控制器)的朋友也能轻松上手。
关键字:ifif...elseforswitch casewhiledo... whilebreakcontinuereturngoto语法符号:;{}//数据类型:字节范围boolean 布尔类型 1 False or turechar 字符类型 1 -128-127byte 字节类型 1 0-255int 整数类型 2 -32768-32768 unsigned int 无符号整数类型 2 0-65535long 长整数类型 4unsigned long 无符号长整数类型 4float 浮点类型 4double 双精度浮点类型 4string 字符数组型array 数组类型void 无类型数据类型转换:char()byte()int()long()float()常量:HIGH | LOW表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。
INPUT | OUTPUT表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(A VR能提供5V电压40mA电流)。
true | false true 表示真(1),false表示假(0)。
程序结构声明变量及接口名称(例如:int val;int ledPin=13;)。
void setup() 函数在程序开始时使用,初始化变量,管脚模式,调用库函数等(例如:pinMode(ledPin,OUTUPT);)。
void loop()在setup()函数之后,即初始化之后,loop() 让你的程序循环地被执行。
使用它来运转Arduino。
数字I/OpinMode(pin, mode)数字IO口输入输出模式定义函数,pin表示为0~13,mode表示INPUT或OUTPUT。
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使用起来要比其他微处理器更易懂,与Basic Stamp有些相似,Arduino的编程语言更为简单和人性化,Arduino编程语言基于C语言,但其实用性要远高于C语言,主要由于它将一些常用语句组合函数化,例如:延时函数delay(1000)即为一秒。
在学语言之间,还要做的一个功课就是要明白程序的构架,这个也同样简单,大体可分为几个部分。
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(波特率)——设置串行每秒传输数据的速率(波特率)。
Arduino语法手册
A r d u i n o语法手册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.2Serial.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.8Serial.parseFloat()25.1.9 Serial.parseInt()25.2 Stream二十六、USB(仅适用于 Leonardo 和 Due)26.1 Mouse(键盘)26.2 Keyboard(鼠标)结构部分一、结构1.1 setup()在Arduino中程序运行时将首先调用 setup() 函数。
Arduino语言常用语句解析
Arduino语言常用语句解析/*************Arduino 语言*************/结构void setup() 初始化变量,管脚模式,调用库函数等void loop() 连续执行函数内的语句功能数字I/OpinMode(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/Oint 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/OshiftOut(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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 Language Reference 目录Arduino programs can be divided in three main parts: structure values variables and constants and functions. 一Structure setup loop 1.1Control Structures if if...else for switch case while do... while break continue return goto 1.2Further Syntax semicolon curly braces // single line comment / / multi-line comment define include 1.3Arithmetic Operators assignment operator addition - subtraction multiplication / division modulo 1.4Comparison Operators equal to not equal to lt less than gt greater than lt less than or equal to gt greater than or equal to 1.5Boolean Operators ampamp and2 or not 1.6Pointer Access Operators dereference operator amp reference operator 1.7 Bitwise Operators amp bitwise and bitwise or bitwise xor bitwise not ltlt bitshift left gtgt bitshift right 1.8 Compound Operators increment -- decrement compound addition - compound subtraction compound multiplication / compound division amp compound bitwise and compound bitwise or 二Variables 2.1Constants HIGH LOW INPUT OUTPUTINPUT_PULLUP true false integer constants floating point constants 2.2Data Types void boolean char unsigned char byte int unsigned int word long unsigned long float double string - char array String - object3 array 2.3 Conversion char byte int word long float 2.4 Variable Scopeamp Qualifiers variable scope static volatile const 2.5 Utilities sizeof 三Functions 3.1Digital I/O pinMode digitalWrite digitalRead 3.2 Analog I/O analogReference analogRead analogWrite - PWM 3.3 Advanced I/O tone noTone shiftOut shiftIn pulseIn 3.4 Time millis micros delay delayMicroseconds 3.5 Math min max abs constrain map pow sqrt 4 3.6 Trigonometry sin cos tan 3.7 Random Numbers randomSeed random 3.8 Bits and Bytes lowByte highByte bitRead bitWrite bitSet bitClear bit 3.9 External Interrupts attachInterrupt detachInterrupt 3.10 Interrupts interrupts noInterrupts 3.11 Communication Serial Stream 3.12 Leonardo Specific Keyboard Mouse Looking for something else See the libraries page for interfacing with particular types of hardware. Try the list of community-contributed code. The Arduino language is based on C/C. It links against AVR Libc and allows the use of any of its functions see its user manual for details. 5 Structure setup loop setup The setup function is called when a sketch starts. Use it to initialize variables pin modes start using libraries etc. The setup function will only run once after each powerup or reset of the Arduino board. Example int buttonPin 3 void setupSerial.begin9600 pinModebuttonPin INPUT void loop // ... loop After creating a setup function which initializes and sets theinitial values the loop function does precisely what its name suggests and loops consecutively allowing your program to change and respond. Use it to actively control the Arduino board. Example int buttonPin 3 // setup initializes serial and the button pin void setup beginSerial9600 pinModebuttonPin INPUT // loop checks the button pin each time // and will send serial if it is pressed 6 void loop if digitalReadbuttonPin HIGH serialWriteH else serialWriteL delay1000 Control Structures if if...else for switch case while do... while break continue return goto if conditional and lt gt comparison operators if which is used in conjunction with a comparison operator tests whether a certain condition has been reached such as an input being abovea certain number. The format for an if test is: if someVariable gt50 // do something here The program tests to see if someVariable is greater than 50. If it is the program takes a particular action. Put another way if the statement in parentheses is true the statements inside the brackets are run. If not the program skips over the code. 7 The brackets may be omitted after an if statement. If this is done the next line defined by the semicolon becomes the only conditional statement. if x gt 120 digitalWriteLEDpin HIGH if x gt 120 digitalWriteLEDpin HIGH if x gt 120 digitalWriteLEDpin HIGH if x gt 120digitalWriteLEDpin1 HIGH digitalWriteLEDpin2 HIGH // all are correct The statements being evaluated inside the parentheses require the use of one or more operators: Comparison Operators: x y x is equal to y x y x is not equal to y x lt y x is less than y x gt y x is greater than y x lt y x is less than or equal to y x gt y x is greater than or equal to y Warning: Beware of accidentally using the single equal sign e.g. if x 10 . The single equal sign is the assignment operator and sets x to 10 puts the value 10 into the variable x. Instead use the double equal sign e.g. if x 10 which is the comparison operator and tests whether x is equal to 10 or not. The latter statement is only true if x equals 10 but the former statement will always be true. This is because C evaluates the statement if x10 as follows: 10 is assigned to x remember that the single equal sign is the assignment operator so x now contains 10. Then the if conditional evaluates 10 which always evaluates to TRUE since any non-zero number evaluates to TRUE. Consequently if x 10 will always evaluate to TRUE which is not the desired result when using an if statement. Additionally the variable x will be set to 10 which is also not a desired action. if can also be part of a branching control structure using the if...else construction. Reference Home if / else if/else allows greater control over theflow of code than the basic if statement by allowing multiple tests to be grouped together. For example an analog input could be tested and one action taken if the input was less than 500 and another action taken if the input was 500 or greater. The code would look like this: 8 if pinFiveInput lt 500 // action A else // action B else can proceed another if test so that multiple mutually exclusive tests can be run at the same time. Each test will proceed to the next one until a true test is encountered. When a true test is found its associated block of code is run and the program then skips to the line following the entire if/else construction. If no test proves to be true the default else block is executed if one is present and sets the default behavior. Note that an else if block may be used with or without a terminating else block and vice versa. An unlimited number of such else if branches is allowed. if pinFiveInput lt 500 // do Thing A else if pinFiveInput gt 1000 // do Thing B else // do Thing C Another way to express branching mutually exclusive tests is with the switch case statement. for statements Desciption The for statement is used to repeat a block of statements enclosed in curly braces. An increment counter is usually used to increment and terminate the loop. The for statement is useful for any repetitive operation and is often used in combination with arraysto operate on collections of data/pins. There are three parts to the for loop header: for initialization condition increment//statements 9 The initialization happens first and exactly once. Each time through the loop the condition is tested if its true the statement block and the increment is executed then the condition is tested again. When the condition becomes false the loop ends. Example // Dim an LED using a PWM pin int PWMpin 10 // LED in series with 470 ohm resistor on pin 10 void setup // no setup needed void loop for int i0 i lt 255 i analogWritePWMpin i delay10 Coding Tips The C for loop is much more flexible than for loops found in some other computer languages including BASIC. Any or all of the three header elements may be omitted although the semicolons are required. Also the statements for initialization condition and increment can be any valid C statements with unrelated variables and use any C datatypes including floats. These types of unusual for statements may provide solutions to some rare programming problems. For example using a multiplication in the increment line will generate a logarithmic progression: forint x 2 x lt 100 x x 1.5 printlnx 10 Generates: 23469131928426394 Another example fade an LED up and down with one for loop: void loop int x 1 for int i 0 i gt -1 i i x analogWritePWMpin i if i 255 x -1 //switch direction at peak delay10 switch / case statements Like if statements switch...case controls the flow of programs by allowing programmers to specify different code that should be executed in various conditions. In particular a switch statement compares the value of a variable to the values specified in case statements. When a case statement is found whose value matches that of the variable the code in that case statement is run. The break keyword exits the switch statement and is typically used at the end of each case. Without a break statement the switch statement will continue executing the following expressions quotfalling-throughquot until a break or the end of the switch statement is reached. Example switch var case 1: //do something when var equals 1 break case 2: //do something when var equals 2 break default: // if nothing else matches do the default // default is optional Syntax switch var case label: // statements break case label: // statements break default: 11 // statements Parameters var: the variable whose value to compare to the various cases label: a value to compare the variable to while loops Description while loops will loop continuously and infinitely until the expression inside the parenthesis becomes false. Something must change the tested variable or the while loop will never exit. This could be in your code such as anincremented variable or an external condition such as testing a sensor. Syntax whileexpression // statements Parameters expression - a boolean C statement that evaluates to true or false Example var 0 whilevar lt 200 // do something repetitive 200 times var do - while The do loop works in the same manner as the while loop with the exception that the condition is tested at the end of the loop so the do loop will always run at least once. do // statement block while test condition Example do delay50 // wait for sensors to stabilize x readSensors // check the sensors while x lt 100 12 break break is used to exit from a do for or while loop bypassing the normal loop condition. It is also used to exit from a switch statement. Example for x 0 x lt 255 x digitalWritePWMpin x sens analogReadsensorPin if sens gt threshold // bail out on sensor detect x 0 break delay50 continue The continue statement skips the rest of the current iteration of a loop do for or while. It continues by checking the conditional expression of the loop and proceeding with any subsequent iterations. Example for x 0 x lt 255 x if x gt 40 ampamp x lt 120 // create jump in values continue digitalWritePWMpin x delay50 return Terminate a function and return a value from a function to the calling function if desired. Syntax: return return value // both forms are valid Parameters value: any variable or constanttype Examples: A function to compare a sensor input to a threshold 13 int checkSensor if analogRead0 gt 400 return 1 else return 0 The return keyword is handy to test a section of code without having to quotcomment outquot large sections of possibly buggy code. void loop // brilliant code idea to test here return // the rest of a dysfunctional sketch here // this code will never be executed goto Transfers program flow to a labeled point in the program Syntax label: goto label // sends program flow to the label Tip The use of goto is discouraged in C programming and some authors of C programming books claim that the goto statement is never necessary but used judiciously it can simplify certain programs. The reason that many programmers frown upon the use of goto is that with the unrestrained use of goto statements it is easy to create a program with undefined program flow which can never be debugged. With that said there are instances where a goto statement can come in handy and simplify coding. One of these situations is to break out of deeply nested for loops or if logic blocks on a certain condition. Example forbyte r 0 r lt 255 r forbyte g 255 g gt -1 g-- forbyte b 0 b lt 255 b if analogRead0 gt 250 goto bailout // more statements ... bailout: 14 Further Syntax semicolon curly braces // single line comment / / multi-linecomment define include semicolon Used to end a statement. Example int a 13 Tip Forgetting to end a line in a semicolon will result in a compiler error. The error text may be obvious and refer to a missing semicolon or it may not. If an impenetrable or seemingly illogical compiler error comes up one of the first things to check is a missing semicolon in the immediate vicinity preceding the line at which the compiler complained Curly Braces Curly braces also referred to as just quotbracesquot or as quotcurly bracketsquot are a major part of the C programming language. They are used in several different constructs outlined below and this can sometimes be confusing for beginners. An opening curly brace quotquot must always be followed by a closing curly brace quotquot. This is a condition that is often referred to as the braces being balanced. The Arduino IDE integrated development environment includes a convenient feature to check the balance of curly braces. Just select a brace or even click the insertion point immediately following a brace and its logical companion will be highlighted. At present this feature is slightly buggy as the IDE will often find incorrectly a brace in text that has been quotcommented out.quot 15 Beginning programmers and programmers coming to C from the BASIC language often find using braces confusing or daunting.After all the same curly braces replace the RETURN statement in a subroutine function the ENDIF statement in a conditional and the NEXT statement in a FOR loop. Because the use of the curly brace is so varied it is good programming practice to type the closing brace immediately after typing the opening brace when inserting a construct which requires curly braces. Then insert some carriage returns between your braces and begin inserting statements. Your braces and your attitude will never become unbalanced. Unbalanced braces can often lead to cryptic impenetrable compiler errors that can sometimes be hard to track down in a large program. Because of their varied usages braces are also incredibly important to the syntax of a program and moving a brace one or two lines will often dramatically affect the meaning of a program. The main uses of curly braces Functions void myfunctiondatatype argument statementss Loops while boolean expression statements do statements while boolean expression for initialisation termination condition incrementing expr statements Conditional statements if boolean expression statements else if boolean expression statements else 16 statements Comments Comments are lines in the program that are used to inform yourself or others about the way the program works. The.。