读取串行ASCII编码的字符串 示例程序: 程序解释: 此草图使用Serial.parseInt () 函数来定位由非字母数字字符分隔的值。人们通常使用逗号来表示不同的信息(这种格式通常称为逗号分隔值或CSV),但其他字符(如空格或句点)也可以使用。这些值被解析为整数并用于确定 RGB LED 的颜色。您将使用 Arduino 软件 (IDE) 串行监视器将“5,220,70”之类的字符串发送到电路板以更改灯光颜色。 所需硬件 Arduino板 共阳极RGB LED 3 220 欧姆电阻 连接线 面包板 电路
示意图
你需要四根电线来制作上面的电路。一根电线将 5V 从板的 POWER 连接器连接到 RGB LED 的最长引脚。您应该转动 LED,使最长的引脚是左数第二个。 将 RGB LED 放在面包板上,最长的引脚从上数第二个。检查特定 LED 的数据表以验证引脚,但它们应该是 R、V+、G 和 B。因此,5V 的电线应该从顶部连接第二个引脚,如上面的连接方案中所示。 使用剩余的电线,将红色阴极连接到引脚 3,将绿色阴极连接到引脚 5,将蓝色阴极连接到引脚 6,并与电阻串联。 具有共阳极的 RGB LED 共享一个公共电源引脚。无需将引脚转为高电平来点亮 LED,您需要将引脚转为低电平,以在二极管上产生电压差。因此,通过analogWrite() 发送255 会关闭LED,而值0 会在全亮度下打开它。在下面的代码中,您将在草图方面使用一些数学,因此您可以发送与预期亮度相对应的值。本质上,您将调用analogWrite(pin, 255-brightness),而不是使用analogWrite(pin,brightness)。 代码 您将首先为 LED 将连接到的引脚设置一些全局变量。这将使您在程序的主要部分更容易区分哪个是红色、绿色和蓝色: 在您的设置() 中,开始以每秒 9600 位数据在电路板和您的计算机之间进行串行通信,使用以下行: 同样在设置中,您需要将引脚配置为输出: 在loop ()中,查看串口缓冲区中是否有数据。通过将其设为while()语句,只要有信息等待读取,它就会运行: 接下来,声明一些用于存储串行信息的局部变量。这将是 LED 的亮度。使用Serial.parseInt () 以逗号分隔数据,将信息读入您的变量中: 将数据读入变量后,检查换行符以继续: 使用约束(),您可以将值保持在 PWM 控制的可接受范围内。这样,如果该值超出了 PWM 可以发送的范围,它将被限制为一个有效数字。通过从 255 中减去该值,您将格式化该值以与共阳极 LED 一起使用。如上所述,当阳极和连接到电路板的引脚之间存在电压差时,这些 LED 将亮起: 现在您已经格式化了 PWM 的值,使用analogWrite () 来更改LED 的颜色。因为您在上述步骤中从 255 中减去了您的值: 将每个 LED 的值以十六进制值的形式发送回串行监视器: 最后,关闭if语句、while 语句和主循环的括号: 对板进行编程后,打开 Arduino 软件 (IDE) 串行监视器。确保您在发送消息时选择了发送换行符。按以下格式为灯光输入 0-255 之间的值:红、绿、蓝。将值发送到电路板后,连接的 LED 将变为您指定的颜色,您将在串行监视器中收到 HEX 值。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/74283.html