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

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

3天内不再提示

加速度计控制的LED的制作图解

454398 来源:wv 2019-10-25 17:51 次阅读

步骤1:材料

Arduino Uno

加速度计模块

LED

连接线

面包板

USB数据线

步骤2:连接加速度计

加速度计主要有5个端子

VCC(5V)

接地

X轴

Y轴

Z轴

电源电压和接地由Arduino Uno通过连接线提供。通电后,板上的红色小LED发光,表明模块正在读取X,Y和Z轴的运动。

步骤3:互连LED的

为了控制LED,必须将它们互连到Arduino Uno。负极端子与地面(Arduino的Gnd)共用,正极端子与Arduino的数字引脚相连。

第4步:编写代码

这部分需要一些思考。为了使X,Y和Z轴控制LED的亮度,必须将它们连接到Arduino的Analog引脚。

代码可能类似于此代码-

const int RedPin = 3;

const int GreenPin = 5;

const int BluePin = 6;

const int sensorPinRed = A0;

const int sensorPinGreen = A2;

const int sensorPinBlue = A4;

int var = 1 ;

int minReadingRed = 750;

int maxReadingRed = 0;

int minReadingGreen = 750;

int maxReadingGreen = 0;

int minReadingBlue = 750;

int maxReadingBlue = 0;

int模拟值= 0;

int时间;

int模拟输出;

int闪烁;

无效setup(){

Serial.begin(9600);

Serial.println();

}

