會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





16F1503做日行燈控制的問題
新會員
註冊日期:
2015/08/16 22:04
所屬群組:
註冊會員
文章: 20
等級: 3; EXP: 20
HP : 0 / 55
MP : 6 / 670
離線
各位先進大家好,

這是日行燈控制器,RC5為PWM1和LED2的輸出,目前每一種按鈕的動作都正常,唯獨在最後一項,按SW1,再按SW2,LED1全亮,LED2全亮後,放開SW2,正常應該是回到第一項,K=1,CASE1,但實際上放開SW2,LED2一樣全亮,不是亮12.5%,若將CASE3前面改用PWM DUTY100%,LED2一樣全亮,不是亮12.5%;在CASE1最後面加RC5=0,則LED2一樣亮的怪怪的,請問該如何修改,謝謝各位

正確動作:按SW1,不按SW2,LED1亮,LED2亮12.5%,接著按SW2,LED1亮,LED2亮,放開SW2,LED2亮12.5%,全部放開,LED皆暗

設DUTY100%的程式:
PWM1CON=0B11100000; //設PWM1啟動
PR2=124; //設頻率的PR2值f=62hz,duty=100%,fosc=2M
PWM1DCH=0B01111101; //設DUTY高8位的值
PWM1DCL=0B00000000; //設DUTY低2位的值
T2CON=0B00000111; //設定除64,後除器用不到

附檔為電路圖

程式如下:

#include<pic.h>
void output(int x);
int k=0;

void init()

{
OSCCON=0B01100010; //設為2MHZ
ANSELA=0B00000000; //設PORTA全為DIGITAL I/O
TRISA=0b00000000; //設PORTA全為輸出
PORTA=0;
WPUA=0X00;

ANSELC=0X00; //設PORTC全為DIGITAL I/O
TRISC=0B00000011; //設PORTC 0~1為輸入,其它為輸出
PORTC=0;
}

void scan()
{

if(RC0==1 && RC1==1 ) //按SW1,不按SW2,LED1 亮,LED2亮12.5%
{
k=1;
}
if(RC0==0 && RC1==1 ) //SW1、SW2皆不按,LED1暗,LED2暗
{
k=2;
}
if(RC0==0 && RC1==0 ) //不按SW1,按SW2,LED1亮,LED全亮
{
k=3;
}
if(RC0==1 && RC1==0 ) //按SW1,再按SW2,LED1全亮,LED2全亮
{
k=3;
}
}

void output(k)
{
switch(k)
{
case 1:
PWM1CON=0X00; //關PWM
TMR2IE=0; //關PWM
T2CON=0X00; //關PWM
PWM1CON=0B11100000; //設PWM1啟動,bit4一定要設為0,不然會怪怪的
PR2=124; //設頻率的PR2,f=62hz,duty=12.5%,fosc=2M
TMR2IE=1;
PWM1DCH=0B00001111; //設DUTY高8位的值
PWM1DCL=0B10000000; //設DUTY低2位的值
T2CON=0B00000111; //設定除64,後除器用不到
RC2=1;
break;

case 2:
RC2=0; //LED1暗,LED2暗。若再加RC5=0,則LED2會微亮
break;

case 3:
PWM1CON=0X00; //關PWM
TMR2IE=0; //關PWM
T2CON=0X00; //關PWM
RC5=1; //LED2全亮
RC2=1; //LED1全亮
break;
}
}

void main()
{
init();
while(1)
{
scan();
output(k);
}
}

附加檔案:



jpg  日行燈.jpg (420.61 KB)
47795_5ce699da1e314.jpg 2965X1893 px

5月23日 21:02:24
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14821
等級: 73; EXP: 55
HP : 1088 / 1813
MP : 4940 / 81975
離線
沒有很詳細的去分析每一個動作,感覺起來是做每一項動作之前也許會有上一次的設定,請確認每次判斷完成後再設定 K 時請先將 PWM 及 LED 都設成初始狀態。

建議在 Timer 中斷裡去定時去檢測按鍵狀態後並設定 K 值再交由主程式點燈及控制 PWM。

5月27日 13:09:49
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14821
等級: 73; EXP: 55
HP : 1088 / 1813
MP : 4940 / 81975
離線
LED 燈控制,會有兩組 PWM 輸出控制,一組是給予定電流的輸出以控制 LED 燈的色溫 (白就是白,不會變黃)。另一組是低頻的 PWM 用以控制 LED 亮度。並接受 LED 的溫度來改變亮度並保護 LED 不致燒毀。

5月27日 13:57:18
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
中級會員
註冊日期:
2014/05/28 13:30
所屬群組:
註冊會員
文章: 55
等級: 6; EXP: 27
HP : 0 / 131
MP : 18 / 2075
離線
電路圖是全部電路嗎?
如果是,
1.沒接限流電阻的LED, 沒有燒掉嗎?

2.MOS也沒有Rg限流電阻?

3.按鈕電路通常不會這樣設計,
一般都是IO接10K電阻上拉,IO再接一個很小的陶瓷電容下地,防彈跳.

建議mos先斷開,勾示波器看看程式輸出對不對,
說不定程式是對的,只是MOS電放不掉,LED就關不起來.

5月28日 09:38:36
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
新會員
註冊日期:
2015/08/16 22:04
所屬群組:
註冊會員
文章: 20
等級: 3; EXP: 20
HP : 0 / 55
MP : 6 / 670
離線
感謝各位回覆,我會再試看看

5月28日 22:30:46
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14821
等級: 73; EXP: 55
HP : 1088 / 1813
MP : 4940 / 81975
離線
樓上網友所提,LED 迴路沒有接線流電阻是會燒 LED 的。

5月29日 14:36:08
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
新會員
註冊日期:
2015/08/16 22:04
所屬群組:
註冊會員
文章: 20
等級: 3; EXP: 20
HP : 0 / 55
MP : 6 / 670
離線
是的,忘了將電阻畫上去

6月03日 20:52:12
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14821
等級: 73; EXP: 55
HP : 1088 / 1813
MP : 4940 / 81975
離線
請問一下,這簡單的日行燈是用來做測試還是實驗的?

因為真正的日行燈的設計沒有這樣簡單。Microchip 在這次研討會送送給客戶的 APP-ESS19-1 LED Lighting Board 就是一個完整的車燈使用範例,這解決方案也經歐州某大車廠認可使用。

附加檔案:


zip APP-EDF19-1 v1.12 Schematic.zip 大小: 106.60 KB; 下載次數: 86

6月04日 10:44:00
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
新會員
註冊日期:
2015/08/16 22:04
所屬群組:
註冊會員
文章: 20
等級: 3; EXP: 20
HP : 0 / 55
MP : 6 / 670
離線
我這是要生產用的,是給售後市場,這只是其中一部份電路,還有電源、CLC濾波、晶體控制輸出…等。我看了你的電路,多了LIN,USB TO UART,溫度偵測,基本上主結構差不多,不過你這電路功能較多,保護較多,大廠這樣設計是合理的。

6月07日 11:50:55
轉換PDF檔 列印


Re: 16F1503做日行燈控制的問題
資深會員
註冊日期:
2004/07/23 16:25
所屬群組:
註冊會員
文章: 1198
等級: 30; EXP: 17
HP : 0 / 729
MP : 399 / 32470
離線
你這做的太複雜了

am 的 drl 只要接 ign 和 小燈的電源 lamp


整個的羅輯很單純

if lamp =1 , 10% 輸出

else 100%輪出

只要送電,就一定會亮

小燈送電,輸出減少。

6月09日 13:29:41
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2019 Summer Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project