8051/PIC > DT516-046.c 정전류 드라이버와 PWM LED 제어

TODAY370 TOTAL610,955
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-046.c 정전류 드라이버와 PWM LED 제어

페이지 정보

작성자 키트 작성일2017-09-12 09:51 조회655회 댓글0건

첨부파일

본문

 

3660040644_f8Unlx67_dsc01754_ekit.jpg3Ftype3Dw740

 

3660040644_z89d5xjP_dsc01755_ekit.jpg3Ftype3Dw7403660040644_Tt3lbmap_dsc01756_ekit.jpg3Ftype3Dw740

정전류 드라이버를 사용한 30V 입력 전압과 전류 및 LED 바에 걸리는 출력전압입니다.

입력 전압이 높으므로 정전류 드라이버의 PWM 출력은 듀티가 50%가 못 되는 것이 보입니다.

 

3660040644_ypf3tbNB_dsc01757_ekit.jpg3Ftype3Dw7403660040644_qKiGSxMH_dsc01758_ekit.jpg3Ftype3Dw7403660040644_ZwPG407r_dsc01759_ekit.jpg3Ftype3Dw740

정전류 드라이버를 사용한 15V 입력 전압과 전류 및 LED 바에 걸리는 출력전압입니다.

입력 전압이 위의 30V에 비하면 많이 낮으므로 정전류 드라이버의 PWM 출력은 듀티가 90%(?) 정도인 것을 알 수 있습니다.

 

 

3660040644_BfGiSum5_dsc01760_ekit.jpg3Ftype3Dw740

정전류 드라이버를 기판에 조립한 사진

가지고 있는 디스크리트 부품으로 대충 납땜..

 

3660040644_8K35ATYn_dsc01761_ekit.jpg3Ftype3Dw740

LED 점등 사진

 

위 사진들은 DT-516 없이 정전류 드라이버만 사용 해서 구동 한 사진이고

아래는 DT-516 평가 보드를 사용 한 사진입니다.

3660040644_9fALoEy5_dsc01763_ekit.jpg3Ftype3Dw740

강좌 예제 43번으로 구동 했더니 켜지지 않습니다.

 

3660040644_5hw8UtpP_dsc01764_ekit.jpg3Ftype3Dw740

아무래도 DT-516의 PWM 주파수가 빨라서 정전류 드라이버가 충분한 전력을 만들지 못 하는 것 같습니다.

 

PWM 주파수를 낮추는 방법을 찾으려다가

(데이터시트 보기 귀찮아서) 그냥 pwm_delay() 딜레이를 사용 하기로 했습니다.

 

3660040644_PU42Q95m_dsc01765_ekit.jpg3Ftype3Dw740

3660040644_kDrnbJcz_dsc01766_ekit.jpg3Ftype3Dw740

PWM 주파수가 97Hz 정도가 되는군요

이 정도면 잔상이 생기지 않으므로 깜박이지 않습니다.

 

3660040644_bQm47DY0_dsc01767_ekit.jpg3Ftype3Dw740

 

3660040644_SJ7FRjgr_dsc01768_ekit.jpg3Ftype3Dw740

DT-516의 PWm제어에 의한 LED 바에 걸리는 정전류 드라이버 출력 전압 파형

출력에 걸려있는 22uF 전해 캐패시터에 의해서 파형이 일그러진 모양입니다.

 

//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-046.c
// 정전류 드라이버와 PWM LED 제어
//-------------------------------------------------------------
#include
//
#include "DT516-main.h"
//
void Timer_0_Interrupt(void) interrupt 1{  // 225Hz주기
    P4=0xFF; // FND OFF
    //
    if(Tcnt0<113)H_SecFlg=1;
    else         H_SecFlg=0;
    //
    if(++Tcnt0>=225){ Tcnt0=0; Sec++;
        if(Sec >=60){ Sec=0; Min++; }
        if(Min >=60){ Min=0; Hour++; }
        if(Hour>=24){ Hour=0; }
    }
    //
    switch(FND_CNT){
        case 0: P0=Seg_Data[Min/10]; FND_COM1=0; break;
        case 1: P0=Seg_Data[Min%10]; if(H_SecFlg)P07=0; FND_COM2=0; break;
        case 2: P0=Seg_Data[Sec/10]; FND_COM3=0; break;
        case 3: P0=Seg_Data[Sec%10]; FND_COM4=0; break;
    }
    if(++FND_CNT>3)FND_CNT=0;
    //
    if(delay_buf){ if(--delay_buf==0)delay_flg=1; }
}
//
void pwm_delay(U_I d){  
    U_I i,j;
    for(i=0;i
}
//
void main(){
    int i;
    while(1){
        for(i=0  ;i<100;i++){ P1=0x00; pwm_delay(i); P1=0xFF; pwm_delay(100-i); }
        for(i=100;i>=0 ;i--){ P1=0x00; pwm_delay(i); P1=0xFF; pwm_delay(100-i); }
    }
};i++){>

//-------------------------------------------------------------

정전류 드라이버는 국산칩인 DW8525를 사용 했으며

첨부 파일로 데이터시트를 올려 두었습니다.

 

PWM주파수를 좀더 올려서 300Hz 정도로 구동 하고 싶으면

void pwm_delay(U_I d){  
    U_I i,j;
    for(i=0;i92;j++); };i++){>
}
92를 30 정도로 바꿔주면 3배 정도 빨라집니다.

댓글 0

조회수 655

등록된 댓글이 없습니다.

8051/PICHOME > 8051/PIC > DT-516 강좌 목록

게시물 검색

2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기