使用初学者的 Arduino 免焊接套件的光传感 MP3 播放器

发布人是

初学者的 Arduino 免焊接套件附带了您创建 MP3 播放器所需的一切,而 JJ 通过将 Vishay 环境光线传感器添加到混合体中来对其进行了增强。

包装盒中提供了用来播放音乐的 Adafruit Music Maker。

参阅相关产品

3208

Adafruit Industries Cartes et kits de développement de systèmes intégrés 查看

下面我们创建自己的应用程序,其中播放的音乐将依赖于环境光线。来自 Vishay 的 VEML6030 用作环境光线传感器来为我们提供勒克斯数。通过 I2C 总线获取此数据。

参阅相关产品

VEML6030

Vishay Capteur de lumière ambiante 查看

即使 Arduino 使 I2C 总线的编程变得非常容易,但必须了解基础知识才能对其进行编程。
I2C 总线是一项广泛用于传感器的标准。它由 Philips 设计(如今的NXP)并且仅使用 2 条线:一条线用于时钟(称作 SCL),一条用于数据(称作 SDA)。最后一条线是双向的。这些 teo 线是开路,并且需要上拉电阻器。这些是可在电路试验板上看到的电阻器。很显然,在最后的应用中,您将在电路试验板上设计这些电阻器。总线的主设备将生成时钟并启动与从设备的通信。每台从设备均具有一个 7 位地址。

参阅相关产品

PCF8584T/2,512

NXP Semiconductors Contrôleurs d’interface 查看

协议如下:主设备发送一个起始位(具有高 SCL 的 SDA 的高到低过渡),后跟要与之通信的地址的 7 位地址,再后跟单个位(如果希望在从设备中写入(0 位)或读取( 1 位)。在每个 8 位传输后,从设备将响应 ACK 位(SDA 置于较低位)。如果发射器发现位 1,则为 NACK(未确认)

通信结尾对应于 STOP 位。具有高 SCL 的 SDA 的低到高过渡。由于 SCL 较高时会出现起始位和停止位,因此 SDA 的所有其他过渡将在 SCL 较低时进行。

现在,我们已了解 I2C 的工作方式,我们来读取 VEML6030 数据表中的数据以了解要写入程序中的值。

首先,通过参阅 VEML6030 的原理图,我们可以看到地址 pin 允许配置地址值。在我们的电路试验板上,此 pin 是接地的,这意味着设备的地址为 0x10。
数据表说明了 I2C 接口以及如何发送命令。当我们需要对设备进行写入时,需要发送地址和命令代码。在 VEML6030 中,所有寄存器都是 16 位,并且 LSB 必须是第一个。因此,我们需要为 VEML6030 配置四分之一的增益和 100 毫秒的积分时间,并且我们需要启动环境光线传感器,LSB 等于 0x00,而 MSB 等于 0x18。在我们的程序中,我们依次在设置和 loop 函数中定义了宏,包括线库(称作 Wire.begin()),我们开始使用 VEML6030 的地址进行传输,寄存器命令(目前为 0x00),发送 LSB 和 MSB,然后 endTransmission。要参阅这些命令的更详细说明,您可以转至 Arduino 网站来查看库的说明。

读取数据的方式相同。我们开始传输,发送要从中读取数据的寄存器值、具有地址的 requestFrom 函数以及要读取的 2 个字节,并最终读取数据。

我们转换整数形式的勒克斯等级,并根据勒克斯值来最终决定要播放的音乐。
如果低于 20 勒克斯,我们将播放可促进睡眠的音乐。如果介于 20 和 50 勒克斯之间,则播放用于放松的音乐;如果介于 50 和 800 勒克斯之间,则播放积极向上的音乐;如果高于 800 勒克斯,我们会想象您在外参加聚会,并准备好播放电子音乐。

您现在已准备好使用任何类型的传感器来创建您自己的应用程序并定制您的音乐播放器。

最新视频

抱歉,您所选择的筛选条件未返回任何结果。

请仔细阅读我们近期更改的隐私政策。当按下确认键时,您已了解并同意艾睿电子的隐私政策和用户协议。

本网站需使用cookies以改善用户您的体验并进一步改进我们的网站。此处阅读了解关于网站cookies的使用以及如何禁用cookies。网页cookies和追踪功能或許用于市场分析。当您按下同意按钮,您已经了解并同意在您的设备上接受cookies,并给予网站追踪权限。更多关于如何取消网站cookies及追踪的信息,请点击下方“阅读更多”。尽管同意启用cookies追踪与否取决用户意愿,取消网页cookies及追踪可能导致网站运作或显示异常,亦或导致相关推荐广告减少。

我们尊重您的隐私。请在此阅读我们的隐私政策。