beatsin8可以视作一个信号发生器。它的返回值会沿着正弦曲线返回数值。
用法
beatsin8(beats_per_minute, lowest, highest)
参数
beats_per_minute: 每分钟产生循环次数
lowest: 最小值
lowest: 最大值
示例语句
以下图示为
beatsin8(10, 0, 255) 返回值示意图。↓
这一示例语句中第一个参数为10。这说明此函数所产生的正弦曲线周期时间为6秒(1分钟有60秒,60除以参数10等于6秒钟)。第二个参数为0。这说明此函数所产生的正弦曲线最小返回值为0(如图中绿色数字所示)。第三个参数为255。这说明此函数所产生的正弦曲线最大返回值为255(如图中红色数字所示)。
以下图示为
beatsin8(10, 0, 100) 返回值示意图。↓
这一示例语句修改了上面的示例语句的第三个参数。因此示意图中函数的最大返回值由255变为100(如图中红色数字所示)。
以下图示为
beatsin8(10, 90, 100) 返回值示意图。↓
这一示例语句修改了上面的示例语句的第二个参数。因此示意图中函数的最小返回值由0变为90(如图中绿色数字所示)。
以下图示为
beatsin8(20, 90, 100) 返回值示意图。↓
这一示例语句修改了上面的示例语句的第一个参数。因此示意图中正弦曲线周期时间由6秒变为3秒(如图中绿色蓝字所示)。
示例程序
以下示例程序演示beatsin8函数的返回数值随着时间的变化而产生的变化。请将此程序上传Arduino并打开串口监视器就可以可看到beatsin8函数的返回值随着时间的变化产生的变化。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/* beatsin8 LIB8STATIC uint8_t beatsin8 ( accum88 beats_per_minute, uint8_t lowest = 0, uint8_t highest = 255, uint32_t timebase = 0, uint8_t phase_offset = 0 ) */ #include "FastLED.h" // FastLED库 void setup() { Serial.begin(9600); Serial.println("Time sin8demoVar"); } void loop() { long seconds = millis()/1000; // 获取程序运行时间 //串口监视器输出beatsin8函数返回数值 //随着时间变化而产生的变化 Serial.print(seconds);Serial.print(" ");Serial.println(beatsin8(10, 0, 255)); delay(50); } |