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

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

3天內不再提示

LED調光的基本原理

CHANBAEK ? 來源:科創追夢者 ? 作者:謝士金 ? 2023-11-02 15:20 ? 次閱讀

在我們的現在生活中,LED燈照明已經在到處都能看到。LED燈具有節能、耐用、可調光等特點,取代了過去落后的白熾燈。那么,為什么LED的燈光可調呢?

下面我就向大家介紹LED調光的基本原理-脈寬調制,也就PWM。

在我們的本節內容中,我還是利用之前的電路來展示PWM的基本工作原理。

一、STC15W408AS控制LED燈電路

在電路中,LED指示燈接在單片機的P3.2口上。

圖片

二、脈寬調制(PWM)基本原理

所謂脈寬調制,就是利用電路中的開關器件的通斷來進行控制,使輸出端得到一系列幅值相等但寬度不一致的脈沖,用這些脈沖來代替正弦波或者所需要的波形。

從下圖中,我們可以看出,這里有三種不同的波形。這些波形具有重復性,也就是我們通常所說的周期。在專業術語中,一個周期所占用的時間,就叫做一個脈寬。其中,高電平所占整個脈寬的比例,就叫做占寬比。下圖中,就是占空比分別為75%、50%和20%的波形。

圖片

三、利用定時器來生成PWM波形的方法

我們在了解了PWM波形的基本概念后,就可以利用單片機的定時器來生成PWM波形。

如果要利用定時器來生成PWM,則首先要確定PWM波形的脈沖寬度(比如10MS),然后確定在這個脈沖中,高電平所占的時間寬度(比如2MS),則剩下的時間就是低電平時間(比如8MS),也就是占空比為20%,如上圖中的第三種波形。

現在假設我們使用的定時器是1MS中斷一次,那么要得到10MS的脈沖寬度,就需要計數10次,也就中斷10次?;懈唠娖接嫈?次,低電平計數6次。

也就是開始計數時讓輸出為高電平,當計數到4次后,再讓輸出變為低電平,直到計數到10次,再重復這個過程。

這樣,我們就得到了一系列寬度為10MS,占空比是是40%的脈沖。

四、利用定時器生成PWM波形相關代碼

int mPulseCnt=0;

// 1ms

void Timer0_ISR (void) interrupt 1

{

        mPulseCnt=mPulseCnt+1;

        if(mPulseCnt<=4)

        {

                PinLed_High();

        }else{

                PinLed_Low();

        }

        if(mPulseCnt==10)

        {

                mPulseCnt=0;

        }

}

五、利用定時器來生成PWM波形的完整代碼

#define FOSC 11059200L

#define T1MS (65536-FOSC/1000)      // 1 T模式

#define BIT0 0x01

#define BIT1 0x02

#define BIT2 0x04

#define BIT3 0x08

#define BIT4 0x10

#define BIT5 0x20

#define BIT6 0x40

#define BIT7 0x80

#define TRUE 1

#define FALSE 0

#define Pin_LED P32

#define Pin_LED_M1 P3M1

#define Pin_LED_M0 P3M0

#define Pin_LED_BIT BIT2

#define PinLed_High() Pin_LED=1

#define PinLed_Low() Pin_LED=0

#define BOOL unsigned char

#define UINT unsigned int



UINT mTimer500ms=0;

void PinLED_DirOut(void);

void Timer0_Init(void);



BOOL bLedon=FALSE;

int mPulseCnt=0;

void main(void)

{

        PinLED_DirOut();

        PinLed_High();

        Timer0_Init();

        while(TRUE)

        {

        }     

}

void PinLED_DirOut(void)

{

        Pin_LED_M1 &=~Pin_LED_BIT;

        Pin_LED_M0 |=Pin_LED_BIT;

}

void Timer0_Init(void)

