搜索
bottom↓
回复: 284

3W LED 手电驱动电路

[复制链接]

出0入0汤圆

发表于 2010-6-28 10:35:26 | 显示全部楼层 |阅读模式
这是一个以前做的小玩意,看到现在有人发LED灯的电路就拿出来给需要的参考一下。
电路功能:单锂3WLED恒流驱动,3.0V-4.2V全程恒流,最大可输出700mA(实际可达1000mA);
          四种档位模式:1.三档调光+暴闪+慢闪+SOS+信标;
                        2.三档调光+暴闪+SOS;
                        3.二档调光;
                        4.六档调光+暴闪+慢闪+SOS+信标;
          有记忆功能;
          只有一个电源开关控制,关机关电源,完全不耗电;
          电池过放保护,电压低于3V进入应急模式自动切换到30mA,电压低于2.7V进入休眠模式。

(原文件名:3454.jpg)

有两种不同的代码,开机记忆或关机记忆
/*****************************************************
Chip type           : ATtiny13
Clock frequency     : 4.800000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 16
四组档位模式,关闭2秒记忆
*****************************************************/
//#define DEBUG2
//#define debug
#include <tiny13.h>
#include <delay.h>
#define CHANGE_WAITING  62
#define MAX_CURRENT  920
#define VOLTAGE_LIMIT_TO_30mA   5233  //5233=3.2V 4812=3.0V
#define VOLTAGE_OUT_OFF         4331  //4331=2.7V
#define VOLTAGE_CHANGE          1000  //定义开机后是否变换档位的电压值,如大于此值则变换档位,否则用上次关机时的档位
#define K1 318682                     //由于3454在压控恒流模式工作时输出电流会随电池电压降低而升高,为了做到真正的恒流,引入K1、K2根据电池电压对控制电压进行修正。
#define K2 341
#define XINGBIAO 3
#define MAX_DANGWEI  9

#define ADEN ADCSRA.7
#define ADSC ADCSRA.6
#define EN_30mA PORTB.5
#define EN_PWM  PORTB.1
#define WDCE 4
#define WDE  3
eeprom unsigned char null;
eeprom unsigned char circle=2;
flash unsigned char time_set[3][18]=
                                      {
                                       {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},       // bao frash
                                       {16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16},        // flash
                                       {4,8,4,8,4,25,12,8,12,8,12,25,4,8,4,8,4,50}    // sos  亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(3.5秒)-〉亮(1.5秒)-〉暗(1秒)-〉亮(1.5秒)-〉暗(1秒)-〉亮(1.5秒)-〉暗(3.5秒)-〉亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(3.5秒)
                                      };   

flash unsigned int i_set[MAX_DANGWEI+1]=
                                   {
                                    920,
                                    700,
                                    700,
                                    50,     //xingbiao
                                    920,
                                    700,
                                    480,
                                    348,
                                    135,
                                    20
                                   };   
                                 

bit flashing_on_off;
bit adc_busy;
bit check_change_circle;
unsigned char temp;
unsigned char lower_times;
unsigned char time_flash,frash_count;

// Watchdog timeout interrupt service routine
interrupt [WDT] void wdt_timeout_isr(void)
{

if( temp!=XINGBIAO)
{
time_flash++;
WDTCR|=0x40;

if( temp<3)
    {
     if(time_flash>time_set[temp][frash_count])
        {
         time_flash=0;
         frash_count++;
         if(frash_count>17)
           {
            frash_count=0;
            flashing_on_off=1;
           }
         else
           flashing_on_off=~flashing_on_off;
        
        }
    }
}     
}
#ifndef DEBUG2
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned int  adc_result;
adc_result=10*ADCW;
if(check_change_circle==1)
  {
   check_change_circle=0;
   if(adc_result>VOLTAGE_CHANGE)
      {
       temp++;
       switch (PINB&0x18)
         {
          case 0x08:           //PB4 接地,三档调光+暴闪+慢闪+SOS+信标
               {
               if(temp>4)
                 temp++;
               }break;
          case 0x10:          //PB3 接地, 三档调光+暴闪+SOS
               {
                 temp++;
               }break;
          case 0x00:          //PB3、PB4 接地,二档调光
               {
                temp=temp==5?7:4;
               }break;
          default: break;     //没有连接,六档调光+暴闪+慢闪+SOS+信标
         }
      
       if(temp>MAX_DANGWEI)
          temp=0;  
       circle=temp;
      }   
  }

