樂鑫Esp32-S2學習之旅② ESP32-S2 控制 ws2812b 實現五彩斑斕的效果,代碼開源!



  • 本系列博客學習由非樂鑫官方人員 半顆心臟 潛心所力所寫,不做開發板。僅僅做個人技術交流分享,不做任何商業用途。如有不對之處,請留言,本人及時更改。

基於樂鑫ESP32 芯片模組 C SDK二次開發的技術全系列筆記目錄

一、【ESP32】RTOS SDK 帶操作操作系統開發

1、 爬坑學習新旅程,虛擬機搭建esp32開發環境,打印 “Hellow World”。
2、 巧用eclipes編輯器,官方教程在在Windows下搭建esp32開發環境,打印 “Hellow World”。
3、 認識基本esp32的GPIO接口,開始點亮您的第一盞 LED和中斷回調實現按鍵功能 。
4、體會esp32的強大的定時器功能, 實現定時2s閃爍一盞LED燈。
5、接觸實踐esp32的pwm寬度脈沖功能, 實現呼吸效果閃爍一盞LED燈。
6、smartConfig和微信airKiss在esp32的實現,一鍵配網輕松快捷連接路由器。
7、利用GPIO中斷做一個按鍵的短按和長按的回調事件,再也無須擔心觸發源。
8、esp32上實現本地 UDP 客戶端和服務端角色,在局域網內實現通訊。
9、esp32上實現本地 TCP 客戶端和服務端角色,可斷線重連原路返回數據。
10、樂鑫esp32 SDK編程利用rmt驅動ws2812七彩燈,實現彩虹漸變效果。
11、入門 樂鑫esp-adf 音頻框架開發,esp32造一個藍牙耳機,實現切換歌曲,獲取歌曲信息等功能。
12、開源一個微信公眾號airkiss配網esp32以及局域網發現功能的工程,分享一個airkiss配網小工具。
13、esp32 內置 dns 服務器,無需外網訪問域名返回指定網頁。
14、esp32 sdk編程實現門戶強制認證,連接esp32熱點之后,自動強制彈出指定的登錄界面。
15、認識本地離線語音喚醒識別框架 esp-skainet ,實現較低成本的硬件語音本地識別控制。
16、學習本地語音喚醒離線識別框架 esp-skainet ,如何修改喚醒詞? 如何自定義命令詞?如何做意圖動作?
17、全網首發,樂鑫esp32 sdk直連京東微聯·小京魚 · IoT開放平台,實現叮咚音響語音智能控制。
18、入門京東微聯·小京魚的控制面板H5開發,讀懂vue語法,做自己的控制頁面。
19、重磅開源,如何在微信小程序上ble藍牙配網esp32,blufi的那些事!
20、一篇好文,開發過程中編譯esp32固件太大,無法正常啟動?教你如何自定義分區表partitions.csv。
21、 esp32藍牙配網blufi的高度封裝,集成簡單、使用簡單、容易上手,提高開發效率!
22、討論下程序員 “青春飯” 那些事,分享在esp32實現多種加密算法md5 |AES CBC-ECB| Sha1 | Sha256 等!
23、安信可 esp32-a1s 音頻開發板移植最新 esp-adf 音頻框架,小試牛刀如何實現在線文字轉語音播放。
25、分享在 esp32 SDK實現冷暖光色溫平滑調節的封裝,輕松集成到您的項目去。
26、分享下如何在window下使用CMake編譯,編譯速度提高傳統 make 編譯一個檔次。
27、windows10平台下自帶的Linux安裝 ESP32/ESP32-S2 環境,再無需額外安裝虛擬機了。


四、【ESP32-S2】RTOS SDK 帶操作操作系統開發

1、入門 ESP32-S2 環境搭建 ,分享如何直連蘋果智能家居 HomeKit 平台,輕松語音 Siri 控制!
2、ESP32-S2 控制 ws2812b 實現五彩斑斕的效果,代碼開源!

-------- 學習筆記持續更新,歡迎關注我…

很多人怎么聯系我一起學習進步,下面打個小小公告:
玩轉esp8266帶你飛、加群QQ群,提高門檻,不喜的朋友勿噴勿加:434878850
esp8266源代碼免費學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
esp32源代碼免費學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp32


在這里插入圖片描述


