功能:使程序暂定设定的时间(单位秒)。一秒等于1000毫秒,也可以输入0.1,表示100ms。
语法:delay(1 * 1000);
功能:for语句用于重复执行一段在花括号之内的代码。通常使用一个增量计数器计数并终止循环。for语句用于重复性的操作非常有效,通常与数组结合起来使用来操作数据、引脚。
语法: for (int index = 0; index < 10; index++) {};
功能:void用来声明一个函数,该函数不会返回任何数据。模块内的全部代码会无限重复执行。
语法:void loop() {};
备注:如果不调用此模块,则全部代码都会出现在void setup()的{}里面,所有代码只会执行一次。
功能:if 语句与比较运算符一起用于检测某个条件是否达成,如某输入值是否在特定值之上等。
语法:if (false) {};
功能:if/else是比if更为高级的流程控制语句,它可以进行多次条件测试。比如,检测模拟输入的值,当它小于500时该执行哪些操作,大于或等于500时执行另外的操作。
语法:if (false) {} else{};
功能:while循环会无限的循环,直到括号内的判断语句变为假。必须要有能改变判断语句的东西,要不然while循环将永远不会结束。这在您的代码表现为一个递增的变量,或一个外部条件,如传感器的返回值。
语法:while (!false) {};
功能:while循环会无限的循环,直到括号内的判断语句变为假。必须要有能改变判断语句的东西,要不然while循环将永远不会结束。这在您的代码表现为一个递增的变量,或一个外部条件,如传感器的返回值。
语法:while (!false) {};
备注:代码层和指令等待<>是一样的,只不过这里可以嵌套更多的指令
功能:将括号内的两个数相加
语法:(0 + 0);
功能:将括号内的两个数相减
语法:(0 - 0);
功能:将括号内的两个数相乘
语法:(0 * 0);
功能:将括号内的两个数相除
语法:(0 / 0);
功能:使用random()函数将生成介于1到10之间的随机数。
语法:random(1, 10);
功能:判断输入值是否大于特定值。比较运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 > 50);
功能:判断输入值是否小于特定值。比较运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 < 50);
功能:判断输入值是否等于特定值。比较运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 == 50);
功能:只有两个运算对象为“真”,才为“真”。逻辑运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 && 0);
功能:只要一个运算对象为“真”,就为“真”。逻辑运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 || 0);
功能:如果运算对象为“假”,则为“真”。逻辑运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(!false);
功能:将两个字符串合并到一起
语法:(String(“苹果”) + String(“香蕉”);
功能:输出当前字符串中的第N个字符
语法:(String(“苹果”).charAt(0);
功能:输出当前字符串的长度。
语法:(String(“苹果”).length();
功能:判断当前字符串内是否包含特定字符,常与if 语句配合一起用于检测某个条件是否达成。
语法:(String(“苹果”).indexOf(String(“果”));
功能:一个整数除以另一个数,其余数称为模。它有助于保持一个变量在一个特定的范围(例如数组的大小)。
语法:(0 % 0);
功能:计算接近于给定参数的整数值。
语法:(round(0);
功能:计算一个数的绝对值,此功能包含更多数学指令,详见下拉菜单中的选项。
语法:(abs(0));
功能:用于控制板和一台计算机或主控制器之间的通信。串口又称作为UART或USART。它通过0(RX)和1(TX)数字引脚经过串口转换芯片连接计算机USB端口与计算机进行通信。因此,如果你使用这些功能的同时你不能使用引脚0和1作为输入或输出。
本软件内置的串口监视器可与主控制器通信。监视器窗口在操作界面的右下角,可以点击小扳手图标进行特殊配置。需要在弹出菜单中的波特率选项中,设置与调用begin()函数相同的波特率。
将串行数据传输速率设置为位/秒(波特)。与计算机进行通信时,常用的波特率:9600,57600或115200。当然,您也可以指定其他波特率。本指令通常放在loop循环指令上面,只需要运行一次即可。
语法:Serial.begin(9600);
选项:换行、不换行
功能:打印数据到串行端口,输出人们可识别的ASCII码文本并回车 (ASCII 13, 或 '\r') 及换行(ASCII 10, 或 '\n')。此命令采用的形式与Serial.print ()相同 。
语法:Serial.println(“Hello OpenBlock”);
功能:获取从串口读取有效的字节数(字符)。这是已经传输到,并存储在串行接收缓冲区(能够存储64个字节)的数据。 available()继承了 Stream类。
语法:Serial.available();
功能:读取传入的串口的数据。read() 继承自 Stream 类。
语法:Serial.read();
功能:将一个数从一个范围映射到另外一个范围。也就是说,会将 fromLow 到 fromHigh 之间的值映射到 toLow 在 toHigh 之间的值。
不限制值的范围,因为范围外的值有时是刻意的和有用的。如果需要限制的范围, constrain() 函数可以用于此函数之前或之后。
注意,两个范围中的“下限”可以比“上限”更大或者更小,因此 map() 函数可以用来翻转数值的范围。
语法:map(50, 1, 100, 1, 1000);
功能:将一个数约束在一个范围内。
语法:constrain(50, 1, 100);
选项:整数、小数、字符串
功能:将当前数值转换为整数、小数或者字符串。
语法:String(“123”).toInt();
功能:将一个变量的类型变为ASC2字符。
语法:String(char(97);
功能:将一个变量的类型变为ASC2编码。
语法:toascii(String(“a”)[0]);
基础为主控制器常用的硬件指令
功能:将指定的引脚配置成输入、输出或者输入上拉。其中输入上拉属于高级功能,用户在不熟悉硬件原理的情况下应谨慎使用。
语法:pinMode(3, INPUT);
功能:给一个数字引脚写入HIGH或者LOW。
如果一个引脚已经使用pinMode()配置为OUTPUT模式,其电压将被设置为相应的值,HIGH为5V,LOW为0V。
如果引脚配置为INPUT模式,使用digitalWrite()写入HIGH值,将使内部20K上拉电阻(详见数字引脚教程)。写入LOW将会禁用上拉。上拉电阻可以点亮一个LED让其微微亮,如果LED工作,但是亮度很低,可能是因为这个原因引起的。补救的办法是 使用pinMode()函数设置为输出引脚。
语法:digitalWrite(3, HIGH);
功能:从一个端口输出模拟值(PWM),此端口会对应一个特定的引脚。可用于让LED以不同的亮度点亮或驱动电机以不同的速度旋转。analogWrite()输出结束后,该引脚将产生一个稳定的特殊占空比方波,直到下次调用analogWrite()(或在同一引脚调用digitalRead()或digitalWrite())。PWM信号的频率大约是490赫兹。
目前只有引脚3,5,6,9,10和11可以实现该功能。
analogWrite函数与模拟引脚、analogRead函数没有直接关系。
语法:analogWrite(3, 255);
功能:从一个端口输出模拟值(PWM),此端口会对应一个特定的引脚。可用于让舵机旋转到不同的角度。WM信号的频率大约是50赫兹。
此指令会首先用#include调用舵机库,声明舵机变量,绑定引脚,并写入特定角度到舵机(对应特定PWM)。
目前只有引脚3,5,6,9,10和11可以实现该功能。
语法:#include <Servo.h>Servo servo3;servo3.attach(3, 544, 2400);servo3.write(90);
说明:V1版本暂不支持此指令
选项:高、低
功能:点亮或熄灭状态指示灯,状态灯对应硬件引脚为13。
语法:digitalWrite(13, HIGH);
说明:点亮或熄灭状态指示灯,状态灯对应硬件引脚为13。开机默认绿灯常亮(适用于硬件V2,OB版本2.3.6,V1无状态灯,V1版本暂不支持此指令)
选项1:绿灯、蓝灯
选项2:高、低
选项:3、5、6、9、10、11、A0、A1、A2、A3、A4、A5
功能:读取指定引脚的值,HIGH或LOW。
语法:digitalRead(3);
说明1:V1版本为软件上拉(适用于OB版本2.3.5),V2版本为硬件上拉(适用于OB版本2.3.6)。注意区分指令
说明2:长按5s中间按键开机、长按5s中间按键关机。开机默认绿灯常亮(适用于硬件V2,OB版本2.3.6,V1无状态灯)
选项:左、中(长按5s开机)、右
功能:读取指定引脚的值,HIGH或LOW
语法:pinMode(4, INPUT_PULLUP);if (digitalRead(4)) {};
功能:从指定的端口读取数据值。每个端口对应一个模拟引脚。它们分别是A0、A1、A2、A3、A4、A5、A6。 本控制器拥有6通道的10位模拟数字转换器。这意味着它将0至5伏特之间的输入电压映射到0至1023之间的整数值。这将产生读数之间的关系:5伏特/ 1024单位,或0.0049伏特(4.9 mV)每单位。输入范围和精度可以使用analogReference()改变。 它需要大约100微秒(0.0001)来读取模拟输入,所以最大的阅读速度是每秒10000次。
语法:analogRead(A0);