查看: 293|回复: 5

[分享] 用blinker做一个可调速的RGB笔记本散热风扇

[复制链接]
  • TA的每日心情
    开心
    2019-8-14 00:00
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2019-8-1 23:30 | 显示全部楼层 |阅读模式
           首先我们用到的材料有 arduino nano、蓝牙模块、da大功率mos管模块、散热风扇、ws2812b灯带\DC-DC电源等材料。
    说一下思路,风扇通过大功率mos管控制进风量,手机通过蓝牙控制风扇的转速以及灯带的颜色。
    引脚接法:
    arduino -----  蓝牙
    11-----  TX
    12-----  RX
    GND-----  GND
    VCC----- VCC

    arduino -----ws2812b灯带
    4-----DIN
    GND-----GND
    外接电源+-----VCC

    arduino -----大功率mos管模块
    GND-----GND
    3-----pwm+
    DC+和DC-接电源输入
    OUT+和OUT-接风扇


    (注:风扇和灯带的电源推荐用外接电源,不然电流不稳定会影响arduino正常工作)
    O1CN01ctcTjA1GbcQRiYVwy_!!44390641.jpg
    手机端设置:
    Screenshot_2019-08-01-23-20-51-156_iot.clz.me.jpg Screenshot_2019-08-01-23-25-59-674_iot.clz.me.jpg Screenshot_2019-08-01-23-26-02-644_iot.clz.me.jpg

    代码如下:

    kittenblock中小学创客名师推荐的图形化编程软件

    #define BLINKER_PRINT    Serial
    #define BLINKER_BLE
    #include <PWM.h>
    #include <Blinker.h>
    #include <Adafruit_NeoPixel.h>
    #ifdef __AVR__
    #include <avr/power.h>
    #endif
    #define PIN            4   //ws2812b灯带引脚
    #define NUMPIXELS      16  //灯珠数量
    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
    #define RGB_1 "RGBKey"
    BlinkerSlider Slider1("fan");
    BlinkerRGB RGB1(RGB_1);
    void slider1_callback(int32_t value1)
    {
        BLINKER_LOG("get slider value: ", value1);
        OCR2B = value1; //Toggle value B, Output at pin 3
    }
    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);
    
        uint8_t colorR = map(r_value, 0, 255, 0, bright_value);
        uint8_t colorG = map(g_value, 0, 255, 0, bright_value);
        uint8_t colorB = map(b_value, 0, 255, 0, bright_value);
    
        for(int i = 0; i < NUMPIXELS; i++)
        {
          pixels.setPixelColor(i, pixels.Color(colorR,colorG,colorB));
          pixels.show();
        }
    }
    
    void setup()
    {
        Serial.begin(115200);
        #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
        #endif
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, LOW);
        Blinker.begin(11, 12);//设置数字IO口11(RX)12(TX)这两个脚接蓝牙TX RX
        pixels.begin();
        Slider1.attach(slider1_callback);
        RGB1.attach(rgb1_callback);
        InitTimersSafe(); 
        pinMode(3, OUTPUT);  //风扇引脚
        TCCR2A = _BV(COM2A0) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); //Set Timer2 to varying top limit fast PWM mode
        // TCCR2B = _BV(WGM22) | _BV(CS22) | _BV(CS21) | _BV(CS20);//another way to set prescaler CS2=fff
        TCCR2B = TCCR2B & 0b11111000 | 0x01;
        OCR2A = 255; 
        OCR2B = 10;
    }
    
    void loop()
    {
      Blinker.run();
    //  Serial.println(i);
    }


  • TA的每日心情
    开心
    2019-8-14 00:00
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-8-1 23:44 | 显示全部楼层
    本帖最后由 张德帥 于 2019-8-1 23:46 编辑

    给大家看一下制作过程中的图片吧
    制作过程中换了很多方案主要是换了风扇,换了控制风扇的元器件。
    成品图没怎么拍照,只找到一张。
    63D7DF8B8F6475328DA7F7A158AB8612.jpg ED4DB3AC0EEC4B9413386E138A149739.jpg 599128DA5A3997B7B4C9F3BF9F8E45F7.jpg 3260CAC983EB7E775A7523D93BBEB84F.jpg 9A7F6D9041C31EAF1A8776BDEB6A08D3.jpg
  • TA的每日心情
    无聊
    2019-8-18 10:23
  • 签到天数: 101 天

    [LV.6]常住居民II

    发表于 2019-8-1 23:45 | 显示全部楼层
    有成品图片不?
    放上来欣赏欣赏~
    你今天的打赏,是我明天学习Arduino的动力!
  • TA的每日心情
    开心
    2019-8-14 00:00
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-8-1 23:47 | 显示全部楼层
    Creeper666 发表于 2019-8-1 23:45
    有成品图片不?
    放上来欣赏欣赏~

    刚刚上传,
  • TA的每日心情
    开心
    2019-8-14 00:00
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-8-2 00:05 | 显示全部楼层
    刚刚把它拆开拍了几张照片 0F4E0BEC07A0EEA6435C7D8DBDCBEC16.jpg 33F8EE8B91B52C4DAC63611C2BCDF5E5.jpg 9A721663113B9173502653150BBEAECD.jpg 69B194FB0B106DB71B9EF0BA049171DE.jpg F0B469B34AD65D3737D514BE7B518546.jpg

  • TA的每日心情
    开心
    2019-8-14 00:00
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-8-2 00:06 | 显示全部楼层
    欢迎大家来交流
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Arduino lcd屏幕亮了但是不显示字符
    Arduino lcd屏幕亮了但是
    Arduino的lcd屏亮了但是上面没有字符显示,串进去的滑动变阻器也旋过了,但是还是没有
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    【Arduino】108种传感器模块系列实验(98)---L298N电机驱动板
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    两个ESP8266通过云端实现远程数据交互
    两个ESP8266通过云端实现
    原理简述:利用发布订阅模式。一个ESP8266作为消息发布者,另一个ESP8266作为消息订阅
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表