单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警
利用pwm控制led燈光亮度大小。可以顯示許多亮度等級 到最低或者最高亮度等級會發出報警。設計思路:
LED一般是恒流操作的,如何改變LED的亮度呢?答案就是PWM控制。在一定的頻率的方波中,調整高電平和低電平的占空比,即可實現。比如我們用低電平點亮一個LED燈,我們假設把一個頻率周期分為10個時間等份,如果方波中的高低電平占空比是9:1,這是就是一個比較暗的亮度,如果方波中高低電平占空比是10:0,這時,全部是高電平,燈是滅的。如果占空比是5:5,就是一個中間亮度,如果高低比是1:9,是一個比較亮的亮度,如果高低是0:10,這時全部是低電平,就是最亮的。
實際上應用中,電視屏幕墻中的幾十百萬LED象素都是這樣控制的,而且每一個象素都有紅綠藍3個LED,每個LED可以變化的亮度是幾百到幾萬或者更多的級別,以實現真彩色的顯示。還有在您的手機中,背光燈的亮度如果是可以變化的,也應該是這種工作方式。目前的城市彩燈也有很多都使用了LED,需要控制亮度是也是PWM控制。
在程序中,我們將定時器2溢出定為1/1200秒。每10次脈沖輸出一個120HZ頻率。這每10次脈沖再用來控制高低電平的10個比值。這樣,在每個1/120秒的方波周期中,我們都可以改變方波的輸出占空比,從而控制LED燈的10個級別的亮度。
為什么輸出方波的頻率要120HZ這么高?因為如果頻率太低,人眼就會看到閃爍感覺。一般起碼要在60HZ以上才感覺好點,120HZ就基本上看不到閃爍,只能看到亮度的變化了。
總結
以上是生活随笔為你收集整理的单片机控制灯光亮度c语言程序,基于51单片机控制LED灯光亮度并报警的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无限猴子定理
- 下一篇: c语言malloc calloc,C语言