if(adc_result<VOLTAGE_OUT_OFF)
   {
    EN_PWM=0;
    #ifndef debug
    EN_30mA=0;
    #endif
   }
else
   {
    if(adc_result<VOLTAGE_LIMIT_TO_30mA)
       {
        lower_times++;
        if(lower_times>10)
           {
            TCCR0B=0x00;
            EN_PWM=0;
            #ifndef debug
            EN_30mA=flashing_on_off;
            #endif
           }
       }
    else
       {
        lower_times=0;
        EN_PWM=flashing_on_off;
        #ifndef debug
        EN_30mA=0;
        #endif
        OCR0A=(unsigned char)((K1-(unsigned long)K2*i_set[temp])/(adc_result));
       }   
   }   

  adc_busy=0;
}
#endif
// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{

if(adc_busy==0)
    {
    ADSC=1;
    adc_busy=1;
    }
}

void main(void)
{

#pragma optsize-
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

//PORTB=0x19;
//DDRB=0x23;



flashing_on_off=1;
lower_times=0;
time_flash=0;
frash_count=0;
#asm("sei")
temp=circle;

TIMSK0=0x04;
DIDR0=0x0F;
ADMUX=0x41;
ADCSRA=0x8D;

#pragma optsize-
WDTCR |= (1<<WDCE) | (1<<WDE);
WDTCR=0x41;   //64ms
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

OCR0A=200;
TCCR0A=0x83;
TCCR0B=0x01;
   
check_change_circle=1;
ADSC=1;
adc_busy=1;
while(check_change_circle==1)
     ;
     
delay_ms(1);   
  
while (1)
    {
     if(temp==XINGBIAO)
      {
       EN_30mA=1;
       delay_ms(50);
       EN_30mA=0;
       #pragma optsize-
       WDTCR |= (1<<WDCE) | (1<<WDE);
       WDTCR=0x60;   //4s
       #ifdef _OPTIMIZE_SIZE_
       #pragma optsize+
       #endif
       MCUCR=0x20;
       #asm("sleep");
       #asm("NOP");
      }
     
    }
}


/*****************************************************
Chip type           : ATtiny13
Clock frequency     : 4.800000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 16  
四组档位模式,两秒连续内按开关换档,点亮超过2秒记忆当前档,
*****************************************************/
//#define DEBUG2
//#define debug
#include <tiny13.h>
#include <delay.h>
#define CHANGE_WAITING  62
#define MAX_CURRENT  920
#define VOLTAGE_LIMIT_TO_30mA   5233  //5233=3.2V 4812=3.0V
#define VOLTAGE_OUT_OFF         4331  //4331=2.7V
#define K1 333167       //由于3454在压控恒流模式工作时输出电流会随电池电压降低而升高,为了做到真正的恒流,引入K1、K2根据电池电压对控制电压进行修正。
#define K2 292
#define XINGBIAO 3
#define MAX_DANGWEI  9

#define ADEN ADCSRA.7
#define ADSC ADCSRA.6
#define EN_30mA PORTB.5
#define EN_PWM  PORTB.1
#define WDCE 4
#define WDE  3
eeprom unsigned char null;
eeprom unsigned char change_needed=0;
eeprom unsigned char circle=2;
flash unsigned char time_set[3][18]=
                                      {
                                       {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},       // bao frash
                                       {16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16},        // flash
                                       {4,8,4,8,4,25,12,8,12,8,12,25,4,8,4,8,4,50}    // sos  亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(3.5秒)-〉亮(1.5秒)-〉暗(1秒)-〉亮(1.5秒)-〉暗(1秒)-〉亮(1.5秒)-〉暗(3.5秒)-〉亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(1秒)-〉亮(0.5秒)-〉暗(3.5秒)
                                      };   

flash unsigned int i_set[MAX_DANGWEI+1]=
                                   {
                                    650,
                                    650,
                                    650,
                                    50,     //xingbiao
                                    1000,
                                    750,
                                    520,
                                    350,
                                    180,
                                    50
                                   };   
                                 

bit flashing_on_off;
bit adc_busy;
unsigned char temp;
unsigned char time,lower_times;
unsigned char time_flash,frash_count;

