查看: 153|回复: 0

[未解决] ARDUINO 同时控制舵机和WS2812灯问题?

[复制链接]

该用户从未签到

发表于 2020-1-14 21:22 | 显示全部楼层 |阅读模式
     代码如下,程序目的是 舵机转动0-180° ,然后映射给WS2812 灯的 亮度,从而达到LED灯 随着舵机角度变化使亮度随着变化 ,现在出现问题,就是舵机转动的时候不连续,有卡顿(转着卡下再转,有点回退再转),监控角度也是连贯的。我自己删除 delay(20); 让舵机不减速转,那就没有卡顿或者删除 FastLED.show();,舵机也没卡顿,但是灯没刷新就不行了 ,新手研究N天没解决,打击了,麻烦各位看下程序对不,或者指条另外的路子,我可以研究下。
#include "FastLED.h"                    // 此示例程序需要使用FastLED库                    
#define NUM_LEDS 16                 // LED灯珠数量
#define DATA_PIN 5                      // Arduino输出控制信号引脚
#define LED_TYPE WS2812         // LED灯带型号
#define COLOR_ORDER GRB      // RGB灯珠中红色、绿色、蓝色LED的排列顺序
uint8_t max_bright =10;                 // LED亮度控制变量,可使用数值为 0 ~ 255, 数值越大则光带亮度越高
CRGB leds[NUM_LEDS];              // 建立光带leds

#include <Servo.h>  
Servo myservo;   
int pos = 0;                   // 角度初始为O
void setup()
{
  LEDS.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);  // 初始化光带
  myservo.attach(9);   
  Serial.begin(9600);

}

void loop()
{

  for(pos = 0; pos <=180; pos++)         // 0到180°
  {                                 

     myservo.write(pos);                //角度写入
     int LD = pos;                           //假设LD亮度=POS
     LD=map (LD,0,180,0,255);           //POS角度映射LD亮度
     FastLED.setBrightness(LD);         //设置亮度
     fill_solid(leds,16,CRGB::White);   //16个灯同时亮为白
     FastLED.show();                          //刷新LED灯(必写,不然灯不亮)
     delay(20);
     Serial.println(pos);

    }


delay(4000);

  for(pos = 180; pos>=0; pos--)     
  {              
    myservo.write(pos);              
    int LD = pos;   
    LD=map (LD,180,0,255,0);  
    FastLED.setBrightness(LD);
    fill_solid(leds,16,CRGB::White);
    FastLED.show();
    delay(20);
    Serial.println(pos);                  
}
    delay(4000);

}





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

[限时福利]5分钟带你快速了解新一代开发板:M5STACK
[限时福利]5分钟带你快速
一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
小爱同学+Blinker控制灯
小爱同学+Blinker控制灯
来这个社区已经很久了,有很多问题都是在这里解决的。在此谢谢他们!这里我也分享一个
使用74hc595驱动一位数码管
使用74hc595驱动一位数码
74hc595是一种常用的I/O拓展芯片,今天我尝试用一个74hc595来驱动一个一位七段数码管
74HC595的疑惑终于解开
74HC595的疑惑终于解开
对于74HC595的教程中和网上的资料看完还是模糊,于是一边接线测试,一边反复看图研究
数据转换求助!!!
数据转换求助!!!
如何将 String str =“123,2132,1321,11”; 转换成 uint16_t A[4]= str
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表