描述 限制一数值于某范围内。 参数 x: 须限制范围的数值,任意资料型别 a: 限制范围的最小值,任意资料型别 b: 限制范围的最大值,任意资料型别 回传 x: 若 x 介于 a 和 b 之间 a: 若 x 小于 a b: 若 x 大于 b 范例 See also - min() - max() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed […]
描述 将某个范围内的一个数值重新映射到另一个范围,亦即数值 fromLow 被映射到数值 toLow 去,而数值 fromHigh 则被映射到数值 toHigh, value 则维持与 fromLow、fromHigh 的比例关系映射至新的范围。 value 不一定是在范围内的数值,因为有时候超出范围的数值可能会有其他用处;如果希望数值限制在预期的范围内,可在该函式的前后使用函式 constrain()。 任一范围的下限是可以高于或低于范围的上限的,所以 map() 函式也可以用来反转一个范围内的数值,例如: y = map(x, 1, 50, 50, 1); 这个函式也可以处理负数,例如以下范例: y = map(x, 1, 50, 50, -100); 函式一样有效而且可以运作得很好。 map() 函式使用整数运算,所以不会有小数点,小数的部分会被舍去,而不是采用四舍五入做进位。 参数 value: 被映射的数字 fromLow: value 原本的范围下限 fromHigh: value 原本的范围上限 toLow: 要映射的目标范围下限 toHigh: 要映射的目标范围上限 回传 映射后的值 范例 延伸 关于数学上的计算运作,这里有一个完整的方程式: […]
描述 计算一个数字的乘方结果,pow() 也可以计算小数次方的乘方结果,这在计算数值或曲线的指数映射时是很有用的。 参数 base: 欲乘方的数字 (double) exponent: 向上乘的次方数 (double) 回传 数字乘方的结果 (double) 范例 请参考 Arduino 代码库中的 fscale 函式 See also - sqrt() - double 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in […]
描述 计算一个数字的平方根。 参数 x: double 型别的数字。 回传 数字的平方根,型别是 double。 See also - pow() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.
描述 比较出两数中最大者。 参数 x: 第一个数,任意资料型别 y: 第二个数,任意资料型别 回传 两数中较大者 范例 注意 以直观的计数方式来说,max() 比较常用来让数值低于一个变数范围,而 min()比较常用来让数值高于一个变数范围。 警告 因为 max() 实作方式的关系,尽量避免在括号 () 中使用其他的函式,否则它可能会导致不正确的结果。 See also - min() - constrain() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples […]
描述 比较出两数中最小者。 参数 x: 第一个数,任意资料型别 y: 第二个数,任意资料型别 回传 两数中较小者 范例 注意 以直观的计数方式来说,max() 比较常用来让数值低于一个变数范围,而 min()比较常用来让数值高于一个变数范围。 警告 因为 min() 实作方式的关系,尽量避免在括号 () 中使用其他的函式,否则它可能会导致不正确的结果。 See also - max() - constrain() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples […]
描述 将程式暂停一段由参数指定的时间 (单位是微秒),1000 微秒 = 1 毫秒,1000000 微秒 = 1 秒。 目前产生的精确延迟时间最长约为 4000000 微秒,这个值会因为未来 86Duino 释出的版本不同而改变。延迟如果会超过数秒钟的话,建议使用 delay() 比较适合。 语法 delayMicroseconds(us) 参数 us: 暂停多少微秒 (unsigned long) 回传 无回传值 范例 将 pin 8 设定成输出,并且连续送出 100 微秒周期的脉冲。 警告与已知问题 一般来说这个函式在一定的时间范围内运作是很精确的,但是 delayMicroseconds() 等待期间并没有关闭中断,我们不能确定它是否一直都能拥有精确且极短的延迟时间。 See also - millis() - micros() - delay() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino […]
描述 回传从 86Duino 开始运行程式到目前所经过的时间,单位是微秒;这个时间大约会在 70 分钟后溢位 (回到零)。 注解:1000 微秒 = 1 毫秒,1000000 微秒 = 1 秒。 参数 回传 程式开始执行至目前所经过的时间,以微秒为单位 (unsigned long) 范例 See also - millis() - delay() - delayMicroseconds() 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons […]
描述 将程式暂停一段由参数指定的时间 (单位是毫秒,1000 毫秒 = 1 秒) 语法 delay(ms) 参数 ms: 暂停多少毫秒 (unsigned long) 回传 无回传值 范例 警告 虽然用 delay() 很容易能制作出闪烁的 LED 灯,也可以用来去除外部开关的瞬间抖动,不过,太常使用 delay() 也有一些显著的缺点;例如:在延迟的这段时间里,不能读取感测器、不能做数学运算、不能处理 pin 脚信号,也就是说它会让大部分的动作都停摆;作为控制时间的替代方案可以参考使用 millis() 函式还有程式码范例,许多有经验的程式设计师会避免使用 delay() 超过十毫秒,除非程式码本身相当简单。 然而,在 delay() 的这段延迟期间里,CPU 还是可以做某些事情的:由于这段时间里没有关闭中断,所以从序列埠的 RX pin 脚进来的资料都会被纪录下来,PWM (analogWrite) 的数值和 pin 脚状态也会被保存,中断事件也会照常运作。 See also - millis() - micros() - delayMicroseconds() - Blink Without Delay example […]
描述 回传从 86Duino 开始运行程式到目前所经过的时间,单位是毫秒;这个时间大约会在五十天后溢位 (回到零)。 参数 无参数 回传 程式开始执行至目前所经过的时间,以微秒为单位 (unsigned long) 范例 提醒: millis() 回传值是 unsigned long 资料型别,如果程式设计师尝试以其他的资料型别做运算处理则可能会产生错误。 See also - micros() - delay() - delayMicroseconds() - Tutorial: Blink Without Delay 语法参考主页面 本页由热血青年 LBU 译自英文版。 The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons […]