查看: 140|回复: 1

blinker 模式 选择错误

[复制链接]

该用户从未签到

发表于 2019-3-15 19:49 | 显示全部楼层 |阅读模式
#include <Blinker.h>
#include <C:\Users\宁爸爸\Documents\Arduino\libraries\Adafruit_NeoPixel.h>

#define PIN D6
#define BRIGHTNESS 50
#define BLINKER_WIFI

char auth[] = "6abe9fd75ce2";
char ssid[] = "Mr_Ning";
char pswd[] = "bcptdtptp";

int states = 0, r,g,b,l,Direction = -10;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(4, PIN, NEO_GRB + NEO_KHZ800);

// 新建组件对象
BlinkerButton Button1   ("Power");
BlinkerButton Button2   ("Breathing_light");
BlinkerButton Button3   ("rainbow");
BlinkerButton Button4   ("rainbowcycle");
BlinkerRGB    RGB1      ("RGBKey");

int counter = 0;

// 按下按键1即会执行该函数
void button1_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    if ( states = 0 )
    {
      states = 1;
      colorWipe(strip.Color(250, 250, 250), 150);
      r = 250;
      g = 250;
      b = 250;
      l = 150;
    }
    else
    {
      states = 0;
      colorWipe(strip.Color(0, 0, 0), 0);
    }
}

// 按下按键2即会执行该函数
void button2_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    BLINKER_LOG("Breathing_light!!");
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    states = 2;
}

// 按下按键3即会执行该函数
void button3_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    BLINKER_LOG("rainbow");
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    states = 3;
}

// 按下按键4即会执行该函数
void button4_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    BLINKER_LOG("rainbowcycle");
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    states = 4;
}

// 颜色拾取模块数据发生变化即会执行该函数
void rgb1_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
{
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("R value: ", r_value);
    BLINKER_LOG("G value: ", g_value);
    BLINKER_LOG("B value: ", b_value);
    BLINKER_LOG("Rrightness value: ", bright_value);
    colorWipe(strip.Color(r_value, g_value, b_value), 20);
    r = r_value;
    g = g_value;
    b = b_value;
    l = int(bright_value*0.58);
}

// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}

void setup()
{
    // 初始化串口
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);

    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);

    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);

    //LED初始化
    strip.setBrightness(BRIGHTNESS);
    strip.begin();
    strip.show();

    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    Button3.attach(button3_callback);
    Button4.attach(button4_callback);
    RGB1.attach(rgb1_callback);
}

void loop()
{
    Blinker.run();
    switch (state)
    {
      case 2 :
      {
        if ( l <= 10 )
            Direction = 10;
        if ( l >= 140 )
            Direction = -10;
        l += Direction;

        colorWipe(strip.Color(r*(l/250), g*(l/250), b*(l/250)), 20);
       }
       case 3 : rainbow(10);
       case 4 : rainbowCycle(10);
    }
}

//LED

void colorWipe(uint32_t c, uint8_t wait) {
  for (uint16_t i = 0; i < strip.numPixels(); i++) {
    strip.setPixelColor(i, c);
    strip.show();
    delay(wait);
  }
}

void rainbow(uint8_t wait) {
  uint16_t i, j;
  for (j = 0; j < 256; j++) {
    for (i = 0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i + j) & 255 ));
    }
    strip.show();
    delay(wait);
  }
}

void rainbowCycle(uint8_t wait) {
  uint16_t i, j;
  for (j = 0; j < 256 * 5; j++) { // 5 cycles of all colors on wheel
    for (i = 0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}

uint32_t Wheel(byte WheelPos) {
  if (WheelPos < 85) {
    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
    WheelPos -= 170;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}



#error Please set a mode BLINKER_BLE/BLINKER_WIFI/BLINKER_MQTT ! Please check your mode setting.


  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-3-15 20:46 | 显示全部楼层
    #include <C:\Users\宁爸爸\Documents\Arduino\libraries\Adafruit_NeoPixel.h>
    不能这么引用库。。。
    改为#include <Adafruit_NeoPixel.h>
    建议先学习C/C++基础
    如果以上内容对你有帮助,你可以通过打赏支持作者
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    有没人做过把arduino跟生物结合起来做课题的
    有没人做过把arduino跟生
    我想做一些这方面的有没有人做过可以稍微指点一下
    跪求,nano读两个软串口传感器,写入sd卡,一个读不到数
    跪求,nano读两个软串口传
    dfrobot的nano板,两个软串口连接攀藤pm2.5传感器和GPS ublox m8n,SPI连sd卡模块。
    Arduino2560/MegaPi与ROS机器人操作系统的连接
    Arduino2560/MegaPi与ROS
    大家好,我因为需要更多时间维系琐碎平凡的工作和生活,一段时间没有上Arduino论坛。
    atmegu328p开发板怎么做流水灯啊
    atmegu328p开发板怎么做流
    我是白小 求指点
    BuddyBlock 1.0.0 测试版发布,一款面向Arduino的图形化开发工...
    BuddyBlock 1.0.0 测试版
    BuddyBlock是一款面向Arduino图形化编程开发的集成开发工具,开发者可以通过积木模块
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表