// Watchdog timeout interrupt service routine
interrupt [WDT] void wdt_timeout_isr(void)
{

if( temp!=XINGBIAO)
{
time_flash++;
WDTCR|=0x40;
if(time<CHANGE_WAITING)
   time++;
else
   {
    if(change_needed!=0)
       change_needed=0;
   }   
if( temp<3)
    {
     if(time_flash>time_set[temp][frash_count])
        {
         time_flash=0;
         frash_count++;
         if(frash_count>17)
           {
            frash_count=0;
            flashing_on_off=1;
           }
         else
           {
            
            flashing_on_off=~flashing_on_off;
            
           }
        
        }
    }
}     
}
#ifndef DEBUG2
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned int  adc_result;
adc_result=10*ADCW;

{
if(adc_result<VOLTAGE_OUT_OFF)
   {
    EN_PWM=0;
    #ifndef debug
    EN_30mA=0;
    #endif
   }
else
   {
    if(adc_result<VOLTAGE_LIMIT_TO_30mA)
       {
        lower_times++;
        if(lower_times>10)
           {
            TCCR0B=0x00;
            EN_PWM=0;
            #ifndef debug
            EN_30mA=flashing_on_off;
            #endif
           }
       }
    else
       {
        lower_times=0;
        EN_PWM=flashing_on_off;
        #ifndef debug
        EN_30mA=0;
        #endif
        if(flashing_on_off==0)
            {
            OCR0A=200;
            }
        else
            {
            OCR0A=(unsigned char)((K1-(unsigned long)K2*i_set[temp])/(adc_result));
            }   
        
       }   
   }   
}
  adc_busy=0;
}
#endif
// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{

if(adc_busy==0)
    {
    ADSC=1;
    adc_busy=1;
    }
}

void main(void)
{

#pragma optsize-
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

//PORTB=0x19;
//DDRB=0x23;

TCCR0A=0x83;

flashing_on_off=1;
time=0;
lower_times=0;
time_flash=0;
frash_count=0;

#asm("sei")
temp=circle;

if(change_needed==0)
   {
    change_needed=1;
   }
else
   {
    temp++;
    switch (PINB&0x18)
       {
         case 0x08:           //PB4 接地,三档调光+暴闪+慢闪+SOS+信标
               {
               if(temp>4)
                 temp++;
               }break;
         case 0x10:          //PB3 接地, 三档调光+暴闪+SOS
               {
                 temp++;
               }break;
         case 0x00:          //PB3、PB4 接地,二档调光
               {
                temp=temp==5?7:4;
               }break;
         default: break;     //没有连接,六档调光+暴闪+慢闪+SOS+信标
               
                                
       }
   
    if(temp>MAX_DANGWEI)
        temp=0;  
    circle=temp;
   }

   
if(temp!=XINGBIAO)
      {
      //GIMSK=0x20;
      //PCMSK=0x10;
      //GIFR=0x20;

      TIMSK0=0x04;
      
      DIDR0=0x0F;
      ADMUX=0x41;
      ADCSRA=0x8D;
      #pragma optsize-
      WDTCR |= (1<<WDCE) | (1<<WDE);
      WDTCR=0x41;   //64ms
      #ifdef _OPTIMIZE_SIZE_
      #pragma optsize+
      #endif
      OCR0A=250;
      TCCR0B=0x01;
      delay_ms(5);
      adc_busy=0;
      }
  
while (1)
    {
     if(temp==XINGBIAO)
      {
       EN_30mA=1;
       delay_ms(100);
       EN_30mA=0;
       #pragma optsize-
       WDTCR |= (1<<WDCE) | (1<<WDE);
       WDTCR=0x60;   //4s
       #ifdef _OPTIMIZE_SIZE_
       #pragma optsize+
       #endif
       MCUCR=0x20;
       #asm("sleep");
       #asm("NOP");
      }
     
    }
}

程序中系数K1、K2计算:

(原文件名:1.jpg)


再来一个应急充,
功能:手机充电,1.0V到4.5V电池通吃
     可以电池过放保护,也可以取消保护榨干干电池。
     还可以测量电池电压并显示。
     不计成本,效果绝非地摊上能买到的可比。

(原文件名:sch.jpg)