void loop(){

while(time 《1000){

时间= millis();

AnalogWrite(RedPin,255);

AnalogWrite(GreenPin,255);

AnalogWrite(BluePin,255);

延迟(1000);

AnalogWrite(RedPin,0);

AnalogWrite(GreenPin,0);

AnalogWrite(BluePin,0);

延迟(10);

}

而(time》 1000 && time 《16000){

time = millis() ;

analogValue = AnalogRead(sensorPinRed);

maxReadingRed = max(analogValue,maxReadingRed);

minReadingRed = min(analogValue,minReadingRed);

Serial.print(“ Analog Red”);

Serial.print(analogValue,DEC);

延迟(20);

analogValue = AnalogRead(sensorPinGreen);

maxReadingGreen = max(analogValue,maxReadingGreen);

minReadingGreen = min(analogValue,minReadingGreen);

Serial.print(“ Analog Green”);

Serial.print(analogValue,DEC);

延迟(20);

analogValue = AnalogRead(sensorPinBlue);

maxReadingBlue = max(analogValue,maxReadingBlue);

minReadingBlue = min(analogValue,minReadingBlue);

Serial.print(“ Analog Blue”);

Serial.println(analogValue,DEC);

延迟(20);

}

while(时间》 16000 &&时间《17000){

时间= millis() ;

analogWrite(RedPin,255);

AnalogWrite(GreenPin,255);

AnalogWrite(BluePin,255);

延迟(1000);

AnalogWrite(RedPin,0);

AnalogWrite(GreenPin,0);

AnalogWrite(BluePin,0);

}

而(var == 1){

minReadingRed = minReadingRed + 0.5 * (maxReadingRed-minReadingRed);

minReadingGreen = minReadingGreen + 0.5 *(maxReadingGreen-minReadingGreen);

minReadingBlue = minReadingBlue + 0.5 *(maxReadingBlue-minReadingBlue);

Serial.println();

Serial.print(“ minReadingRed =”);

Serial.print(minReadingRed,DEC);

Serial.print(“ maxReadingRed =”);

Serial.println(maxReadingRed,DEC);

Serial.print(“ minReadingGreen =”);

Serial.print(minReadingGreen,DEC);

Serial.print(“ maxReadingGreen =”);

Serial.println(maxReadingGreen,DEC);

Serial.print(“ minReadingBlue =”);

Serial.print(minReadingBlue,DEC);

Serial.print(“ maxReadingBlue =”);

Serial.println(maxReadingBlue,DEC);

var = 2;

}

analogValue = AnalogRead(sensorPinRed);

AnalogValue = constrain(analogValue,minReadingRed,maxReadingRed);

Serial.print(“ analogValue Red =”);

Serial.print(analogValue);

AnalogOut = map(analogValue,minReadingRed,maxReadingRed,0,255);

AnalogOut = constrain(analogOut,0,255);

Serial.print(“缩放为”);

Serial.print(analogOut,DEC);

AnalogWrite(RedPin,AnalogOut);

analogValue = AnalogRead(sensorPinGreen);

AnalogValue = constrain(analogValue,minReadingGreen,maxReadingGreen);

Serial.print(“ Green =”);

Serial.print(analogValue);

模拟输出= map(analogValue,minReadingGreen,maxReadingGreen,0,255);

AnalogOut = constrain(analogOut,0,255); Serial.print(“缩放为”);

Serial.print(analogOut,DEC);

analogWrite(GreenPin,AnalogOut);

analogValue = AnalogRead(sensorPinBlue);

AnalogValue = constrain(analogValue,minReadingBlue,maxReadingBlue);

Serial.print(“ Blue =”);

Serial.print(analogValue);

模拟输出= map(analogValue,minReadingBlue,maxReadingBlue,0,255);

AnalogOut = constrain(analogOut,0,255);

Serial.print(“缩放为”);

Serial.println(analogOut,DEC);

AnalogWrite(BluePin,AnalogOut);

延迟(25);

analogValue = AnalogRead(sensorPinRed);

AnalogOut = map(analogValue,minReadingRed,maxReadingRed,0,255);

Serial.print(“ Red =”);

Serial.print(analogValue,DEC);

analogWrite(RedPin,AnalogOut);

analogValue = AnalogRead(sensorPinGreen); AnalogOut = map(analogValue,minReadingGreen,maxReadingGreen,0,255);

Serial.print(“ Green =”);

Serial.print(analogValue,DEC);

analogWrite(GreenPin,AnalogOut);

analogValue = AnalogRead(sensorPinBlue);

模拟输出= map(analogValue,minReadingBlue,maxReadingBlue,0,255);

Serial.print(“ Blue =”);

Serial.println(analogValue,DEC);

AnalogWrite(BluePin,AnalogOut);

delay(25);

步骤5:上传代码!

再次检查所有连接,然后将代码上载到板。现在,您可以通过运动来控制LED的亮度。当倾斜到相应的轴时,不同颜色的LED点亮。

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

    关注

    242

    文章

    23409

    浏览量

    664186
收藏 人收藏

    评论

    相关推荐

    ADXL345超低功耗3轴加速度计中文手册

    电子发烧友网站提供《ADXL345超低功耗3轴加速度计中文手册.pdf》资料免费下载
    发表于 01-06 16:35 1次下载

    MEMS加速度计的工作原理是什么

    MEMS加速度计的工作原理主要基于牛顿第二定律,即力等于质量乘以加速度。以下是对其工作原理的介绍: 一、核心部件与结构 MEMS加速度计的核心部件包括一个微小的质量块、弹性元件(如弹簧梁)以及检测器
    的头像 发表于 11-20 10:09 1106次阅读

    PCB Piezotronics推出357A67型三轴电荷输出加速度计

    据麦姆斯咨询报道,近期,PCB Piezotronics推出了357A67型三轴电荷输出加速度计,以满足高温应用需求。这款新型号是PCB Piezotronics目前最小的三轴电荷输出加速度计,可
    的头像 发表于 11-09 11:03 1267次阅读
    PCB Piezotronics推出357A67型三轴电荷输出<b class='flag-5'>加速度计</b>

    具有TLV2772的3V加速度计

    电子发烧友网站提供《具有TLV2772的3V加速度计.pdf》资料免费下载
    发表于 10-11 11:00 0次下载
    具有TLV2772的3V<b class='flag-5'>加速度计</b>

    EPSON工业级加速度计选型

    爱普生加速度计(Accelerometers)是一种工业级三轴输出压电式加速度传感器,采用具有专利技术的双音叉式石英传感器元件和Quarts光刻技术,通过压电效应来计算出诸如此类的内容物体运动的方向
    的头像 发表于 09-19 15:31 380次阅读
    EPSON工业级<b class='flag-5'>加速度计</b>选型

    e2studio开发三轴加速度计LIS2DW12(2)----基于中断信号获取加速度数据

    本文将介绍实时获取和处理加速度数据。程序的核心流程包括初始化硬件接口、配置加速度计的参数,以及通过轮询检查中断信号来不断读取加速度数据。
    的头像 发表于 08-09 15:43 644次阅读
    e2studio开发三轴<b class='flag-5'>加速度计</b>LIS2DW12(2)----基于中断信号获取<b class='flag-5'>加速度</b>数据

    ADXL355三轴加速度计手册

    电子发烧友网站提供《ADXL355三轴加速度计手册.zip》资料免费下载
    发表于 07-11 11:24 1次下载

    三轴加速度计LIS2DUX12开发(2)----静态校准

    零偏是影响加速度计输出精度的重要指标之一,零偏可分为静态零偏和动态零偏 。静态零偏也称为固定零偏,通常经标定与补偿减小静态零偏。动态零偏是由于加速度计自身的缺陷或环境因素(如温度、振动、电子干扰等
    的头像 发表于 05-17 15:27 1381次阅读
    三轴<b class='flag-5'>加速度计</b>LIS2DUX12开发(2)----静态校准

    微纳光栅MOEMS加速度计的工作原理及仿真设计

    微机电系统(MEMS)加速度计以其体积小、功耗低、成本低等优势广泛应用在无人驾驶、地震检测等领域。
    的头像 发表于 05-17 09:33 1273次阅读
    微纳光栅MOEMS<b class='flag-5'>加速度计</b>的工作原理及仿真设计

    三轴加速度计LIS2DW12开发(4)----测量倾斜度

    本文将介绍如何驱动和利用LIS2DW12三轴加速度计的倾斜检测理论和倾斜角测量方法。一般来说,这里描述的程序也可以应用于三轴模拟或数字加速度计,这取决于它们各自的规格。
    的头像 发表于 05-16 17:18 1373次阅读
    三轴<b class='flag-5'>加速度计</b>LIS2DW12开发(4)----测量倾斜度

    备受青睐的MEMS加速度计,更小尺寸、更低功耗、更智能

    电子发烧友网报道(文/李宁远)作为导航测量系列的基础元器件之一,加速度计是测量运载体加速度的器件。它被广泛应用于消费电子、工业自动化、汽车、航空航天等各个领域,能够为单一设备或者整个系统收集状态信息
    的头像 发表于 05-12 08:02 3602次阅读

    采用可调电热微梁的近零刚度MEMS加速度计

    MEMS加速度计正越来越多地应用于各种移动和测试设备,以测量运动、冲击和振动。
    的头像 发表于 05-09 09:11 698次阅读
    采用可调电热微梁的近零刚度MEMS<b class='flag-5'>加速度计</b>

    Kistler推出了8740A和8788A系列加速度计

    据麦姆斯咨询报道,近期,Kistler推出了8740A和8788A系列加速度计,可用于航空航天领域的振动测量。
    的头像 发表于 04-28 09:04 582次阅读

    加速度计的输出都是数字信号,那么它的带宽,截止频率这些参数是什么意思?

    加速度计的输出都是数字信号,那么它的带宽,截止频率这些参数是什么意思?
    发表于 04-02 07:34

    爱普生的M-A552加速度计是结构健康监测的理想选择

    爱普生加速传感技术有助于实现更安全的社会基础设施精工爱普生公司(TSE:6724,“爱普生”)在其三轴加速度计阵容中增加了两款新的高性能产品。M-A552AC1支持CAN*1通信协议,而
    的头像 发表于 02-28 17:34 496次阅读
    爱普生的M-A552<b class='flag-5'>加速度计</b>是结构健康监测的理想选择