用Arduino和ws2812拾音氛围灯

本文介绍了如何使用Arduino和ws2812灯带制作一个拾音氛围灯,包括逐个点亮、熄灭、呼吸灯、拾音效果和炫彩光环等多种功能。通过Adafruit_NeoPixel库控制RGB灯带,并利用声音传感器根据环境声音调整灯光效果。此外,还提到了未来可能加入亮度调节和手势识别等扩展功能。
摘要由CSDN通过智能技术生成

材料

1、ws2812环形灯带
请添加图片描述
2、声音传感器(带模拟量输出)
请添加图片描述
3、Arduino开发板(全系列可用)
请添加图片描述

功能

因为ws2812灯带全彩特性,可以实现很多效果,这里我实现了逐个点亮、逐个熄灭、呼吸灯、拾音氛围灯、炫彩光环的功能。这里控制RGB灯带所用到的库为Adafruit_NeoPixel库。

逐个点亮

void onebyl()  //逐个熄灭
{
    
  pixels.setBrightness(0);
  for(int i=0;i<=NUMPIXELS;i++)
  {
   
    pixels.setBrightness(lumm);//亮度
    pixels.setPixelColor(i, pixels.Color(0,200,200)); //颜色设置
    pixels.show(); // 更新灯带显示
    delay(500); 
  }
}

逐个熄灭

逐个熄灭就是逐个点亮反过来

void onebym()  //逐个熄灭
{
    
  pixels.setBrightness(lumm);//亮度
  for(int i=NUMPIXELS;i>=0;i--)
  {
   
    pixels.setPixelColor(i, pixels.Color(0,0,0)); //颜色设置
    pixels.show(); // 更新灯带显示
    delay(500);
  }
}

呼吸灯

void breathing()  //呼吸灯
{
   
  for(int i=1;i<=200;i=i+5)
  {
   
    pixels.setBrightness(i);
    pixels.show();
    delay(10);
  }
  for(int i=200;i>=10;i=i-5)
  {
   
    pixels.setBrightness(i);
    pixels.show();
    delay(10);
  }
}

拾音灯

void pickup()  //拾音灯
{
   
  pixels.setBrightness(0);
  fre=analogRead(ain);
  Serial.println(fre);
  int ix=map(fre,490,600,0,6);
  for(int i=-1;i<=ix;i++)
  {
           
    int iz,iy;
    iz = i;
    iy = map(i,1,6,11,6);  
    if(i<=3)
    {
   
      pixels.setPixelColor(iz, pixels.Color(0,255,200));
      pixels.setPixelColor(iy, pixels.Color(0,255,200));
    }
    else if(i>3&&i<6)
    {
   
      pixels.setPixelColor(iz, pixels.Color(170,255,0));
      pixels.setPixelColor(iy, pixels.Color(170,255,0));
    }
    else if(i==6)
    {
   
      pixels.setPixelColor(iz, pixels.Color(255,0,0)
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值