【发布时间】:2021-02-19 23:13:03
【问题描述】:
我正在尝试使用操纵杆来控制两个 LED 的亮度(最终将被步进电机取代)。 X 轴上操纵杆的静止模拟值是 504,最小值和最大值当然分别为 0 和 1023。我的目标是使用条件来确定要点亮哪个 LED,以及它应该有多亮。随着模拟值接近 1023,它应该会变得更亮。当模拟值接近 0 时,另一个灯泡的亮度应该会增加。
这是目前为止的相关代码:
if (xVal < 500) {
analogWrite(7, map(xVal, 0, 500, 255, 0));
}
else if (xVal > 510) {
analogWrite(6, map(xVal, 510, 1023, 0, 255));
}
如果该值大于 510,则它的行为符合要求。亮度逐渐增加,直到达到最大值 1023。
但是,对于少于 500 的情况,该行为不起作用。它只是在真实时实现最大亮度,无需调整 PWM。如果我理解映射功能正确,它不应该将模拟值 0 映射到最大 PWM 值吗?
【问题讨论】:
标签: arduino pwm arduino-c++