在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

WiFi-IoT套件的LED燈控制以及PWM控制

電子工程師 ? 來源:HarmonyOS社區 ? 作者:HarmonyOS社區 ? 2021-01-13 10:00 ? 次閱讀

功能很簡單,就是操作GPIO控制LED亮滅以及PWM輸出控制LED明亮度,但是在這個過程中遇到很多問題。

首先是GPIO輸出高低電平控制LED燈亮滅。查看官方文提供的原理圖,找到燈部分的電路。發現燈板其實有兩塊,只是其中一塊是交通燈板,另外一塊是三色RGB燈。控制引腳完全相同。這里以RGB燈板為例。

根據接口再去底板接口那里去查看,可以對應出:

紅色--GPIO10_PWM1

綠色--GPIO11_PWM2

藍色--GPIO12_PWM3

核心板的LED1--GPIO9

接下來的修改就是直接在SDK中的ap/iothardware/led_example.c中進行修改了。里面已經有了GPIO的初始化以及調用了,這里只是增加和修改引腳而已。

注意:例程里面用的GPIO9,也就是核心板上的LED1.如果插上的是RGB燈板,則LED1始終亮,不會隨引腳改變而改變。這一點讓我懷疑代碼懷疑了很久,后來查電路圖才發現RGB燈板GPIO9引腳接了紅外檢測引腳。這個引腳是上拉的,也就是說就是主控下拉讓LED1滅,實際上也不會滅。

34a6eeca-5146-11eb-8b86-12bb97331649.png

到這里操作GPIO就完成了,很簡單,就在官方的例程里面修改就行了。但是,還沒結束,上面也說了,RGB這三個引腳是復用功能,可以復用PWM輸出功能,這里繼續將代碼改為PWM控制。

首先初始化GPIO,然后將這3個引腳設為PWM復用輸出功能,并指定PWM的時鐘

#define LED_RED WIFI_IOT_IO_NAME_GPIO_10#define LED_GREEN WIFI_IOT_IO_NAME_GPIO_11#define LED_BLUE WIFI_IOT_IO_NAME_GPIO_12

GpioInit();

IoSetFunc(LED_RED, WIFI_IOT_IO_FUNC_GPIO_10_PWM1_OUT);

GpioSetDir(LED_RED, WIFI_IOT_GPIO_DIR_OUT);

IoSetFunc(LED_GREEN, WIFI_IOT_IO_FUNC_GPIO_11_PWM2_OUT);

GpioSetDir(LED_GREEN, WIFI_IOT_GPIO_DIR_OUT);

IoSetFunc(LED_BLUE, WIFI_IOT_IO_FUNC_GPIO_12_PWM3_OUT);

GpioSetDir(LED_BLUE, WIFI_IOT_GPIO_DIR_OUT);

hi_pwm_init(HI_PWM_PORT_PWM1);

hi_pwm_init(HI_PWM_PORT_PWM2);

hi_pwm_init(HI_PWM_PORT_PWM3);

hi_pwm_set_clock(PWM_CLK_160M);

完成初始化后就是功能了,控制pwm占空比調節led亮度。

void LedPWM(uint16 pwm_r, uint16 pwm_g, uint16 pwm_b){

hi_pwm_start(HI_PWM_PORT_PWM1, pwm_r, 1600);

hi_pwm_start(HI_PWM_PORT_PWM2, pwm_g, 1600);

hi_pwm_start(HI_PWM_PORT_PWM3, pwm_b, 1600);}

這一段在while(1)里面循環執行,改變PWM占空比的值。

switch(sta) { case 0: if(pwm_R 《 1500) pwm_R += 5; else { sta = 1; pwm_R = 2; pwm_G = 2; pwm_B = 2; }

break; case 1: if(pwm_G 《 1200) pwm_G += 5; else { sta = 2; pwm_R = 2; pwm_G = 2; pwm_B = 2; }

break; case 2: if(pwm_B 《 1200) pwm_B += 5; else { sta = 0; pwm_R = 2; pwm_G = 2; pwm_B = 2; }

break; } LedPWM(pwm_R, pwm_G, pwm_B); usleep(2);

