国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

單片機中LED有哪些作用

Q4MP_gh_c472c21 ? 來源:嵌入式專欄 ? 作者:strongerHuang ? 2021-11-16 15:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多初學者覺得自己學的東西很基礎,擔心今后實際工作用不到。有初學者問了這樣的問題:單片機真正開發產品和學習的時候有什么差別,平時學的LEDADC這些東西,在實際項目中會用到嗎? 雖然技術更新迭代很快,但有很多基本的技術,仍然在實際項目中會用到,今天就拿LED為例來說說吧。

01

LED有哪些作用?

別小看LED,它在實際生活中應用很廣泛的。

首先就是以LED為光源的項目,比如呼吸燈、廣告燈、LED顯示屏等,這類控制LED亮滅(閃爍),或者亮度漸變。

其次是LED背光燈,像液晶背光燈、按鍵背光燈等,這種也是需要控制LED變化的。我之前做過有按鍵的項目,按鍵背光燈需要漸變、配合音效控制LED不同頻率閃爍,目的就是為了達到更好的體驗效果。

再次是LED作為指示燈電源指示燈、狀態指示燈,這種就和接近初學者的學習時的LED燈,但這種卻在項目中很常見。

拿狀態指示燈來說,一個項目的LED狀態指示燈可以直觀明了的指示設備的運行狀態,比如:運行、故障、待機、死機等常見狀態。通過RGB,或者紅黃綠不同顏色LED組合,可以實現更多狀態的指示。

下面針對LED狀態燈,說幾點細節的內容。

02

LED狀態燈的實現

這里結合代碼為大家分享一些項目中常見的LED狀態燈的實現方法。

單色LED運行狀態指示燈:

通過閃爍(一亮一滅)指示設備運行的狀態的指示燈,一個關鍵作用:設備有沒有死機

很多產品中都會用到,你買一個開發板,提供的綜合例程也基本都有。

裸機情況下(一般狀態機),在某一個狀態實現LED閃爍:

int main(void){//系統初始化  while(1)  {//dosomething    switch(State)    {      case 狀態1:        //do something      break;
      case 狀態2:        //do somethingbreak;      ·      ··      case 狀態燈:        ED_TOGGLE();  //LED閃爍      break;    }  }}
RTOS情況下,新建一個狀態燈線程,在線程里面直接控制即可:

?

void StatusLight_Task(void *pvParameters){staticTickType_txLastWakeTime;//初始化xLastWakeTime=xTaskGetTickCount();  for(;;){//dosomething    LED_TOGGLE();   //LED閃爍    vTaskDelayUntil(&xLastWakeTime, 500);  }}

03

單色LED漸變

LED漸變在生活中其實也有一些場景在用,呼吸燈、鍵盤等,其實原來也很簡單,就是控制LED亮度。

控制方法有很多,電壓、PWM都能達到控制LED亮度的效果。當然,現在還有控制LED漸變的專有芯片。

但是,對于單片機項目來說,單片機自身就能實現,如果單獨用一個芯片,就顯得有點多余。 使用DAC輸出模擬量可以實現,但如果多路就不現實,因此這種方法不常見。 常見的是PWM控制IO高低電平(從而控制電壓),這種對于單片機來說有兩種方法:
  • 定時器硬件PWM

  • 控制GPIO口高低電平

a. 定時器硬件PWM:一個定時器輸出PWM波形的同時,還需要一個定時器定時更新PWM輸出占空比(修改亮度)。

b. 控制GPIO口高低電平:這個方法就比較簡單,控制IO口高低電平時間,只是這個時間需要結合整個項目業務邏輯(特別是裸機情況下),不能出現“卡機”情況。

當然,在RTOS情況下,業務邏輯就比較簡單,單獨一個線程:

LED_ON();vTaskDelay(TimesON);LED_OFF();vTaskDelay(TimesOFF);
這里TimesONTimesOFF是需要結合項目情況修改的變量(比如漸變時間)。

04

多色LED,多種運行狀態

一個設備在沒有顯示屏指示狀態的時候,通過LED指示狀態也是一種方法,比如:紅、黃、綠三色,分別常滅、常亮、閃爍三種狀態。

這種相對第一種單色固定狀態要復雜一點,但實現起來也不難,方法也有很多。

這里分享一些思路:創建一個線程,一個結構體,輪詢各種LED狀態,根據應用修改其各種狀態,以及閃爍時間等。

LED狀態結構體:

typedef struct{uint8_tMode;//模式  uint8_t  Status;                //當前狀態  uint16_t OffTimes;              //滅時間  uint16_t OnTimes;               //亮時間(ms)uint16_tCounter;//計數(計時)  void (*OffFun)(void);           //滅函數接口  void (*OnFun)(void);            //亮函數接口}SL_TypeDef;/* 狀態燈 */

LED狀態主線程:

void StatusLight_Task(void *pvParameters){staticTickType_txLastWakeTime;  xLastWakeTime = xTaskGetTickCount();
  for(;;)  {    SL_Scan(&sSLG_Structure);      //紅燈    SL_Scan(&sSLY_Structure);      //黃燈    SL_Scan(&sSLR_Structure);      //綠燈
    vTaskDelayUntil(&xLastWakeTime, SL_TASK_PERIOD);  }}

這里結構體也是方便統一管理,其中SL_Scan瀏覽(掃描)函數的參數通過傳遞結構體指針,是為了方便讀取并修改其中變量。 當然,SL_Scan 瀏覽函數具體實現,就與你應用有關:
static void SL_Scan(SL_TypeDef *SL_Struct){  /* 常滅模式 */  if(SL_MODE_OFF == SL_Struct->Mode)  {    SL_Struct->Status = SL_STATUS_OFF;           //狀態置為"滅"    SL_Struct->OffFun();                         //滅燈  }  /* 常亮模式 */  else if(SL_MODE_ON == SL_Struct->Mode)  {    SL_Struct->Status = SL_STATUS_ON;            //狀態置為"亮"    SL_Struct->OnFun();                          //亮燈  }  /* 閃爍模式 */  else if(SL_MODE_FLICKER == SL_Struct->Mode)  {    /* 在滅狀態 */    if(SL_STATUS_OFF == SL_Struct->Status)    {      SL_Struct->Counter++;      if(SL_Struct->Counter >= SL_Struct->OffTimes)      {        SL_Struct->Counter = 0;        SL_Struct->OnFun();                      //亮燈        SL_Struct->Status = SL_STATUS_ON;        //狀態置為"亮"      }    }    /* 在亮狀態 */    else if(SL_STATUS_ON == SL_Struct->Status)    {      SL_Struct->Counter++;      if(SL_Struct->Counter >= SL_Struct->OnTimes)      {        SL_Struct->Counter = 0;        SL_Struct->OffFun();                     //滅燈        SL_Struct->Status = SL_STATUS_OFF;       //狀態置為"滅"      }    }    else    {      SL_Struct->Status = SL_STATUS_OFF;         //狀態置為"滅"    }  }  /* 未知模式 */  else  {    SL_Struct->Status = SL_STATUS_OFF;           //狀態置為"滅"    SL_Struct->OffFun();                         //滅燈  }}

05

最后

以上的控制LED的狀態,其實是一個項目中很小的一個模塊,還有更復雜的LED實現和控制方法,相信做過這一塊的同學就比較了解。 當然,LED在項目中是微不足道的一個模塊,但是,如果針對莫個人設計一塊LED的產品,那就意義非凡了。

上面這種,相信很多暖(zhi)男都做過,就是不知道,最終那個女孩子感動了沒有?如果感動了,那這個LED項目就是一生中非常重要的項目。

責任編輯:haq


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

    關注

    243

    文章

    24596

    瀏覽量

    690832
  • 單片機
    +關注

    關注

    6076

    文章

    45495

    瀏覽量

    670323
  • 光源
    +關注

    關注

    3

    文章

    792

    瀏覽量

    71337

原文標題:只會用單片機點燈,很丟人嗎?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    學習單片機快速方法

    學習單片機的快速方法 先介紹下單片機。把單片機說成是電子信息類專業最重要的一門課程一點也不為過,你在街上看到的廣告彩燈、煙花表演、紅綠燈、自動開關門這些都可以用單片機實現。
    發表于 01-14 07:42

    單片機引腳的VCC和VDD什么區別

    。這里必要先強調下電源電壓。電源電壓是指電源輸出的電壓,它是為電路的各個元器件和子系統(比如單片機)提供供電電壓的電源電壓。電源電壓通常由電源模塊提供,它可以是交流電、直流電或者其他形式的電源信號
    發表于 12-16 06:19

    CW32單片機如何讓生活更便捷

    單片機有著巨大的需求,例如在燃氣表、水表、料位開關等設備。此外,隨著綠色能源和節能環保理念的普及,低功耗的CW32單片機LED調光板、BLDC無刷電機驅動器等產品
    發表于 12-11 06:11

    一文解析單片機晶振腳的原理

    ,10-30pF具體的值根據不同的晶振頻率不同的單片機而有所不同,作用都是使晶振起振,如果去掉這2個電容,晶振很可能就不會起振或者頻率偏差,單片機就不會工作或失真。并聯
    的頭像 發表于 11-21 15:37 ?3608次閱讀
    一文解析<b class='flag-5'>單片機</b>晶振腳的原理

    單片機學習的8個知識點分享

    能力,以驅動較大的負載。 2、LED串聯電阻的計算 單片機基本上使用LED作為輸出指示,而LED串聯電阻的作用是限制電流,保護
    發表于 11-20 07:58

    什么單片機比較耐用

    ? ? ? ? 在工業控制、戶外設備、醫療儀器等場景單片機的耐用性直接決定了設備的穩定運行與維護成本。耐用的單片機通常具備寬溫工作范圍、強抗干擾能力、穩定的電源適應性和長壽命的硬件設計。深圳市安
    的頭像 發表于 07-31 13:48 ?772次閱讀

    單片機什么特點

    單片機作為嵌入式系統的核心部件,憑借獨特的技術特性在電子設備占據不可替代的地位。其設計理念融合了微型化、低功耗與高集成度,能夠適應從簡單控制到復雜數據處理的多樣化需求,這些特點使其在各行各業
    的頭像 發表于 07-28 11:34 ?1171次閱讀

    怎么測單片機系統頻率

    單片機系統頻率是指單片機工作時的時鐘頻率,它直接影響單片機的運行速度和處理能力,準確測量系統頻率對單片機應用開發、程序調試和性能優化具有重要意義。測量
    的頭像 發表于 07-25 11:39 ?783次閱讀

    單片機怎么驅動電機?

    在各類自動化設備和智能裝置,電機是重要的執行部件,而單片機作為控制核心,需要通過特定的方式驅動電機運轉。單片機驅動電機并非直接連接即可,而是要根據電機類型和功率,搭配合適的驅動電路,才能實現穩定
    的頭像 發表于 07-25 09:31 ?900次閱讀

    單片機怎么燒程序

    單片機燒程序是將編寫好的程序代碼寫入單片機內部存儲單元,讓單片機按照預設邏輯工作的過程,是單片機應用開發不可或缺的環節。無論是簡單的燈光控
    的頭像 發表于 07-23 11:47 ?1273次閱讀

    單片機定制開發的設計思路

    。開發團隊需與客戶充分溝通,明確設備的應用場景、功能目標、性能指標以及成本預算等。例如,在工業控制設備單片機可能需要具備較強的抗干擾能力和實時數據處理功能;而在消費電子領域,低功耗和小型化往往是重點考量因素
    的頭像 發表于 07-17 11:14 ?786次閱讀
    <b class='flag-5'>單片機</b>定制開發的設計思路

    單片機各種復位電路原理

    內的施密特觸發器的。當系統處于正常工作狀態時,且振蕩器穩定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應并將系統復位。單片機系統的復位方式:手動按鈕
    發表于 05-30 16:53

    單片機和伺服什么區別

    單片機和伺服的區別 單片機(Microcontroller)和伺服(Servo System)是兩種完全不同的技術概念,分別屬于 控制系統硬件 和 運動控制執行系統 。以下是它們的詳細對比和區別
    的頭像 發表于 05-26 09:18 ?853次閱讀

    PLC和單片機到底什么區別?

    在自動化和嵌入式開發領域,PLC和單片機是兩種常見的控制系統。雖然它們許多相似之處,但它們的功能、應用范圍、開發成本等方面也存在顯著差異。本文將從多個角度詳細探討這兩者的不同之處,幫助大家更好地理
    的頭像 發表于 04-07 11:58 ?6360次閱讀
    PLC和<b class='flag-5'>單片機</b>到底<b class='flag-5'>有</b>什么區別?

    單片機科普總結,建議收藏!

    單片機(MicrocontrollerUnit,MCU)作為嵌入式系統的核心之一,在現代電子產品無處不在。從智能家居、汽車電子,到工業控制、醫療設備,單片機支撐著無數智能化應用的發展。對于初學者
    的頭像 發表于 04-07 11:58 ?5637次閱讀
    <b class='flag-5'>單片機</b>科普總結,建議收藏!