源码,读以下就可以知道操作方法了
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
?Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 2009-4-3
Author  : user
Company : Dell
Comments:


Chip type               : ATtiny13
AVR Core Clock frequency: 4.800000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 24
REF=1.07V

*****************************************************/

#include <tiny13.h>
#include <delay.h>
#define DEBUG 0
  #define OUT_ENABLE            PORTB.0
  #define KEY_CHECK             PINB.2
  #define BOOST_ENABLE          PORTB.3
  #define OUTPUT_VOLTAGE_SELECT PORTB.1

#if !DEBUG
  #define LED_OUT               PORTB.5
  #define LED_ON                0
  #define LED_OFF               1
#endif

#define WDCE 4
#define WDE  3
#define ADEN ADCSRA.7
#define ADSC ADCSRA.6

volatile unsigned char temp_v[16];
volatile unsigned char Count;
volatile unsigned char Real_voltage;
volatile unsigned char System_states;
unsigned char Shut_up_voltage;
unsigned int Worked_timer_count;
bit adc_busy;
bit  enable_lower_voltage_protect;
unsigned char Lower_voltage_checked_times;

interrupt [PCINT0] void pin_change_isr(void)
{
unsigned char i=0;

while(KEY_CHECK==0)
   {
    i++;
    delay_ms(10);
    if(i==250)//if(KEY_CHECK==1||i==250)
       {
         break;
       }
   }

         
if(i>=200)        //按钮按下时间大于2秒 ,启动或关闭输出
  {
   if(System_states!=2)
     {
      System_states=2;
            
      Worked_timer_count=0;
     }
   else
     {
      System_states=0;
     }  
  }
else            //按钮按下时间小于2秒 ,启动或关闭放电低电压保护,并显示空载电压值及低电压保护值
  {
   if(i>=5)
     {
      if(System_states!=2)
        {
         
         System_states=1;
         enable_lower_voltage_protect=~enable_lower_voltage_protect;
        }
     
     }
  }         

}


// Watchdog timeout interrupt service routine
//interrupt [WDT] void wdt_timeout_isr(void)
// Timer 0 output compare A interrupt service routine
interrupt [TIM0_COMPA] void timer0_compa_isr(void)
{
  
  if(adc_busy==0)
    {
    ADSC=1;
    adc_busy=1;
    }
  
}

// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
unsigned char  i;
unsigned int temp;
temp_v[Count]=ADCH;
Count++;
if(Count>15)
  {
   Worked_timer_count++;
   Count=0;
   temp=0;
   for(i=0;i<16;i++)
      {
       temp+=(unsigned int)temp_v;
      }

   Real_voltage=(unsigned char)(((unsigned long )temp*1531)/100000);
   if(Real_voltage<Shut_up_voltage||Worked_timer_count>=22500)  //电池电压低或约一小时后关闭输出
      {
       Lower_voltage_checked_times++;
       if(Lower_voltage_checked_times>3) //连续三次采样都低于保护值
         {
          System_states=0;
          BOOST_ENABLE =0;
          OUT_ENABLE=1;
          #if !DEBUG
          LED_OUT=LED_OFF;
          #endif
         }
      }
   else
      {
       Lower_voltage_checked_times=0;
      }     
  }
adc_busy=0;
}

//************************************************
//显示数值,长闪次数为十位数值,短闪次数为个位数值
//************************************************
void display_value(unsigned char value)
{
#if !DEBUG
unsigned char i;
unsigned char temp;
temp=value/10;
for(i=0;i<temp;i++)
  {
   LED_OUT=LED_OFF;
   delay_ms(200);
   LED_OUT=LED_ON;
   delay_ms(500);
  }
temp=value%10;
for(i=0;i<temp;i++)
  {
   LED_OUT=LED_OFF;
   delay_ms(500);
   LED_OUT=LED_ON;
   delay_ms(100);
  }
  
  LED_OUT=LED_OFF;   
#endif
}

