• slider image 71
  • slider image 72
  • slider image 73
:::


Browsing this Thread:   1 Anonymous Users






16F1503做日行燈控制的問題
#1
初級會員
初級會員


查看用戶資訊
各位先進大家好,

這是日行燈控制器,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);
}
}

Attach file:



jpg  (0.00 KB)


發表於: 2019/5/23 21:02
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#2
版主
版主


查看用戶資訊
沒有很詳細的去分析每一個動作,感覺起來是做每一項動作之前也許會有上一次的設定,請確認每次判斷完成後再設定 K 時請先將 PWM 及 LED 都設成初始狀態。

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

發表於: 2019/5/27 13:09
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#3
版主
版主


查看用戶資訊
LED 燈控制,會有兩組 PWM 輸出控制,一組是給予定電流的輸出以控制 LED 燈的色溫 (白就是白,不會變黃)。另一組是低頻的 PWM 用以控制 LED 亮度。並接受 LED 的溫度來改變亮度並保護 LED 不致燒毀。

發表於: 2019/5/27 13:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#4
中級會員
中級會員


查看用戶資訊
電路圖是全部電路嗎?
如果是,
1.沒接限流電阻的LED, 沒有燒掉嗎?

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

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

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

發表於: 2019/5/28 9:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#5
初級會員
初級會員


查看用戶資訊
感謝各位回覆,我會再試看看

發表於: 2019/5/28 22:30
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#6
版主
版主


查看用戶資訊
樓上網友所提,LED 迴路沒有接線流電阻是會燒 LED 的。

發表於: 2019/5/29 14:36
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#7
初級會員
初級會員


查看用戶資訊
是的,忘了將電阻畫上去

發表於: 2019/6/3 20:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#8
版主
版主


查看用戶資訊
請問一下,這簡單的日行燈是用來做測試還是實驗的?

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

Attach file:


Link only for registered users

發表於: 2019/6/4 10:44
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#9
初級會員
初級會員


查看用戶資訊
我這是要生產用的,是給售後市場,這只是其中一部份電路,還有電源、CLC濾波、晶體控制輸出…等。我看了你的電路,多了LIN,USB TO UART,溫度偵測,基本上主結構差不多,不過你這電路功能較多,保護較多,大廠這樣設計是合理的。

發表於: 2019/6/7 11:50
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 16F1503做日行燈控制的問題
#10
資深會員
資深會員


查看用戶資訊
你這做的太複雜了

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


整個的羅輯很單純

if lamp =1 , 10% 輸出

else 100%輪出

只要送電,就一定會亮

小燈送電,輸出減少。

發表於: 2019/6/9 13:29
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]