查看: 597|回復: 7
打印 上一主題 下一主題

乒乓球時鐘 非原創 增加光敏電阻 根據環境光控制亮度

[復制鏈接]
  • TA的每日心情
    無聊
    2020-5-8 10:47
  • 簽到天數: 4 天

    [LV.2]偶爾看看I

    跳轉到指定樓層
    樓主
    發表于 2020-4-22 23:05 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    本帖最后由 shao1 于 2020-4-22 23:09 編輯

    原文地址  https://make.quwj.com/project/114/instructions
       128個乒乓球  128個WS2812   

    1框架是自己加工的   角度切30度   因為圖上標注角度是反向的  
    2找個蠟燭點上   刀片在上面稍微加熱一下    再切割乒乓球    乒乓球切到吐   還有這個項目乒乓球最好最好買無縫乒乓球  不然便宜的球燈光打出雜質很多   128個球  RMB在100元左右


    3 增加光敏電阻 根據環境光控制亮度   修改了代碼   再也不是開機就是亮度255了  {下面附上修改后的代碼}   光敏電阻買帶模擬口4針的  接A0口

    4  后期再準備增加一個開機動畫     

    5 增加了一個01S繼電器接入點燈科技   天貓精靈控制開機      

    6 128個燈電流有些大   注意你的電源  6A以上   背景顏色是動態循環顏色


    #include <FastLED.h>
    #include <DS3232RTC.h>
    #define LED_PIN     9
    #define NUM_LEDS    128
    DS3232RTC myRTC(false);
    tmElements_t tm;

    uint8_t max_bright = 0;       // LED亮度控制變量,可使用數值為 0 ~ 255, 數值越大則光帶亮度越高
    CRGB leds[NUM_LEDS];
    CHSV colour( 0, 255, 180);
    int counter=0;
    const int Digits[10][10] =
    {
      {7,8,10,11,14,18,22,24},
      {14,16,18,22,24},
      {7,8,9,11,14,16,18,24},
      {7,9,11,14,16,18,22,24},
      {9,10,11,16,18,22,24},
      {7,9,10,11,14,16,18,22},
      {7,8,9,14,15,16,18,22},
      {7,11,14,16,17,24},
      {7,8,9,10,11,14,16,18,22,24},
      {7,9,10,11,14,16,17,24},
    };

    const int numReadings = 12;  // 平滑的讀數從光傳感器

    int readings[numReadings];     // 模擬輸入的讀數
    int readIndex = 0;              
    long total = 0;                  
    long average = 0;               




    void setup()
    {   FastLED.setBrightness(max_bright);// 設置光帶亮度
        pinMode(17, OUTPUT); //ground and v5 for clock module
        pinMode(16, OUTPUT);
        digitalWrite(17, HIGH);
        digitalWrite(16, LOW);
        FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
        myRTC.begin();
    }

    //顯示0到100之間的數字
    void displaynumber( int place , int number){
      for (int i = 0 ; i < 10 ; i++) {
        if (Digits[number/10] != 0) {
          leds[(Digits[number/10]+place)] = CRGB(255,255,255);;
        }
        if (Digits[number%10] != 0) {
          leds[(Digits[number%10]+28+place)] = CRGB(255,255,255);;
        }
      }
    }

    void loop(){
    //記錄光傳感器的讀數并將其添加到陣列中
      readings[readIndex] = analogRead(A0); //從以前的樣品中得到平均的光水平
      Serial.print("Light sensor value added to array = ");
      Serial.println(readings[readIndex]);
      readIndex = readIndex + 1; // 前進到數組中的下一個位置:

      // if we're at the end of the array move the index back around...
      if (readIndex >= numReadings) {
        // ...wrap around to the beginning:
        readIndex = 0;
      }

      //現在計算出數組中所有值的和
      int sumBrightness = 0;
      for (int i=0; i < numReadings; i++)
        {
            sumBrightness += readings;
        }
      Serial.print("Sum of the brightness array = ");
      Serial.println(sumBrightness);


      int lightSensorValue = sumBrightness / numReadings;
      Serial.print("Average light sensor value = ");
      Serial.println(lightSensorValue);


      //根據環境光的水平設置亮度
      max_bright = map(lightSensorValue,50, 1000, 200, 1);
       FastLED.setBrightness(max_bright); // Set brightness value of the LEDs
      Serial.print("Mapped brightness value = ");
      Serial.println(max_bright);

      FastLED.show();




      RTC.read(tm);

      //每10個燈循環改變背景顏色
      if (counter<10){
        counter++;
      }else{
        colour.hue = (colour.hue+1)%256;
        counter=0;
      }



      // 設置背景為彩虹色
      for ( int i=0; i< 128;i++){
        colour.hue = (colour.hue+1)%256;
        leds= colour;
      }
      colour.hue = (colour.hue+128)%256;

      displaynumber(0,tm.Hour);
      displaynumber(70,tm.Minute);

      //display colons
      if ( tm.Second%2 == 0 ){
        leds[64] = CRGB(255,255,255);// 顯示2個秒鐘顏色
        leds[66] = CRGB(255,255,255);
      }
      FastLED.show();
    }




    微信圖片_20200422224131.jpg (100.69 KB, 下載次數: 5)

    1

    1

    微信圖片_20200422224140.jpg (105.84 KB, 下載次數: 1)

    2

    2

    微信圖片_20200422224143.jpg (122.76 KB, 下載次數: 2)

    3

    3

    微信圖片_20200422225049.jpg (162.46 KB, 下載次數: 1)

    4

    4

    微信圖片_20200422225052.jpg (184.75 KB, 下載次數: 1)

    5

    5

    微信圖片_20200422225055.jpg (274.32 KB, 下載次數: 3)

    6

    6
  • TA的每日心情
    開心
    2020-7-7 10:47
  • 簽到天數: 469 天

    [LV.9]以壇為家II

    沙發
    發表于 2020-4-23 00:41 | 只看該作者
    感謝分享

    做得好漂亮。
  • TA的每日心情
    開心
    2020-7-1 09:10
  • 簽到天數: 817 天

    [LV.10]以壇為家III

    板凳
    發表于 2020-4-23 09:09 | 只看該作者
    其他不說 但是這個工作量感人

    該用戶從未簽到

    地板
    發表于 2020-4-23 11:08 | 只看該作者
    太浪費了吧??!但是真的好看,真香
  • TA的每日心情
    擦汗
    2019-11-1 21:03
  • 簽到天數: 101 天

    [LV.6]常住居民II

    5#
    發表于 2020-4-23 15:37 | 只看該作者
    漂亮!
    亮度調好了,效果相當不錯啊??梢阅贸鍪诛@擺顯擺
  • TA的每日心情
    無聊
    2020-5-8 10:47
  • 簽到天數: 4 天

    [LV.2]偶爾看看I

    6#
     樓主| 發表于 2020-4-23 19:41 | 只看該作者
    wwwusr 發表于 2020-4-23 15:37
    漂亮!
    亮度調好了,效果相當不錯啊??梢阅贸鍪诛@擺顯擺

    晚上發現應該代碼發現還有BUG     環境光全黑的時候亮度控制不好   一直在閃爍   
  • TA的每日心情
    無聊
    2020-5-8 10:47
  • 簽到天數: 4 天

    [LV.2]偶爾看看I

    7#
     樓主| 發表于 2020-4-28 13:32 | 只看該作者
    故障解決了    燈帶數據口的電阻470的  換成220   完美解決晚上環境光全黑燈帶閃爍問題
  • TA的每日心情
    奮斗
    2020-5-9 15:04
  • 簽到天數: 2 天

    [LV.1]初來乍到

    8#
    發表于 2020-5-14 11:06 | 只看該作者
    樓主數字4怎么顯示
    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    熱門推薦

    5分鐘帶你快速了解新一代開發板:M5STACK
    5分鐘帶你快速了解新一代
    一、什么是M5Stack M5Stack是一種模塊化、可堆疊擴展的開發板,每個模塊
    創客火首發無人機編隊套裝,開啟不一樣的人工智能教育
    創客火首發無人機編隊套裝
    2017年國務院發布《新一代人工智能發展規劃》,提出要廣泛開展人工智能科普活動,在中
    求解用arduino 讓WS2812全燈帶無特效常亮并做呼吸燈效果
    求解用arduino 讓WS2812全
    本人小白,初學arduino,一邊逛論壇一邊看網上視頻教程,看得比較雜 找了很久也沒找
    Arduino物聯網開發實例教程
    Arduino物聯網開發實例教
    [md] **blinker用戶交流群 301438087 (僅限github已Star的用戶加群)** ## bli
    萌新求助,小愛語音控制8266沒有反應
    萌新求助,小愛語音控制82
    看了有大佬做的遠程開機,就想自己試試,我用的是esp8266 nodemcu。程序燒進去以后,
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    财神捕鱼游戏手机版下载