一 前言

    今天沒別的好說,就單純給大家寫寫博客,今年也過去了大半年,而我卻沒有任何看似較大的進步,因為這半年,沒花很多時間去琢磨新技術,新領域,因為今年換了新公司,趕項目,帶新人,很少時間總結寫博文;

    而就在前天,嵌入式小小的圈子微信群眾多嵌入式大神線下交流:

    因為未能及時看微信群里,我並能如願參加,很大遺憾!其實,這個圈子真的就這么大!


二 材料

  • 安信可 ESP-12K 開發板 x1
  • WS2812B 燈板一個,
  • 杜邦線若干
  • 接線圖:
ESP-12K WS2812B
5V 5V
Gnd Gnd
GPIO45 Din

在這里插入圖片描述


三 效果

    頭文件定義好對應的GPIO以及要驅動燈板的LED數量:

#define WS2812B_RMT_LED_NUMBER 24 //24個WS2812B燈珠
#define WS2812B_RMT_LED_GPIO 45 //對應的是 GPIO45

3.1 三色循環

  //三色循環
  uint8_t nums = 2;
  while (nums--)
  {
    ws2812_ret->set_rgb(ws2812_ret, 100, 255, 0, 0);
    vTaskDelay((1000 / portTICK_RATE_MS));
    ws2812_ret->set_rgb(ws2812_ret, 100, 0, 255, 0);
    vTaskDelay((1000 / portTICK_RATE_MS));
    ws2812_ret->set_rgb(ws2812_ret, 100, 0, 0, 255);
    vTaskDelay((1000 / portTICK_RATE_MS));
  }

3.2 逐漸亮起

/** * @description: 一個一個逐漸亮起 * @param {type} * @return: */
void TaskWS2812OneByOne(void *p)
{
  uint8_t nums = 5;

  while (nums--)
  {
    for (int j = 0; j < WS2812B_RMT_LED_NUMBER; j++)
    {
      // Build RGB values
      hue = j * 360 / WS2812B_RMT_LED_NUMBER + start_rgb;
      led_strip_hsv2rgb(hue, 100, 100, &red, &green, &blue);
      // Write RGB values to strip driver
      ESP_ERROR_CHECK(ws2812_ret->set_pixel(ws2812_ret, j, red, green, blue));
      ESP_ERROR_CHECK(ws2812_ret->refresh(ws2812_ret, 100));
      vTaskDelay(pdMS_TO_TICKS(500));
    }

    ws2812_ret->clear(ws2812_ret, 50);
    vTaskDelay(pdMS_TO_TICKS(1000));
  }
  xTaskCreate(TaskWS2812Ranbow, "TaskWS2812Ranbow", 1024 * 2, NULL, 8, NULL);
  vTaskDelete(NULL);
}

3.3 彩虹效果

/** * @description: 彩虹效果 * @param {type} * @return: */
void TaskWS2812Ranbow(void *p)
{

  while (true)
  {
    for (int i = 0; i < 3; i++)
    {
      for (int j = i; j < 24; j += 3)
      {
        // Build RGB values
        hue = j * 360 / 24 + start_rgb;
        led_strip_hsv2rgb(hue, 100, 100, &red, &green, &blue);
        // Write RGB values to strip driver
        ESP_ERROR_CHECK(ws2812_ret->set_pixel(ws2812_ret, j, red, green, blue));
      }

      // Flush RGB values to LEDs
      ESP_ERROR_CHECK(ws2812_ret->refresh(ws2812_ret, 100));
      vTaskDelay(pdMS_TO_TICKS(10));
      ws2812_ret->clear(ws2812_ret, 50);
      vTaskDelay(pdMS_TO_TICKS(10));
    }
    start_rgb += 60;
  }
}

代碼工程下載:關注本人微信公眾號,發送 200614,即可獲取源碼!


另外,不要把我的博客作為學習標准,我的只是筆記,難有疏忽之處,如果有,請指出來,也歡迎留言哈!

  • 玩轉esp8266帶你飛、加群QQ群,不喜的朋友勿噴勿加:434878850
  • 個人郵箱:xuhongv@yeah.net 24小時在線,有發必回復!
  • esp8266源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
  • esp32源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp32
  • 關注下面微信公眾號二維碼,干貨多多,第一時間推送!

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM