0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于使用Arduino、加速度计和LED制作时间手套

电子设计 来源:电路城 作者:电路城 2021-04-29 16:17 次阅读

通过使用Arduino、加速度计和LED制作时间手套,通过倾斜双手,使其看起来像是在时间上静止,并在时间前后进行移动。

通过以特定频率闪烁LED来创建一种幻觉。计划将时间段设置为等于重复自身的时间段。如,在使用风扇的情况下,只要叶片到达特定位置,我们就会闪烁此灯。就像拍摄对象的时间点快照一样。如果频率等于旋转风扇的频率,我们将看到风扇静止不动,并感觉到它被及时冻结了。如果频率高一点,我们会感觉风扇向后旋转。如果频率稍低,我们会感觉风扇在向前旋转。您所要做的就是调整物体频率的频率闪烁LED。

所需组件:

Arduino

加速度计

光源–尝试使用5V LED和Neopixel 环

9V电池

一、步骤:

1、连接9V电池或DC电源适配器。此电压输入连接到7805稳压器,该稳压器会将未稳压的7到32V的DC电压转换为5V的DC电源。然后将这5 V电源连接到Arduino和指示灯LED以及加速度计。

基于使用Arduino、加速度计和LED制作时间手套

二、PCB布局、焊接

三、编码

1、Arduino LED项目的代码。先调用运行代码所需的库和头文件。由于使用的是neo pixel库,因此必须包括其头文件,引脚配置以及用于控制neopixel环的库。

#include 《Adafruit_NeoPixel.h》

#ifdef __AVR__

#include 《avr/power.h》

#endif

#define PIN 9

#define NUMPIXELS 16

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int x,y,ontime,offtime;

void setup() {

#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)

clock_prescale_set(clock_div_1);

#endif

pixels.begin();

Serial.begin(9600);

lightnormal(); // 打开灯5分钟,然后开始闪烁

delay(5000);

}

void loop() {

y=map(analogRead(A1), 250, 410, 10, 100);

Serial.print(“Y = ”);

Serial.println(y);

ontime = y/128;

offtime = y;

lightup();

}

void lightup()

{

pixels.clear();

pixels.show();

delay(offtime);

pixels.fill(pixels.Color(255, 255, 255), 0, 15);

pixels.show();

delay(ontime);

/* // 连接到D9的LED代码(如果您不使用Neopix环)

digitalWrite(D9, HIGH);

delay(ontime);

digitalWrite(D9, LOW);

delay(offtime);

*/

}

void lightnormal()

{

pixels.fill(pixels.Color(120, 120, 120), 0, 15);

pixels.show();

/* // 连接到D9的LED代码(如果您不使用Neopix环)

digitalWrite(D9, LOW);

*/

}

(不使用Neopixel LED环并与普通LED一起使用,则无需使用任何这些代码)

2、带LED的Arduino项目–代码说明

基于使用Arduino、加速度计和LED制作时间手套

声明4个变量X,Y,ON时间和OFF时间,在设置功能中,将初始化neopixel振铃,开始串行通信并打开LED或振铃5秒钟,然后开始闪烁。

void setup() {

#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)

clock_prescale_set(clock_div_1);

#endif

pixels.begin();

Serial.begin(9600);

lightnormal(); // 打开灯5分钟,然后开始闪烁

delay(5000);

}

在循环中,该功能将获取连接加速度计输出的引脚A1的模拟读数(其值在250到410之间变化),并将其映射到10到100之间的值。

y=map(analogRead(A1), 250, 410, 10, 100);

然后将该值除以128,然后按时存储在变量中,将值y保存在时间变量中。

ontime = y/128;

offtime = y;

打开和关闭neopixel环上的LED,其开启时间和关闭时间的值与关闭延迟相同。

在点亮功能中,将打开环网中的所有LED并等待一段时间(通常为几毫秒)。之后,它将清除所有LED并等待一段时间。这整个过程一次又一次地重复。

void lightup()

{

pixels.clear();

pixels.show();

delay(offtime);

pixels.fill(pixels.Color(255, 255, 255), 0, 15);

pixels.show();

delay(ontime);

/* // 连接到D9的LED代码(如果您不使用Neopix环)

digitalWrite(D9, HIGH);

delay(ontime);

digitalWrite(D9, LOW);

delay(offtime);

*/

}

唯一改变的是接通时间和断开时间,它们与加速度计的Y输出值成正比。这就是通过倾斜手来改变闪烁频率的方式。

正常照明功能将打开新像素环的所有LED。

3、Arduino LED项目的编码技巧

如果使用的是LED而不是新像素环,则可以使用这些代码代替此新像素代码。

在本节中,仅需进行调整。

y=map(analogRead(A1), 250, 410, 10, 100);

可以使用这些值,一旦知道正确的频率,就可以微调和调整这些值。首先,将打开时间和关闭时间设置为y。但经过如此多的试验,发现最好将导通时间的值设置得尽可能低。将其设置为与时间相比较低的值将获得更清晰的图像。这就是LED灯Arduino项目的代码。