void main(void)
{

// Input/Output Ports initialization
// Port B initialization
// Func5=Out Func4=In Func3=Out Func2=In Func1=Out Func0=Out
// State5=1 State4=T State3=0 State2=P State1=0 State0=1
PORTB=0x25;
DDRB=0x2B;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0A output: Disconnected
// OC0B output: Disconnected
// actual value: 10.027mSec (-0.3%)

OCR0A = 0xBB;
TCCR0A = 0x02;
TCCR0B = 0x04; //start timer
TIMSK0 = 0x04; //timer interrupt sources
// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: On
GIMSK=0x20;
MCUCR=0x00;
PCMSK=0x04;
GIFR=0x20;

DIDR0|=0x10;
ADMUX=0x62;
//ADMUX=0x22;
ADCSRA=0x8D;


// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

#asm("sei")

System_states=1;
enable_lower_voltage_protect=0;
while (1)
      {
       switch(System_states)
          {
           case 1:
                {
                 Count=0;
                 OUTPUT_VOLTAGE_SELECT=0;
                 BOOST_ENABLE = 1;
                 OUT_ENABLE=1;
                 #if !DEBUG
                 LED_OUT=LED_ON;
                 #endif
                 delay_ms(1000);
                 
                 display_value(Real_voltage);  //显示电池空载电压(实际带载约10mA)
                 if(!enable_lower_voltage_protect)
                   {
                    if(Real_voltage>=31)       //大于3.1V,低电压保护值设为2.8V(带载时),用于锂电池过放保护
                      {
                       Shut_up_voltage=28;
                      }
                    else
                      {
                       if(Real_voltage>=20)   //大于2.0V,低电压保护值设为1.0V(带载时), 用于2x镍电池过放保护
                         {
                          Shut_up_voltage=10;         
                         }
                       else
                         {
                          Shut_up_voltage=4;  //小于2.0V,低电压保护值设为0.4V(带载时), 用于1x镍电池过放保护
                         }  
                      }
                   }
                 else
                   {
                    Shut_up_voltage=0;        //如果不启用过放保护,低电压保护值设为0.0V,用于非可充电池
                   }
                     
                 delay_ms(1000);
                 display_value(Shut_up_voltage); //显示低电压保护值
                 System_states=0;
                }break;
           case 2:
                {
                 OUTPUT_VOLTAGE_SELECT=1;
                 BOOST_ENABLE =1;
                 OUT_ENABLE=0;
                 display_value(Real_voltage);   //显示带载电池电压
                 delay_ms(3000);      
                }break;
               
           default:                             //未启动输出,进入休眠
                {
                 Worked_timer_count=0;
                 BOOST_ENABLE =0;
                 OUT_ENABLE=1;
                 #if !DEBUG
                 LED_OUT=LED_OFF;
                 #endif
                 #pragma optsize-
                 MCUCR=0x20;
                 #asm("sleep");
                 #asm("NOP");
                 #ifdef _OPTIMIZE_SIZE_
                 #pragma optsize+
                 #endif
                 
                }break;
          }

      
      };
}

出0入0汤圆

发表于 2010-6-28 10:39:00 | 显示全部楼层
很好,谢谢 .顶.

出0入0汤圆

发表于 2010-6-28 10:40:38 | 显示全部楼层
Cool!

出0入0汤圆

发表于 2010-6-28 10:41:26 | 显示全部楼层
酷~

出0入0汤圆

发表于 2010-6-28 10:54:34 | 显示全部楼层
jh

出0入0汤圆

发表于 2010-6-28 11:01:25 | 显示全部楼层
楼主 有没有一节或者两节1.2V电池可以驱动1W白光LEDIC?
我这里1.2V的充电电池好找,3.7V的锂电不好找(手机上用的块头太大)。

出0入0汤圆

发表于 2010-6-28 11:01:37 | 显示全部楼层
嘿嘿

以前我做了一个驱动电路+程序

发到手电论坛上。。被封了ID

挡了某些人发财的路子

出0入0汤圆

发表于 2010-6-28 11:05:01 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2010-6-28 11:09:18 | 显示全部楼层
回复【6楼】Ziooo
嘿嘿  
以前我做了一个驱动电路+程序  
发到手电论坛上。。被封了id
挡了某些人发财的路子

-----------------------------------------------------------------------

跟你差不多,也发到哪儿,引起争议,被商家版主删贴。气愤之余要求封ID.

出0入0汤圆

发表于 2010-6-28 11:13:47 | 显示全部楼层
谢谢楼主

出0入0汤圆

发表于 2010-6-28 11:15:39 | 显示全部楼层
回复【5楼】oldfang 老方
楼主 有没有一节或者两节1.2v电池可以驱动1w白光ledic?
我这里1.2v的充电电池好找,3.7v的锂电不好找(手机上用的块头太大)。
-----------------------------------------------------------------------

换18650,比两节充电电池体积小啊,容量大,驱动1W白光直接用AMC7135恒流驱动

出0入0汤圆

 楼主| 发表于 2010-6-28 11:25:02 | 显示全部楼层
回复【5楼】oldfang 老方
楼主 有没有一节或者两节1.2v电池可以驱动1w白光ledic?
我这里1.2v的充电电池好找,3.7v的锂电不好找(手机上用的块头太大)。
-----------------------------------------------------------------------

没有,1.2v的我不喜欢,1.2升到LED用效率太低,我一般用14500 或 10440 的锂电替代5号或7号电池,同样的体积,更适合玩CREE,价格还便宜,掏宝上到处有卖。

出0入0汤圆

发表于 2010-6-28 11:28:10 | 显示全部楼层
哇,都开源了。
建议armok开一个开源手电专版。
头像被屏蔽

出0入0汤圆

发表于 2010-6-28 11:28:32 | 显示全部楼层
Cool !

出0入0汤圆

发表于 2010-6-28 11:34:02 | 显示全部楼层
开个LED的版块

出0入0汤圆

发表于 2010-6-28 11:37:15 | 显示全部楼层
开个led的版块得了。嘿嘿。

出0入0汤圆

发表于 2010-6-28 11:43:06 | 显示全部楼层
要真开了 那手电论坛上的商家估计不好过了

OURDEV      开源,非盈利
手电论坛    闭源,盈利

出0入0汤圆

发表于 2010-6-28 11:50:51 | 显示全部楼层
回10楼,7135在输入2.7V时能不能输出350MA呢,这个时候输出有3.3V左右,看上去这个IC是降压的,没有外部储能电感。
        你那个电池得多少钱一颗?我这里1.2V充电电池大把,所以想自己做个手电筒玩玩。


回11楼,我这里1.2V电池现成的,有没有2.4适合的IC,你们介绍的好像都是3.7V的锂电池用的IC。

出0入0汤圆

发表于 2010-6-28 11:51:08 | 显示全部楼层
mark

出0入147汤圆

发表于 2010-6-28 11:52:34 | 显示全部楼层
去过几次手电论坛 没什么意思 有价值的资料不多,就一堆商家在嚷嚷

其实就目前来说,LED手电驱动根本不是什么秘密。

我手上就有十几款的低压LED驱动电路,电池从单节锂电到4串都有,功率从单颗1W到串并10几W都有(当然,都是公司目前量产产品,并且用于工业场合)

现在阿莫有如此强大的机加中心,开个手电版块是个不错的选择。我可以尽力协助。

出0入0汤圆

发表于 2010-6-28 11:53:17 | 显示全部楼层
谢谢啊

出0入0汤圆

发表于 2010-6-28 11:53:39 | 显示全部楼层
3454 的价格有点高

出0入0汤圆

发表于 2010-6-28 11:56:22 | 显示全部楼层
19能不能把你常用的手电IC介绍下

出0入0汤圆

发表于 2010-6-28 11:59:50 | 显示全部楼层
谢谢啊

出0入0汤圆

 楼主| 发表于 2010-6-28 12:01:54 | 显示全部楼层
回复【17楼】oldfang 老方
回10楼,7135在输入2.7v时能不能输出350ma呢,这个时候输出有3.3v左右,看上去这个ic是降压的,没有外部储能电感。
        你那个电池得多少钱一颗?我这里1.2v充电电池大把,所以想自己做个手电筒玩玩。
回11楼,我这里1.2v电池现成的,有没有2.4适合的ic,你们介绍的好像都是3.7v的锂电池用的ic。
-----------------------------------------------------------------------

1.2V的只用过一个IC,但不是用在手电上,是手机应急充电。可以用一个电池,我用下来可以到0.7V,单个新的碱性电池可以提供500mA的充电电流。也用一个Tiny13控制,用一个LED显示电池电压。灯会我找一下贴上来。

出0入0汤圆

 楼主| 发表于 2010-6-28 12:28:38 | 显示全部楼层
回复【21楼】Ziooo
3454 的价格有点高

-----------------------------------------------------------------------

