❶ 單片機可以用可控硅調光嗎,相比pwm調光缺點是什麼
1、現在很多單片機都有PWM輸出口。
2、可控硅也是可以用於PWM控制的。
3、PWM是脈寬開關調制,沒有PWM介面的單片機也是可以用軟體模擬的。
4、估計你的意思是單片機控制模擬電壓線性調光,這個功能單片機是可以實現的。
5、線性電壓調光沒有頻閃,保護眼睛;
缺點是電路復雜、成本高。
6、PWM調光有頻閃,危害眼睛。
❷ 設計一個STC51單片機控制的RGB三基色LED燈光模式控制系統。
你最起碼要做一個恆流源,給LED供電。D/A轉換模塊。控制電流的大小。然後調節個個燈的電流變化就可以了,應該有那種調光IC賣的,讓單片機直接控制調光IC就可以了。
調光IC自帶恆流輸出,這樣就省事了。
❸ 有誰知道,怎麼用電位器連接單片機控制調光的
這種電位器是模擬信號,需要轉化為數字編碼,所以需要AD采樣。單片機內部集成AD即可。
對於調光來說一般是用PWM控制,外面需要接一個功率開關比如可控硅什麼的器件
❹ 51單片機pwm調光電路
51單片機pwm調光電路參考源程序:
int potpin=0;//定義模擬介面0
int ledpin=11;//定義數字介面11(PWM 輸出)
int val=0;// 暫存來自感測器的變數數值
void setup()
{
pinMode(ledpin,OUTPUT);//定義數字介面11 為輸出
Serial.begin(9600);//設置波特率為9600
//注意:模擬介面自動設置為輸入
}
void loop()
{
val=analogRead(potpin);// 讀取感測器的模擬值並賦值給val
Serial.println(val);//顯示val 變數
analogWrite(ledpin,val/4);// 打開LED 並設置亮度(PWM 輸__________出最大值255)
delay(10);//延時0.01 秒
}
原理圖:
PWM簡介:
Pulse Width Molation 就是通常所說的PWM,譯為脈沖寬度調制,簡稱脈寬調制。脈沖寬度調制(PWM)是一種對模擬信號電平進行數字編碼的方法,由於計算機不能輸出模擬電壓,只能輸出0 或5V 的的數字電壓值,我們就通過使用高解析度計數器,利用方波的占空比被調制的方法來對一個具體模擬信號的電平進行編碼。
❺ 51單片機 PWM LED 調光程序,請高人幫忙講一下執行過程,重點是CYCLE、PWM_ON是怎樣的變化的。
CYCLE=10;在初始化中,在程序中不會改變;pwm周期
PWM_ON只在主循環來改變;延時程序很長delay(1000); 中斷函數執行很多次,第一次count=0時,就把led滅了,當PWM_ON=2時,有了亮度,此亮度保持到,PWM_ON=2,加亮,直到PWM_ON=10,最亮,開始執行變暗程序。
❻ 單片機可控硅調光,網上找了好久都沒有詳細解答
啊呀,你可以很簡單的處理:R3你取2.4K,然後R4取330可以,但是你這大唯個電路可以打開,是關不斷的,所以,不論你怎麼PWM波形升吵,都是打開狀態,你需要重新設計一個電路。將R4串在可控硅的G極與MOC3021的4腳之間,而不是滾笑培現在這樣的跨接。
另外,你要調節的是占空比,所以,你最好直接使用自己弄的零點采樣電路,使用LM358來弄,然後根據50hz周期,在0-10ms延時打開導通角。
❼ 51單片機怎樣控制LED的光亮度
pwm,用定時器T1溢出做pwm周期,在每次T1開始計數時觸發輸出,軟體邊增1計數邊檢查溢出標志。如果軟體計數滿則清輸出,否則直到溢出清輸出、清軟體計數滿值。改變軟體計數滿值就能改變亮度。
頻率50HZ,周期是20ms
看你調節的精度 如定時器定時1ms,高電平寬度一次變化是5%
如果想要調節精度高,定時器定時時間小,就要頻繁地發生中斷,會影響主程序的運行
如 要求占空比每步調節為1%,則定時器就要定時200us,對於CpU的影響就比較大了
這時自動重裝模式可以縮短中斷程序佔用時間,但如果再提高PWM的頻率,自動重裝模式也十分吃力,因此許多增強型51單片機有硬體PWM功能
LED是電流控制器件, 而不能說成電壓控制,調節電壓的大小也能控制啊(電壓越大亮度超高),
1、PWM是脈沖寬度調制信號,注意其中的「寬度」,就是脈沖的高電平的時間。PWM信號調節LED亮度時,信號頻率是不變的,改變的是脈沖的高電平的時間,即LED的導通時間。這種信號調節亮度相當於調節LED的平均電流,所以電流會變化。
2、從LED的V-I特性可知,其曲線是非線性的,0.1V的電壓可造成100~200mA的If的變化,不易控制;另外,LED具有負溫度系數特性,所以,一般將LED說成是電流控制型器件。至於你將LED串接在電源模塊上,當輸出電壓恆定時,是恆壓源驅動LED吧,這樣調節LED亮度時,需要對輸出電壓進行分壓,以降低LED的壓降才能改變其亮度,恆壓源的電流是有一個最大輸出值的,不能調節的,不知你用什麼方法調節其輸出電流的?
3、用MCU比較方便,成本是稍高,也可以用模擬電子線路產生相應的PWM信號。
用PWM控制有幾點好處.
1 ): 可以自動適應輸入電壓范圍.即使輸入電壓低於LED的點亮電壓.LED仍然正常發光.
2 ):恆流.LED是半導體器件.對溫度很敏感.普通限流電路在其溫度變化時無法及時控制LED負載的電流.當溫度上升到一定程度.LED會被燒毀. 而PWM電路大多集成恆流源.使其電流始終保持在你設置的范圍內.
是求程序還是求啥?郵箱也沒有
可以用移位命令來實現,比如說LED介面為P0
那麼共陰極就是 P0=(P0>>1)||0X80;
移位函數來實現是最簡單的就是 intrinis
可通過按鈕的動作改變輸出LED連接腳的脈寬來控制led燈的漸亮
單片機只能產生兩個電平的信號,因此要控制LED亮度要靠LED點亮的頻率,頻率越高亮度越亮。如果你願意取得更好的效果的話還可以使用DA晶元,當然需要更多的知識。
那就要看這100個LED是想同時亮,還是一個一個地亮了。
要同時亮,就串聯或並聯都行,就相當於控制一個。
要是一個一個地亮,那就得有100個控制點了。這得需要擴展I/O介面了,簡單可行的,用13片74HC595,每個595帶8個LED。
再要看這100個LED是怎麼排列的,要是能排列成矩陣,就可以節省I/O介面了,就可以少用幾片74HC595了。
用C語言中產生隨機數的方法每次產生一個0~255間的一個隨機數,然後賦值給P0口
第一片單片機的TXD連接到第二片單片機的RXD上
第一片單片機的RXD連接到第二片單片機的TXD上
然後就可以做 串口通信了
每一片都可以發送數據,然後另一片在串口接收中斷中處理數據
❽ 怎樣用8051單片機實現LED燈光亮度的10級調節,每按一次,LED亮度增大一級。(PWM調光)請附上程序,謝謝
咱空比調節. 首先確定你的控制周槐蠢世期.比檔源如1s,按照10級別可調,分為1-10 .1級的意鉛肢思是
亮100ms 暗900ms,(1s也就是1000ms),也就是占空比為10%,
2級,20%,亮200ms,暗800ms,
......
同理9級, 亮900ms,暗100ms;
10級,亮1000ms,暗0ms;
寫出程序很簡單,
點亮程序
while(1)
{
LED = ON;
_delay_ms( ON_ms);
LED = OFF;
_delay_ms(OFF_MS);
}
設置程序;
#define ADD 0
#define DEC 1
void tune_led( u08 add_or_dec )
{
if( add_or_dec == ADD )
{
ON_MS + = 100;//每加一次遞進100ms,最高1000ms
if( ON_MS >=1000)
ON_MS =1000;
OFF_MS = 1000- ON_MS;
}
else
{
if( ON_MS >=100 )
{
ON_MS = ON_MS -100;
}
OFF_MS =1000-ON_MS;
}
,需要調節時,可以把此函數在按鍵處理或其他事件處理中調用.
1000ms的周期只是一種舉例,根據實際需要可以調節 根據顯示的現實性,可以改到50-20ms左右,
防止產生閃爍,
如果改用單片機的硬體pwm 那就更加簡單了
❾ 如何用單片機控制LED 想讓LED發出不同顏色的光 怎麼用單片機進行控制
聽你的問題應該是剛入門不久的,如果可以的話,用三基色LED做,用PWM調光,實現全彩色顯示。
❿ 單片機PWM調光原理
1.PWM
脈沖寬度調制(PWM),是英文「Pulse Width Molation」的縮寫,簡稱脈寬調制,是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術,廣泛應用在從測量、通信到功率控制與變換的許多領域中。
2.單片機中的PWM
指的是此單片機有部分I/O口具有輸出PWM信號的功能。
比如說部分單片機的I/O口可以輸出時鍾信號,時鍾信號的脈寬和占空皮可調,可以根據實際需要調整寄存器位來設定。
3.基本思想就是利用單片機具有的PWM埠,在不改變PWM方波周期的前提下,通過軟體的方法調整單片機的PWM控制寄存器來調整PWM的占空比,從而控制充電電流。以此來調整亮度