以前寫過一篇關於 pwm 的博文,已經有一年了,鏈結如下:
文中使用了示波器來顯示不同占空比的波形。
其實,利用 led 也能通過亮度來表現出 pwm 引數的變化,用實物進行測試,效果很好,但是用 proteus 進行**試驗,卻只是看到閃爍的厲害,基本上看不出亮度的變化。
近來發現,加上乙個大電容,就可以減弱 led 的閃爍,亮度就能夠穩定一些,這樣一來,就可以用 proteus 軟體直接觀察亮度的變化了。
電路見下圖。圖中的大電容(c6)的容量是 4700uf,這個是可以隨便調整的,實際的電路就不需要它了。
圖中的占空比引數是 10,led(d1) 的顯示為「半亮」狀態。
sbit k1 = p3^2; //定義兩個調整占空比的按鍵
sbit k2 = p3^3;
void delay(unsigned int i)
unsigned char j;
while(i--) for(j = 0; j
void main()
tmod = 0x01; //t0定時方式1
th0 = (65536 - 500) / 256; //500us@12mhz
tl0 = (65536 - 500) % 256;
tr0 = 1;
et0 = 1;
ea = 1;
a = 0;
b = 10;
while(1) }
if(!k2) }
//以上兩行是檢查按鍵、延時消抖、修改占空比、等待按鍵釋放,b = 1~19
p0 = ((b / 10) <
void time0() interrupt 1
tl0 = (65536 - 493) % 256; //補償中斷進入時間
th0 = (65536 - 493) / 256; //500us@12mhz
a--; //a = 1~20
if(a == 0) //週期=20*500us
if(a <= b) p2 = 255; //輸出到示波器
p1 = ~p2; //輸出到led,低電平發光
這個程式,pwm 的週期比去年的短了一些;去年是應網友的要求,設計成 1s,有些偏長,不太實用。
這次也不用外部中斷來輸入按鍵了,改用查詢按鍵的方法。
當使用按鍵進行占空比調整的時候,led 可以顯示出來不同的亮度。幾幅截圖的畫面如下:
當 pwm 引數稍小時,亮度有些不足,這可以適當減小一些限流電阻的阻值進行彌補。
用來顯示 pwm 的 led,其中的電流是間斷的,所以,它的限流電阻可以比平常時小一些,100歐左右,是經驗資料。
製作實物電路的時候,大電容就不需要了,不用花錢去買了,呵呵
控制led 用pwm的方法控制LED亮度
在本課程中,您將學習如何通過電位計來更改led的亮度。電位器實際上是乙個可調的電阻,阻值隨意手柄的轉動而變化,模擬電路中,我們可以將電位器串聯在電路中,改變led亮度。本次實驗,電位器只提供乙個訊號,實際燈的亮度由arduino控制。二 材料準備 1 arduino uno開發板 1 麵包板 若干杜...
按鍵控制led
本教程來至yingcloud.com 使用arduino的i o 口的輸入功能即為讀取外接裝置的輸出值,我們用乙個按鍵和乙個led 小燈完成乙個輸入輸出結合使用的實驗,讓大家能簡單了解i o 的作用。按鍵開關1個 led燈乙個 220 10k 電阻各乙個 麵包板 跳線若干 arduino板 分析上圖...
中斷 按鍵控制LED燈
xjp的資源 初始化函式 init.c 進行一些初始化 include s3c24xx.h led1,led2,led4對應gpf4 gpf5 gpf6 define gpf4 out 1 define gpf5 out 1 define gpf6 out 1 define gpf4 msk 3 d...