PWM相關的函數都是在hi_PWM.h中定義的,所以要引用這個頭文件,另外這個例子所在的BUILD.gn文件中也要新增其所在的位置:“//vendor/hisi/hi3861/hi3861//include”。

在app所在的BUILD.gn里面的features項目中加入新增的led_example.c所在的路徑:“iothardware:led_example”,到這里貌似都完成了設置以及實現。但是編譯的時候直接報錯:undefined reference to hi_PWM_start以及其他幾個函數的錯誤。

這個問題糾結了我好久。后來還是看連志安的ole驅動中的IIC操作才知道要在hi3861驅動中配置打開PWM功能才會編譯PWM部分進代碼,不然始終找不到具體的實現。編譯通不過。

具體在vendor/hisi/hi3861/hi3861/build/config/usr_config.mk文件中新增CONFIG_PWM_SUPPORT=y 才行。

不熟悉整個框架遇到問題并不好處理。

另外調試PWM過程中發現hi_PWM_start函數中的duty參數不要設置為0。在調試3色時候兩色設為0,實際上是白色,都亮了。后來設置為2就ok,三色互不影響。

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led燈
    +關注

    關注

    22

    文章

    1592

    瀏覽量

    108187
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5195

    瀏覽量

    214357
  • GPIO
    +關注

    關注

    16

    文章

    1215

    瀏覽量

    52226
  • OpenHarmony
    +關注

    關注

    25

    文章

    3731

    瀏覽量

    16431