{

        AUXR |= 0x80;                   //定時器0為1T模式

        TMOD = 0x00;                    //設置定時器為模式0(16位自動重裝載)

        TL0 = T1MS;                     //初始化計時值

        TH0 = T1MS > > 8;

        TR0 = 1;                        //定時器0開始計時

        ET0 = 1;                        //使能定時器0中斷

        EA = 1;

}

// 1ms

void Timer0_ISR (void) interrupt 1

{

        mPulseCnt=mPulseCnt+1;

        if(mPulseCnt<=4)

        {

                PinLed_High();                   

        }else{

                PinLed_Low();             

        }



        if(mPulseCnt==10)

        {

                mPulseCnt=0;

        }

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

    關注

    6008

    文章

    44087

    瀏覽量

    623085
  • led燈
    +關注

    關注

    22

    文章

    1563

    瀏覽量

    107137
  • PWM
    PWM
    +關注

    關注

    114

    文章

    4935

    瀏覽量

    210498
  • 脈寬調制
    +關注

    關注

    3

    文章

    208

    瀏覽量

    38081
  • LED調光
    +關注

    關注

    0

    文章

    57

    瀏覽量

    16205
收藏 人收藏

    評論

    相關推薦

    步進電機基本原理

    本帖最后由 eehome 于 2013-1-5 09:48 編輯 步進電機基本原理
    發表于 08-16 16:17

    串聯諧振逆變器的基本原理

    串聯諧振通常伴有逆變器。該組合稱為串聯諧振逆變器。什么是基本原理?讓我簡要介紹串聯諧振逆變器的一些基本原理。]首先給你看一張圖片:
    發表于 11-07 10:21

    IC測試基本原理是什么?

    IC測試基本原理是什么?ATE測試向量是什么?
    發表于 05-07 06:43

    IC測試的基本原理是什么?

    本文詳細介紹了芯片開發和生產過程中的IC測試基本原理。
    發表于 05-08 07:33

    TSP控制的基本原理是什么?

    TSP控制的基本原理是什么?
    發表于 05-11 06:39

    電機轉動的基本原理是什么?

    電機轉動的基本原理是什么?電機運動的基本原則有哪些?
    發表于 07-21 07:59

    線性電源的基本原理是什么

    多路線性電源 AC-DC穩壓電源 低紋波電源 可調線性電源 原理圖PCB目錄多路線性電源 AC-DC穩壓電源 低紋波電源 可調線性電源 原理圖PCB基本原理芯片選型原理圖&3D-PCB具體
    發表于 07-30 07:47

    無線充電的基本原理是什么

    一 、無線充電基本原理無線充電的基本原理就是我們平時常用的開關電源原理,區別在于沒有磁介質耦合,那么我們需要利用磁共振的方式提高耦合效率,具體方法是在發送端和接收端線圈串并聯電容,是發送線圈處理諧振
    發表于 09-15 06:01

    RAID技術的基本原理是什么

    RAID技術的基本原理是什么?RAID技術有哪幾個優勢?
    發表于 10-14 12:01

    PIC16F15323單片機的基本原理

    PIC16F15323單片機 (ADC)1 基本原理1.1 寄存器介紹1.2 寄存器匯總1.3 ADC采集實現框圖2 實現代碼1 基本原理1.1 寄存器介紹1.2 寄存器匯總1.3 ADC采集實現
    發表于 11-24 07:05

    IIC的基本原理是什么?

    IIC的基本原理是什么?
    發表于 11-25 08:46

    串口通信基本原理是什么?

    串口通信基本原理是什么?串行通信的分類有哪些?
    發表于 12-03 06:08

    EXTI的使用方法及基本原理

    介紹EXTI的使用方法及基本原理并且包括實驗通過按鍵中斷控制led燈的亮滅
    發表于 12-06 07:57

    串口通信的基本原理是什么?

    同步通信和異步通信的區別是什么?串口通信的基本原理是什么?
    發表于 12-13 06:46

    步進馬達基本原理

    步進馬達基本原理步進馬達基本原理步進馬達基本原理
    發表于 11-30 11:55 ?8次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>