Arduino 语言常用语句
- 格式:doc
- 大小:42.50 KB
- 文档页数:12
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 语法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时含义有所不同。
ardino基本语句
Arduino的基本语句包括:
1. setup()函数:该函数在Arduino开始运行时执行一次,用于设置引脚模式、初始化变量等。
2. loop()函数:该函数会不断循环执行,用于处理程序的主要逻辑。
3. pinMode()函数:用于设置引脚的模式,可以设置为输入(INPUT)、输出(OUTPUT)、输入上拉
(INPUT_PULLUP)等。
4. digitalWrite()函数:用于将某个引脚设置为高电平(HIGH)或低电平(LOW)。
5. analogRead()函数:用于读取某个模拟引脚的模拟值,返回一个0-1023之间的数字。
6. analogWrite()函数:用于向某个模拟引脚输出模拟值,可以设置的范围是0-255。
7. delay()函数:用于延迟一段时间,单位为毫秒。
8. if语句:用于实现条件判断,根据判断结果执行不同的代码块。
9. for循环:用于执行一段代码的循环,可以指定循环的次数。
10. while循环:用于执行一段代码的循环,根据判断条件的结果来决定是否继续执行。
以上是Arduino的一些基本语句,可以根据具体的需求及其周
边设备的特性来使用,从而实现不同的功能。
大体语法参考结构部份setup()在Arduino中程序运行时将第一挪用setup() 函数。
用于初始化变量、设置针脚的输出\输入类型、配置串口、引入类库文件等等。
每次Arduino 上电或重启后,setup 函数只运行一次。
例如loop()在函数中初始化和概念了变量,然后执行loop() 函数。
顾名思义,该函数在程序运行进程中不断的循环,依照一些反馈,相应改变执行情形。
通过该函数动态操纵Arduino 主控板。
例如.whil edo…while循环与循环运行的方式是相近的,只是它的条件判定是在每一个循环的最后,因此那个语句至少会被运行一次,然后才被终止。
扩展语法; 分号用于表示一句代码的终止。
例子:提示在每一行忘记利用分号作为结尾,将致使一个编译错误。
错误提示可能会清楚的指向缺少分号的那行,也可能可不能。
若是弹出一个令人费解或看似不合逻辑的编译器错误,第一件事确实是在错误周围检查是不是缺少分号。
{}大括号大括号(也称为“括号”或“大括号”)是C编程语言中的一个重要组成部份。
它们被用来区分几个不同的结构,下面列出的,有时可能使初学者混乱。
左大括号“{”必需与一个右大括号“}”形成闭合。
这是一个常常被称为括号平稳的条件。
在Arduino IDE(集成开发环境)中有一个方便的功能来检查大括号是不是平稳。
只需选择一个括号,乃至单击紧接括号的插入点,就能够明白那个括号的“伴侣括号”。
目前此功能略微有些错误,因为IDE会常常会以为在注释中的括号是不正确的。
关于初学者,和由BASIC语言转向学习C语言的程序员,常常不清楚如何利用括号。
毕竟,大括号还会在“return函数”、“endif条件句”和“loop函数”中被利用到。
由于大括号被用在不同的地址,这有一种专门好的编程适应以幸免错误:输入一个大括号后,同时也输入另一个大括号以达到平稳。
然后在你的括号之间输入回车,然后再插入语句。
如此一来,你的括号就可不能变得不平稳了。
Arduino语法Arduino语法-----基础篇Arduino语言是建立在C/C++基础上的,基本的功能都是基于C,一些复杂的或者功能强大的库都是基于C++,c和C++的语法,大家随便找本书都可以学会。
其实Arduino就是把单片机的一些常用指令和函数进行功能化、函数化、模块化。
这样就可以让大家不必去了解单片机或者硬件Arduino语法-----中级篇setup()当一个程序开始时,会调用setup()函数,用来初始化变量,引脚模式,库文件初始化等。
setup函数只会在板子上电或者复位后调用一次。
loop()当setup函数初始化完变量以及设置完初始值后,loop函数就会像它的名字一样,不停的循环,从而使程序能够改变或者响应对Arduino板子的控制,使板子保持在活动的状态。
pinMode()把指定的引脚设置为输入或则输出模式,在Arduino1.0.1中可以使用INPUT_PULLUP把引脚模式设置为内部上拉.除此之外,输入模式明确禁止内部上拉。
pinMode(pin,mode)参数:pin:需要设置的引脚编号。
mode:INPUT输入,OUTPUT输出,INPUT_PULLUP内部上拉返回值:无digitalWrite()把引脚设置为HIGH或者LOW。
如果把一个引脚使用pinMode()设置为输出模式,如果参数是HIGH 引脚的电压会被设置为5V(3V或者3.3V),如果是LOW,引脚输出为0V(GND)。
如果引脚被设置为输入模式,使用digitalWrite()对该引脚写入HIGH,将会使能内部的20K上拉电阻,如果写入LOW会禁止内部上拉。
内部上拉可以点亮LED,只是很淡,所以如果LED很淡,应该是忘记把引脚设置为输出模式了.13脚一般不用做输入模式,因为它串联了一个LED和电阻,如果你使能了内部的20K上拉电阻,它的电压将会在1.7V左右而不是你锁期望的5V。
因为它串联的LED和电阻把电压拉低了,这也就意味着13脚始终读出的是LOW,如果你一定要把13脚用为输入脚,请给它接一个外部的下拉电阻。
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() 函数。
ardino基本语句Arduino基本语句是指用于编程和控制Arduino开发板的常用语句。
1. pinMode():该函数用于设置指定引脚的模式,可以是输入(INPUT)或输出(OUTPUT)模式。
2. digitalWrite():该函数用于将指定引脚输出电平,可以是高电平(HIGH)或低电平(LOW)。
3. digitalRead():该函数用于读取指定引脚的输入电平,返回值为HIGH或LOW。
4. analogWrite():该函数用于模拟输出,将指定引脚输出PWM信号,值范围为0-255。
5. analogRead():该函数用于读取指定引脚的模拟输入电压,返回值范围为0-1023。
6. delay():该函数用于延时指定的毫秒数。
7. Serial.begin():该函数用于初始化串口通信,设置波特率。
8. Serial.println():该函数用于将数据以字符串的形式发送到串口,并在末尾换行。
9. for循环:可以使用for循环来重复执行一段代码,设置循环起始值、结束条件和步进值。
10. if语句:可以使用if语句来根据条件执行不同的代码块。
11. switch语句:可以使用switch语句来根据不同的值执行不同的代码块。
除了以上基本语句,Arduino还支持多种库函数,可以扩展其功能。
比如:1. Servo库:可以控制舵机的转动角度。
2. LiquidCrystal库:可以控制液晶显示屏显示文本和图像。
3. Wire库:可以进行I2C通信,连接多个设备。
4. Ethernet库:可以实现Arduino与网络的通信。
5. SD库:可以读写SD卡上的数据。
6. Stepper库:可以控制步进电机的旋转。
这些库函数提供了丰富的功能,可以满足各种应用需求,并且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。
比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。
时间函数unsigned long millis() 返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。
delay(ms) 延时函数(单位ms)。
delayMicroseconds(us) 延时函数(单位us)。
数学函数min(x, y) 求最小值max(x, y) 求最大值abs(x) 计算绝对值constrain(x, a, b) 约束函数,下限a,上限b,x必须在ab 之间才能返回。
map(value, fromLow, fromHigh, toLow, toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh 之间。
pow(base, exponent) 开方函数,base的exponent次方。
sq(x) 平方sqrt(x) 开根号三角函数sin(rad)cos(rad)tan(rad)随机数函数randomSeed(seed) 随机数端口定义函数,seed表示读模拟口analogRead(pin)函数。
long random(max) 随机数函数,返回数据大于等于0,小于max。
long random(min, max) 随机数函数,返回数据大于等于min,小于max。
外部中断函数attachInterrupt(interrupt, , mode) 外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING下降沿中断。
detachInterrupt(interrupt) 中断开关,interrupt=1 开,interrupt=0 关。
中断使能函数interrupts() 使能中断noInterrupts() 禁止中断串口收发函数(speed) 串口定义波特率函数,speed表示波特率,如9600,19200等。
int () 判断缓冲器状态。
int () 读串口并返回收到参数。
() 清空缓冲器。
(data) 串口输出数据。
(data) 串口输出数据并带回车符。
/**********************************//************Arduino语言库文件*************/官方库文件EEPROM- EEPROM读写程序库Ethernet- 以太网控制器程序库LiquidCrystal- LCD控制程序库Servo- 舵机控制程序库SoftwareSerial- 任何数字IO口模拟串口程序库Stepper- 步进电机控制程序库Wire- TWI/I2C总线程序库Matrix- LED矩阵控制程序库Sprite- LED矩阵图象处理控制程序库非官方库文件DateTime- a library for keeping track of the current date and time in software.Debounce- for reading noisy digital inputs . frombuttons)Firmata- for communicating with applications on the computer using a standard serial protocol.GLCD- graphics routines for LCD based onthe KS0108 or equivalent chipset.LCD- control LCDs (using 8 data lines)LCD 4 Bit- control LCDs (using 4 data lines) LedControl- for controlling LED matrices orseven-segment displays with a MAX7221 or MAX7219. LedControl- an alternative to the Matrix library for driving multiple LEDs with Maxim chips.Messenger- for processing text-based messages from the computerMetro- help you time actions at regular intervals MsTimer2- uses the timer 2 interrupt to trigger an action every N milliseconds.OneWire- control devices (from Dallas Semiconductor) that use the One Wire protocol.PS2Keyboard- read characters from a PS2 keyboard. Servo- provides software support for Servo motors on any pins.Servotimer1- provides hardware support for Servo motors on pins 9 and 10Simple Message System- send messages between Arduino and the computerSSerial2Mobile- send text messages or emails using a cell phone (via AT commands over software serial)TextString- handle stringsTLC5940- 16 channel 12 bit PWM controller.X10- Sending X10 signals over AC power lines/****************************************/arduino学习笔记4 数据类型有多种类型的变量,如下所述boolean 布尔char 字符byte 字节int 整数unsigned int 无符号整数long 长整数unsigned long 无符号长整数float 浮点double 双字节浮点string 字符串array 数组arduino学习笔记5 Arduuino复合运算符+= , -= , *= , /=Description描述Perform a mathematical operation on a variable with another constant or variable. The += (et al) operators are just a convenient shorthand for the expanded syntax, listed below. 对一个变量和另一个参数或变量完成一个数学运算。
+=(以及其他)可以缩短语法长度。
Syntax语法x += y;返回变量原始值或增加/消耗后的新值。
Examples范例x = 2;y = ++x; // x now contains 3, y contains3 // x现在为3,y为3y = x--; // x contains 2 again, y still contains 3 // x现在仍然为2,y将为3arduino学习笔记6 Arduino基础在学语言之间,还要做的一个功课就是要明白程序的构架,这个也同样简单,大体可分为几个部分。
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 波)。