要便宜可以买现成的,何必自己动手搞。我曾帮人搞过一个电路,跑量那种,搞完后自己都觉得对不起消费者,但没办法,人家要的就是这种。

出0入0汤圆

发表于 2010-6-28 13:14:38 | 显示全部楼层
有用又好玩的资料!酷

出0入0汤圆

发表于 2010-6-28 13:48:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 13:49:09 | 显示全部楼层

出0入0汤圆

发表于 2010-6-28 14:14:04 | 显示全部楼层
LED手电筒我有个驱动能力很强的IC 3V输入3.3V输出可以到750mA 单价只要0.4点击此处下载 ourdev_564462ODE4LW.pdf(文件大小:159K) (原文件名:TP83 dsh_无页脚.pdf)
QQ327234446 电话15811816496

出0入0汤圆

发表于 2010-6-28 14:28:59 | 显示全部楼层
29楼的是拓微的业务吧。。。。手电论坛都被商家把持了。要公开与卖家有关的商业内容就是被封。有的卖家在上面根本就是炒作。很多都是广告性质的讨论帖。    楼上的几种驱动板我都买了。

出0入0汤圆

发表于 2010-6-28 14:31:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 14:41:30 | 显示全部楼层
MARK,谢谢楼主.

出0入0汤圆

发表于 2010-6-28 14:44:36 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2010-6-28 14:48:25 | 显示全部楼层
回复【29楼】kobeha 黄傲
led手电筒我有个驱动能力很强的ic 3v输入3.3v输出可以到750ma 单价只要0.4点击此处下载  (原文件名:tp83 dsh_无页脚.pdf)  
qq327234446 电话15811816496
-----------------------------------------------------------------------

这个IC适合用来做地摊垃圾货。

出0入0汤圆

发表于 2010-6-28 15:07:23 | 显示全部楼层
Paul 的资料很不错 慢慢学习
谢谢了

出0入0汤圆

发表于 2010-6-28 15:16:00 | 显示全部楼层
谢谢楼主。

出0入0汤圆

发表于 2010-6-28 15:28:24 | 显示全部楼层
MAKE

出0入42汤圆

发表于 2010-6-28 15:39:33 | 显示全部楼层
mark ...LED

出0入0汤圆

发表于 2010-6-28 15:46:58 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-6-28 19:42:43 | 显示全部楼层
强烈MARK

出0入0汤圆

发表于 2010-6-28 19:47:49 | 显示全部楼层
学习ing

出0入0汤圆

发表于 2010-6-28 20:16:18 | 显示全部楼层
很好,建议阿莫啥时搞手电吧,说实话,国内即使几百元的手电,可靠性、做工都远远达不到完美,跟阿莫雕刻机的品质比差出几条街了。不过就像楼上有的说的,这么搞,某些商家又要发疯了,^_^。

出0入0汤圆

发表于 2010-6-28 20:49:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 21:16:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 21:36:17 | 显示全部楼层
手电都有那么多玩法,太酷了。

出0入0汤圆

发表于 2010-6-28 21:40:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 22:48:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 23:33:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-28 23:49:17 | 显示全部楼层
好东西!

出0入0汤圆

发表于 2010-6-28 23:55:21 | 显示全部楼层
我勒个去 强帖留名

出0入33汤圆

发表于 2010-6-29 00:15:05 | 显示全部楼层
标记收藏

出0入0汤圆

发表于 2010-6-29 13:30:28 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-6-29 14:24:20 | 显示全部楼层
强帖留名

出0入0汤圆

发表于 2010-6-29 14:39:54 | 显示全部楼层
强帖标记

出0入0汤圆

发表于 2010-6-29 14:51:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-29 14:57:22 | 显示全部楼层
mark

出0入12汤圆

发表于 2010-6-29 15:42:06 | 显示全部楼层
支持!上個手電版.我也是個手電迷.呵呵.

出0入0汤圆

发表于 2010-6-29 15:57:25 | 显示全部楼层
强支持!

出0入0汤圆

发表于 2010-6-30 09:43:35 | 显示全部楼层
回复【5楼】oldfang 老方
楼主 有没有一节或者两节1.2v电池可以驱动1w白光ledic?  
我这里1.2v的充电电池好找,3.7v的锂电不好找(手机上用的块头太大)。
-----------------------------------------------------------------------

