HueDial 调色器
此示例根据旋转电位器的位置控制 RGB LED 的颜色。 电位器的不同位置对应不同的 HUE 值,然后这些值被转换为 RGB 颜色值,从而使 RGB LED 改变颜色。
所需元件
在这个项目中,我们需要以下元件。
购买整套套件会更方便,以下是链接:
名称 |
套件所含项目 |
链接 |
|---|---|---|
Elite Explorer 套件 |
300+ |
您也可以从下面的链接单独购买。
元件介绍 |
购买链接 |
|---|---|
- |
|
接线
原理图
代码
备注
您可以直接打开路径
elite-explorer-kit-main\fun_project\03_huedial下的03_huedial.ino文件。或者将这段代码复制到 Arduino IDE 中。
工作原理
以下是代码的详细说明:
全局变量定义:
redPin、greenPin和bluePin:这些定义了连接到红色、绿色和蓝色 LED 的 PWM 引脚。KNOB_PIN:定义连接到旋转电位器的模拟输入引脚。setup():将 RGB LED 的引脚设置为输出。 默认情况下,模拟引脚被设置为输入,因此无需设置电位器引脚的输入模式。
loop():读取旋转电位器的值。该值的范围是 0 到 1023。 将电位器的值归一化到 0-1 的范围。 将归一化后的值转换为 0-360 范围的 HUE 值。 将 HUE 值转换为 RGB 值。 使用这些 RGB 值更新 LED 的颜色。
setColor():使用
analogWrite()函数为每个 LED 引脚设置适当的 PWM 值,以设置 RGB LED 的颜色。HUEtoRGB():此函数使用 HSL 到 RGB 的转换方法将 HUE 值转换为 RGB 值,但仅关注 HUE 分量,将饱和度和亮度保持在 100%。 该算法分为 6 个阶段,每个阶段覆盖 60 度。 它为每个 HUE 阶段计算 RGB 值,然后将这些值缩放到 0-255 的范围,这是
analogWrite()函数所期望的范围。