四、上传代码

选择正确的端口和板,上传代码。

五、组装

将所有东西连接到手套了。可以使用胶枪将neopixel环固定在手套的手掌中,并将板子和电池固定在手套的背面。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22449

    浏览量

    645851
  • 稳压器
    +关注

    关注

    24

    文章

    4089

    浏览量

    92026
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184828
收藏 人收藏

    评论

    相关推荐

    两轴加速度计和三轴加速度计的使用区别?

    有个问题请教一下:在静态测量的情况下,两轴的加速度计在测得X、Y轴上的加速度后,是不是就可以根据这两个值和重力加速度g算出Z轴方向的加速度,这样的话XYZ三个方向的角度也可以推导出来。
    发表于 12-29 06:06

    USB微机电加速度计

    USB微机电加速度计:MEMS Accelerometer,是加速度计的一种,其中MEMS是微机电系统(Micro-Electro-Mechanical Systems)的英文缩写,是将微电子技术
    发表于 07-10 11:09

    加速度计的幻想与现实

    巨大误差,只是所需时间长一点。加速度计 可以 结合GPS导航系统9使用,在GPS信号短暂不可用时提供服务。较短的积分周期(一分钟左右)可以获得令人满意的结果, 而且巧妙的算法可以利用替代方法提供良好
    发表于 10-11 10:33

    加速度计的技术规格详解

    测量范围:传感器输出信号规格支持的加速度水平,通常用±g表示。 这是器件能够测量并通过输出精确表示的最大加速度。 例如,±3g加速度计的输出与高达±3g的加速度成线性关系。 若
    发表于 10-18 10:47

    MEMS加速度计性能成熟

    本文通过与市场上可买到的压电(PZT)状态监测加速度计进行比较,回顾了展示MEMS技术发展状况和性能水平的数据。 MEMS工艺技术的投资与设计创新相结合,大大提高了MEMS的性能,足以使MEMS成为
    发表于 10-29 17:11

    2476-100加速度计

    `SDI的高级型号2470和2476高性能三轴MEMS可变电容式加速度计坚固耐用,即插即用适用于各种苛刻要求的测量设备应用程序。两种型号的性能均优于在零至中频应用中使用的温度经历大的或快速的温度变化
    发表于 05-27 19:18

    2460-010加速度计

    `SDI的2460和2466型低成本三轴MEMS可变电容加速度计是坚固的即插即用测量设备,适用于各种苛刻的应用程序。两种型号在零到中等方面都出类拔萃频率商业和工业应用,特别是在可靠的情况下性能,极低
    发表于 05-28 14:41

    2422H-400加速度计

    在零到中频应用中经历过大或快速的温度过高温度变化或长时间保持极端高温或低温。SDI 2422H型包含三个正交安装的高级加速度计LCC,使它们对-55至+ 125°C的温度变化和梯度更加不敏感,并大大
    发表于 05-28 14:44

    2227-050加速度计模块

    `2227型模块结合了专门设计的高温,开放式印刷电路板(PCB)提供惯性应用和SDI的1527型战术级惯性所需的高稳定性导航MEMS加速度计。 2227是一种低质量,低功耗的模块,在电气和机械方面
    发表于 05-28 14:56

    1410L-100加速度计

    `1410型是一款集成式加速度计,可用于零至中频仪器应用测量加速。每个微型密封包装结合了微机械电容感应元件和包括检测放大器和sigma-的定制集成电路Delta A / D转换器。对温度相对不敏
    发表于 05-28 15:01

    1527J-010加速度计

    `1527型是一款小型,轻巧的集成MEMS加速度计,用于用于要求高重复性,低重复性的战术级惯性应用噪声,以及在-55至+ 125°C的环境中的长期稳定性。 1527型加速度计是由美国SDI完全
    发表于 05-28 15:04

    1521L-200加速度计

    `1521型是一款低成本通用集成MEMS加速度计,适用于零至中频需要极低噪声和可靠长期稳定性的工业应用。每个微型密封密封封装结合了MEMS电容式感应元件和包含感应器的定制集成电路放大器和差分输出级
    发表于 05-28 15:08

    加速度计的相关资料分享

    在20世纪40年代初,由德国人研制了世界上第一只摆式陀螺加速度计。此后的半个多世纪以来,由于航天、航空和航海领域对惯性测量元件的需求,各种新型加速度计应运而生,性能和精度也有了很大的完善和提高
    发表于 11-29 07:41

    设计具有成本效益的加速度计

    描述LIS3DSH 评估板我正在为地震目的设计具有成本效益的加速度计(MEMS 加速度计 + 数字化仪)。如今,我们可以找到几个使用 SBC(如 Raspberry Pi 和其他 MEMS 加速度计
    发表于 08-23 06:20

    如何使用加速度计查找移动车辆的速度

    我正在尝试使用加速度计查找移动车辆的速度。你有加速度计吗(ST)?请给我一个建议。如果任何机构完成了这个项目,请分享您的经验。谢谢你。
    发表于 01-13 07:16