换18650,比两节充电电池体积小啊,容量大,驱动1W白光直接用AMC7135恒流驱动  
__________________________

************
我想问下这个3脚的IC应该是降压型的,当电池只有3V,输出电流350MA的时候输出电压有3.3V左右,它是怎么处理的?


2节电池的升压方案我在另外一个帖子里发现了,是升压IC PT1301.
锂电驱动1W白灯应该用升降压才行吧。

出0入0汤圆

发表于 2010-6-30 11:03:30 | 显示全部楼层
好贴

出0入0汤圆

发表于 2010-6-30 13:35:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-30 14:59:18 | 显示全部楼层
强!

出0入0汤圆

发表于 2010-6-30 15:32:16 | 显示全部楼层
马克!~~

出0入0汤圆

发表于 2010-6-30 15:45:01 | 显示全部楼层
LED手电,又不是什么高科技,居然要封ID,无良!!!
有些电子基础的估计都能做,只不过效率不同罢了。

出0入0汤圆

发表于 2010-6-30 16:22:39 | 显示全部楼层
建议高人弄几款开软手电驱动电路。范围涵盖1w,3WCREE,以及MCE,SST50,SST90led。

出0入0汤圆

发表于 2010-6-30 16:29:21 | 显示全部楼层
看了一眼程序,确实有很多好思路。

出0入0汤圆

发表于 2010-6-30 17:25:14 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-30 22:28:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-2 09:15:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-2 10:48:28 | 显示全部楼层
好东西!!!

出0入0汤圆

发表于 2010-7-2 13:00:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-2 17:02:42 | 显示全部楼层
Mark

出0入0汤圆

发表于 2010-7-9 13:53:14 | 显示全部楼层
mark!

出0入0汤圆

发表于 2010-7-11 13:23:14 | 显示全部楼层
cool

出0入0汤圆

发表于 2010-7-11 16:54:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-11 22:57:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-11 23:31:06 | 显示全部楼层
ding

出0入0汤圆

发表于 2010-7-12 17:54:40 | 显示全部楼层
mark  有空的时候自己做做玩··

出0入0汤圆

发表于 2010-7-12 20:05:03 | 显示全部楼层
强 mark

出0入0汤圆

发表于 2010-7-26 20:46:39 | 显示全部楼层
历害!真是专业人士!

出0入0汤圆

发表于 2010-7-26 20:51:26 | 显示全部楼层
mark 受教了

出0入0汤圆

发表于 2010-7-26 20:51:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-26 21:38:33 | 显示全部楼层
mark too!

出0入0汤圆

发表于 2010-7-27 10:06:04 | 显示全部楼层
好好好

出0入0汤圆

发表于 2010-7-27 15:47:23 | 显示全部楼层
make LED

出0入0汤圆

发表于 2010-8-1 19:14:34 | 显示全部楼层
很好的例子!
以后用到时参考下!
谢谢!

出0入0汤圆

发表于 2010-8-1 21:03:59 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-8-15 22:30:49 | 显示全部楼层
LTC3454 现在连芯片都不好买了,淘宝上到处找,竟然没一家买LTC3454的,想DIY一下都难

出0入0汤圆

发表于 2010-12-1 15:29:51 | 显示全部楼层
牛B

出0入0汤圆

发表于 2010-12-1 16:06:54 | 显示全部楼层
Paul 大  有在吗,想跟你请假下 你以前在这 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=797231&bbs_id=1000
发的 太阳能板追日的 程序。
你这程序上计算 日出日落 时间  怎么改呢 ???
敬请指点一二!!!

出0入0汤圆

发表于 2010-12-1 16:11:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-1 16:30:18 | 显示全部楼层
ddddddddddddd

出0入0汤圆

发表于 2010-12-1 17:04:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-1 17:28:35 | 显示全部楼层
谢谢了!mark

出0入0汤圆

发表于 2010-12-1 17:31:58 | 显示全部楼层
马克一下!

出0入0汤圆

发表于 2010-12-1 17:35:46 | 显示全部楼层
收下了。mark

出0入24汤圆

发表于 2010-12-1 17:49:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-1 18:47:36 | 显示全部楼层
强贴留名。。。。。

出0入0汤圆

发表于 2010-12-1 19:24:37 | 显示全部楼层
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 16:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表