原文標題:WiFi-IoT套件的LED燈控制以及PWM控制

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    擎耀解碼智能汽車可替換LED前照控制運行組成原理方案

    智能汽車可替換LED前照控制運行的原理涉及多個方面,包括自適應前照系統(AFS)的工作原理、傳感器的應用、步進電機的控制
    的頭像 發表于 12-10 16:04 ?170次閱讀

    PWMLED調光中的應用

    脈沖寬度調制(PWM)是一種常用的調光技術,它通過改變脈沖的寬度來控制LED的亮度。這種技術因其高效、節能和易于控制的特點,在
    的頭像 發表于 11-28 16:33 ?1088次閱讀

    如何使用PWM控制電機

    PWM(脈沖寬度調制)是一種常用的電機控制方法,通過調整脈沖信號的占空比(即高電平時間占總時間的比例)來控制電機的電壓和電流,從而實現對電機轉速、轉矩等參數的控制。以下是使用
    的頭像 發表于 11-28 16:30 ?1206次閱讀

    PWM與模擬控制的比較

    PWM(Pulse Width Modulation,脈寬調制)與模擬控制是兩種不同的信號控制方法,它們在多個方面存在顯著的區別。以下是對這兩者的比較: 一、定義與原理 PWM
    的頭像 發表于 11-18 15:36 ?613次閱讀

    智慧城市路燈——聯網單控制系統,單控制

    智慧城市路燈——聯網單控制系統,單控制
    的頭像 發表于 11-11 12:52 ?406次閱讀
    智慧城市路燈——<b class='flag-5'>燈</b>聯網單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>系統,單<b class='flag-5'>燈</b><b class='flag-5'>控制</b>器

    PWM控制原理及電路應用詳解

    PWM(脈沖寬度調制)是用脈沖來輸出模擬信號的一種技術,其通過對一系列脈沖的寬度進行調制,以產生等效的目標波形,廣泛應用于測量、通信、開關電源、電機控制等領域。本文將對PWM技術的基本控制
    的頭像 發表于 10-10 18:10 ?1273次閱讀
    <b class='flag-5'>PWM</b><b class='flag-5'>控制</b>原理及電路應用詳解

    如何實現pwm控制功能

    PWM(Pulse Width Modulation,脈沖寬度調制)是一種常見的電子控制技術,廣泛應用于各種電子設備中,如電機控制LED調光、電源管理等。 一、
    的頭像 發表于 08-08 15:08 ?863次閱讀

    PWM控制技術的工作原理和實現方式

    PWM(Pulse Width Modulation)控制技術,即脈沖寬度調制技術,是一種廣泛應用于電力電子、電機控制LED照明、電源管理等領域的重要技術。它通過調節脈沖信號的寬度來
    的頭像 發表于 06-04 15:12 ?1770次閱讀

    PWM控制器的優缺點分析

    PWM(脈寬調制)控制器是一種廣泛應用于電力電子、電機控制LED照明、通訊等領域的設備。它通過改變脈沖寬度來控制電力設備的輸出功率,具有精
    的頭像 發表于 06-04 15:07 ?1976次閱讀

    PWM控制電機轉速的原理與實現

    PWM(脈寬調制)是一種廣泛應用于電機控制領域的調制技術。它通過調節脈沖信號的占空比,實現對電機轉速的精確控制PWM控制電機轉速的方法因其
    的頭像 發表于 06-03 17:23 ?6460次閱讀

    光照LED控制蘑菇栽培

    ,蘑菇在衛生控制設施中生長,以防止有害細菌的影響。蘑菇屬于真菌,不會進行光合作用,因為紫外線會抑制菌絲體的生長。栽培期間在光線照射有限的暗室中進行,在子實體發育生長階段,常用熒光作為光源來控制光照。 盡管蘑菇不進行光合作用,但
    的頭像 發表于 05-11 11:17 ?442次閱讀

    LED條的分類

    為一體驅動板(板只有LED光源,就沒有任何電子元器件)。②:精密電子元器件恒流驅動就是板+恒流IC+LED光源為一體。③:CV=恒壓
    的頭像 發表于 02-27 20:13 ?1734次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>燈</b>條的分類

    nb-iot控制器的基本功能 nb-iot控制器有哪些優點?

    nb-iot控制器的基本功能 nb-iot控制器有哪些優點? NB-
    的頭像 發表于 02-03 13:59 ?902次閱讀

    nb-iot控制器中的nb-iot是什么?

    nb-iot控制器中的nb-iot是什么? NB-IoT是一種低功耗寬帶物聯網技術,主要應用于物聯網設備的通信連接。它基于現有的蜂窩網絡
    的頭像 發表于 02-03 11:34 ?1646次閱讀

    led是什么意思有什么用

    LED是一種以LED(發光二極管)為光源的照明設備。LED燈具有很高的能效、長壽命、環保等特點,因此在照明領域得到廣泛應用。本文將詳細介紹LED
    的頭像 發表于 02-01 17:27 ?2688次閱讀
    主站蜘蛛池模板: 永久免费影视在线观看| 国产三级播放| 四虎影永久在线观看网址| 亚洲综合色网| 天堂资源在线www中文| 特黄特色网站| 7m视频精品凹凸在线播放| 国产成人精品1024在线| 操女人网| 天天视频观看| 国产精品夜夜春夜夜爽久久| 奇米影视四色首页手机在线| 中文字幕不卡一区| 9久久99久久久精品齐齐综合色圆| 亚洲伊人久久大香线蕉啊| 四虎影视色费永久在线观看| 日本高清视频wwww色| 黄视频福利| 91热成人精品国产免费| 热九九精品| jizz 大全欧美| www.亚洲免费| 四虎电影院| 久久婷婷综合五月一区二区| 给我一个可以看片的www日本| 天天做夜夜操| 1024你懂的国产精品| 老师在办公室被躁得舒服小说| 香港三级在线视频| 美女又黄又免费的视频| 97福利影院| 久草资源站在线| 亚洲欧美成人| 婷婷激情综合五月天| 看一级特黄a大片日本片| 午夜影院欧美| 777欧美午夜精品影院| 好色亚洲| 欧美日韩一区二区三区视频 | 最新仑乱免费视频| 激情久久久久久久久久久|