3732|14

530

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

【TI首届低功耗设计大赛】太阳能电子时钟结题贴 [复制链接]

本帖最后由 传媒学子 于 2015-1-2 15:54 编辑

《结题贴》

导引本帖子下有             文献报告+视频展示+照片展示+主要程序设计  四个部分。

本设计 历经数月,从第一次接触msp430fr5969到现在基本能应用,收获很多。进步一点一滴,不管高端大气还是小儿科,对于自己来说这都是是一个成长的过程。

         论坛管理员姐姐,多次提醒我 更新设计进度,在这里也表示感谢。从各位高手分享的帖子中受益匪浅,感谢大家一路陪伴。


附件1:设计报告


TI首届低功耗设计大赛项目报告
项目名称        基于MSP430FR5969的太阳能电子时钟的设计            
项目定位:一款智能综合清洁能源的电子显示装置解决方案,本设计以电子时钟为例。廉价、光伏示范性工程。

项目发展远景规划:我们大家都知道车站、学校、政府、医院、机场等场合都需要时钟以及显示屏。结合MSP430FR5969的特性,我开发的这款电子时钟,可以应用于以上场合。
尤其是作为学生参考时钟使用非常合适。一般学生上课都是白天,需要时钟参考。可以将这种电子时钟,应用在大学宿舍的出门处、教学楼的进口出,以及操场等地方。利用太阳能无污染以及MSP430FR5969低功耗和自带时钟模块的优势,可以为学生提供良好的时钟参考。

实现的功能:
1.在三种能源中进行自动切换,实现时钟的正常显示,这种切换无时间间隔,实现节能和稳定的统一。
2.利用开发板上的S1,S2实现对时钟的校准和设定时间。
3.使用12864液晶作为模拟显示屏进行显示,串口操作,节省MCU的I/O口。
4.低功耗转换。
创新点:
1.能源方面创新:在三种能源中进行自动切换,实现时钟的正常显示,这种切换无时间间隔,实现节能和稳定的统一。
这三种能源分别是太阳能、电网的电能、板载大电容。
2.策略方面创新:以往大家总是把蓄电池作为太阳能的储能器,本设计将大电容作为储能器,结合电网作为后备电源。实现了无缝切换。
3.显示方面创新:用时间来控制时钟显示,省去了光敏电阻等光照探测元件,节省单片机的AD资源,利用电网作为后备来保障时钟的正常运行,进而达到我们想要的时间段,时钟正常的显示。
4.其他创新之处:
1程序写作中,一般来说我们所能用到的年份不会超过2200年,所以在年份的设定中,我们可以让年份不超过2200年,将其改变设定在1900到2200年之间。甚至可以根据需要设定在1900-2100年之间,来节省调节周期。
2)在时间调整子程序中,我发现每次从新写好时间,写入寄存器,会自动触发一个时钟中断,因此在调整之中,只需写入,不需要显示子程序。当运行官方给的写入子程序时,可直接进入中断,显示时钟。这样可大大减少代码的写作。
使用过程中遇到的问题及解决的过程:
1.软件环境搭建。
问题:不会熟练使用CCS和IAR;
解决方法:学习EEWORLD网上MSP430FR5969课程;
2.I/O口问题。
问题:开始无法使用I/O口;
解决方法:必须先使能I/O口;
3.时钟调节的问题。
BCD码和十六进制之间的转换问题。
解决方法:可以直接调用官方给出的例程,进行转换。
4.显示乱码问题。
解决方法:参照官方例程,去掉不相关的子函数,改用CASE语句来实现状态转换,和中断处理。
5.时钟电源调整不能做到无时差。
解决方法:增加电网,稳定后备电源,增强系统的稳定性,实现无时差供能切换。

注:原理图、BOM、软硬件设计思路、照片(见附件)


附件2:设计主要程序代码
  1. #include "driverlib.h" //TI自带的相关库
  2. #include "LCD12864P.h"//12864的串行写入相关驱动函数
  3. volatile Calendar newTime;
  4. /**************************
  5. 延时子程序  for 按键扫描
  6. ***************************/
  7. void delay(int t)
  8. {
  9.   
  10.    while(t--);
  11. }
  12. /**************************
  13. 主函数
  14. ***************************/
  15. void main()
  16. {
  17.         uint display=0;
  18.         WDTCTL = WDTPW + WDTHOLD;
  19.         Calendar currentTime;
  20.          //Set P1.0,P4.6 to output direction
  21.         //P4.6 为显示器电源的控制端口,
  22.         //在设定的时间 关闭显示
  23.         GPIO_setAsOutputPin(
  24.                 GPIO_PORT_P1,
  25.                 GPIO_PIN0
  26.                 );
  27.          GPIO_setAsOutputPin(
  28.                 GPIO_PORT_P4,
  29.                 GPIO_PIN6
  30.                 );
  31.           //Set P1.1andP4.5to input direction withPullUpresistor
  32.          GPIO_setAsInputPinWithPullUpresistor(GPIO_PORT_P1,
  33.                                                  GPIO_PIN1);
  34.          GPIO_setAsInputPinWithPullUpresistor(GPIO_PORT_P4,
  35.                                                  GPIO_PIN5);
  36.           /*
  37.          * Select Port J
  38.          * Set Pin 4, 5 to input Primary Module Function, LFXT.
  39.          */
  40.          GPIO_setAsPeripheralModuleFunctionInputPin(
  41.                 GPIO_PORT_PJ,
  42.                 GPIO_PIN4 + GPIO_PIN5,
  43.                 GPIO_PRIMARY_MODULE_FUNCTION
  44.                 );
  45.         PMM_unlockLPM5(PMM_BASE);
  46.         //Initialize LFXT1
  47.         CS_LFXTStart( CS_BASE,
  48.                       CS_LFXT_DRIVE3
  49.                       );
  50.           //Setup Current Time for Calendar
  51.         currentTime.Seconds    = 0x00;
  52.         currentTime.Minutes    = 0x38;
  53.         currentTime.Hours      = 0x12;
  54.         currentTime.DayOfWeek  = 0x01;
  55.         currentTime.DayOfMonth = 0x22;
  56.         currentTime.Month      = 0x12;
  57.         currentTime.Year       = 0x2014;
  58.         //Initialize Calendar Mode of RTC
  59.         /*
  60.          * Base Address of the RTC_B
  61.          * Pass in current time, intialized above
  62.          * Use BCD as Calendar Register Format
  63.          */
  64.         RTC_B_calendarInit(RTC_B_BASE,
  65.                            currentTime,
  66.                            RTC_B_FORMAT_BCD);
  67.         //Setup Calendar Alarm for 5:00pm on the 5th day of the week.
  68.         //Note: Does not specify day of the week.
  69.         RTC_B_setCalendarAlarm(RTC_B_BASE,
  70.                                0x00,
  71.                                0x17,
  72.                                RTC_B_ALARMCONDITION_OFF,
  73.                                0x05);

  74.         //Specify an interrupt to assert every minute
  75.         RTC_B_setCalendarEvent(RTC_B_BASE,
  76.                                RTC_B_CALENDAREVENT_MINUTECHANGE);

  77.         RTC_B_clearInterrupt(RTC_B_BASE,
  78.                              RTC_B_CLOCK_READ_READY_INTERRUPT +
  79.                              RTC_B_TIME_EVENT_INTERRUPT +
  80.                              RTC_B_CLOCK_ALARM_INTERRUPT
  81.                              );
  82.         //Enable interrupt for RTC Ready Status, which asserts when the RTC
  83.         //Calendar registers are ready to read.
  84.         //Also, enable interrupts for the Calendar alarm and Calendar event.
  85.         RTC_B_enableInterrupt(RTC_B_BASE,
  86.                               RTC_B_CLOCK_READ_READY_INTERRUPT +
  87.                               RTC_B_TIME_EVENT_INTERRUPT +
  88.                               RTC_B_CLOCK_ALARM_INTERRUPT
  89.                               );

  90.         //Start RTC Clock
  91.         RTC_B_startClock(RTC_B_BASE);

  92.         //Enter LPM3 mode with interrupts enabled
  93.        // __bis_SR_register(LPM0_bits + GIE);
  94.         __bis_SR_register(GIE);
  95.         __no_operation();

  96.         Ini_Lcd();//12864 初始化 串口写入,等待写入指示   
  97.          
  98.        while(1)
  99.     {
  100.              if (!GPIO_getInputPinValue( GPIO_PORT_P1, GPIO_PIN1))
  101.                 {
  102.                     delay(30000);
  103.                     if (!GPIO_getInputPinValue( GPIO_PORT_P1, GPIO_PIN1))
  104.                     {
  105.                                     
  106.                          GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);
  107.                          display+=1;
  108.                          if(display==9)display=0;//0 显示,1调秒。2调分。。7、8调年,
  109.                           lcd_pos(1,7);
  110.                           Disp_SZ(display);  //可增加调整界面   
  111.                           lcd_pos(2,6);
  112.                           switch(display)
  113.                        {
  114.                           case 1: Disp_HZ("调秒",2);break;
  115.                           case 2: Disp_HZ("调分",2);break;
  116.                           case 3: Disp_HZ("调时",2);break;
  117.                           case 4: Disp_HZ("调周",2);break;
  118.                           case 5: Disp_HZ("调月",2);break;
  119.                           case 6: Disp_HZ("调月",2);break;
  120.                           case 7: Disp_HZ("调年",2);break;
  121.                           case 8: Disp_HZ("调年",2);break;
  122.                           case 0: Disp_HZ("显示",2);break;
  123.                           default: break;
  124.                         }
  125.                           
  126.                    }
  127.                  }
  128.              else
  129.                  
  130.                   {      
  131.                         //if P1.4 set, set P1.0
  132.                         GPIO_setOutputLowOnPin( GPIO_PORT_P1,GPIO_PIN0);                           
  133.                    }
  134.                  

  135.                switch(display)//调整时间程序
  136.                {
  137.                 case 0:break;
  138.                 case 1:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  139.                        { delay(20000);
  140.                        if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  141.                        {
  142.                          currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。
  143.                          currentTime.Seconds+=1;
  144.                          if(currentTime.Seconds>=0x59)currentTime.Seconds=0;   
  145.                          RTC_B_calendarInit(RTC_B_BASE,
  146.                          currentTime,
  147.                          RTC_B_FORMAT_BCD);
  148.                          newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  149.                          //currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。            
  150.                        }
  151.                        }
  152.                   break;
  153.                 case 2:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  154.                        { delay(20000);
  155.                        if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  156.                        {
  157.                          currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃
  158.                          currentTime.Minutes+=1;
  159.                          if(currentTime.Minutes>=0x59)currentTime.Minutes=0;   
  160.                          RTC_B_calendarInit(RTC_B_BASE,
  161.                            currentTime,
  162.                            RTC_B_FORMAT_BCD);
  163.                          newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  164.                                             
  165.                        }
  166.                        }break;
  167.                case 3:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  168.                        { delay(20000);
  169.                        if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  170.                        {
  171.                           currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。
  172.                          currentTime.Hours+=1;
  173.                          if(currentTime.Hours>=0x24)currentTime.Hours=0;   
  174.                          RTC_B_calendarInit(RTC_B_BASE,
  175.                            currentTime,
  176.                            RTC_B_FORMAT_BCD);
  177.                           newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  178.                                       
  179.                        }
  180.                        }
  181.                       break;
  182.                case 4:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  183.                        { delay(20000);
  184.                          if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  185.                         {
  186.                            currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。
  187.                            currentTime.DayOfWeek+=1;
  188.                            if(currentTime.DayOfWeek>=0x07)currentTime.DayOfWeek=0;   
  189.                            RTC_B_calendarInit(RTC_B_BASE,
  190.                            currentTime,
  191.                            RTC_B_FORMAT_BCD);
  192.                            newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  193.                                          
  194.                          }
  195.                        }
  196.                        break;
  197.                case 5:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  198.                        { delay(20000);
  199.                          if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  200.                         {
  201.                             currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。
  202.                            currentTime.DayOfMonth+=1;
  203.                            if(currentTime.DayOfMonth>=0x32)currentTime.DayOfMonth=0;   
  204.                            RTC_B_calendarInit(RTC_B_BASE,
  205.                            currentTime,
  206.                            RTC_B_FORMAT_BCD);
  207.                            newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  208.                                        
  209.                          }
  210.                        }break;
  211.                case 6:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  212.                        { delay(20000);
  213.                          if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  214.                         {
  215.                            currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。
  216.                            currentTime.Month+=1;
  217.                            if(currentTime.Month>=0x13)currentTime.Month=0;   
  218.                            RTC_B_calendarInit(RTC_B_BASE,
  219.                            currentTime,
  220.                            RTC_B_FORMAT_BCD);
  221.                            newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  222.                                        
  223.                          }
  224.                        }break;
  225.                 case 7:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  226.                        { delay(20000);
  227.                          if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  228.                         {
  229.                            currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。
  230.                            currentTime.Year+=1;
  231.                            if((currentTime.Year&0x00ff)>=0xA0)currentTime.Year&=0xff00;   
  232.                            RTC_B_calendarInit(RTC_B_BASE,
  233.                            currentTime,
  234.                            RTC_B_FORMAT_BCD);
  235.                            newTime = RTC_B_getCalendarTime(RTC_B_BASE);           
  236.                          }
  237.                        }break;
  238.                  case 8:if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  239.                        { delay(20000);
  240.                          if (!GPIO_getInputPinValue( GPIO_PORT_P4, GPIO_PIN5))
  241.                         {
  242.                            currentTime=newTime;//加上这句话,时钟就在走的地方开始调,不会出现跳跃。
  243.                            currentTime.Year+=0x100;
  244.                            if((currentTime.Year>>8)>=0x40) currentTime.Year&=0x00ff;   
  245.                            RTC_B_calendarInit(RTC_B_BASE,
  246.                            currentTime,
  247.                            RTC_B_FORMAT_BCD);
  248.                            newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  249.                                     
  250.                          }
  251.                        }break;
  252.                default: break;
  253.                         
  254.                }
  255.                      
  256.     }
  257.               
  258. }
  259. #pragma vector=RTC_VECTOR
  260. __interrupt void RTC_B_ISR(void) //时钟中断
  261. {
  262.         switch (__even_in_range(RTCIV, 16)) {
  263.         case 0: break;  //No interrupts
  264.         case 2:         //RTCRDYIFG
  265.                 //Toggle P1.0 every second
  266.                
  267.                 newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  268.               
  269.                    //RTC_B_convertBinaryToBCD(RTC_B_BASE,
  270.                   //                 newTime.Seconds);              
  271.                       lcd_pos(1,1);
  272.                       Disp_HZ("太阳能时钟",5);
  273.                       lcd_pos(2,2);
  274.                       Disp_SZ((newTime.Year>>8)/16);
  275.                       Disp_SZ((newTime.Year>>8)%16);
  276.                       Disp_SZ((newTime.Year&0x00ff)/16);
  277.                       Disp_SZ((newTime.Year&0x00ff)%16);
  278.                       Disp_HZ("年",1);//数字代表字的个数  
  279.                      
  280.                       lcd_pos(3,0);
  281.                       Disp_SZ(newTime.Month/16);
  282.                       Disp_SZ(newTime.Month%16);
  283.                       Disp_HZ("月",1);
  284.                       Disp_SZ(newTime.DayOfMonth/16);
  285.                       Disp_SZ(newTime.DayOfMonth%16);
  286.                       Disp_HZ("日",1);
  287.                      
  288.                       Disp_HZ("周",1);                    
  289.                       switch(newTime.DayOfWeek%16)//显示周几
  290.                        {
  291.                           case 1: Disp_HZ("一",1);break;
  292.                           case 2: Disp_HZ("二",1);break;
  293.                           case 3: Disp_HZ("三",1);break;
  294.                           case 4: Disp_HZ("四",1);break;
  295.                           case 5: Disp_HZ("五",1);break;
  296.                           case 6: Disp_HZ("六",1);break;
  297.                           case 0: Disp_HZ("日",1);break;
  298.                           default: break;
  299.                         }  
  300.                      lcd_pos(4,1);  
  301.                      Disp_SZ(newTime.Hours/16);
  302.                      Disp_SZ(newTime.Hours%16);   
  303.                      Disp_HZ("时",1);
  304.                      Disp_SZ(newTime.Minutes/16);
  305.                      Disp_SZ(newTime.Minutes%16);
  306.                      Disp_HZ("分",1);
  307.                      Disp_SZ(newTime.Seconds/16);
  308.                      Disp_SZ(newTime.Seconds%16);
  309.                      Disp_HZ("秒",1);
  310.                       if(newTime.Hours>=0x08&&newTime.Hours<0x18)//每天早上 8点 启动显示
  311.                      GPIO_setOutputHighOnPin(GPIO_PORT_P4,GPIO_PIN6);
  312.                      else //每下午6点 关闭显示
  313.                      GPIO_setOutputLowOnPin(GPIO_PORT_P4,GPIO_PIN6);
  314.                      
  315.                      
  316.                 break;
  317.         case 4:         //RTCEVIFG
  318.                 //Interrupts every minute
  319.                  
  320.                  
  321.                 __no_operation();
  322.                   
  323.                 //Read out New Time a Minute Later BREAKPOINT HERE
  324.                 newTime = RTC_B_getCalendarTime(RTC_B_BASE);
  325.                 break;
  326.         case 6:         //RTCAIFG
  327.                 //Interrupts 5:00pm on 5th day of week  
  328.                 //也可以在这里设置相关时间节点
  329.                 __no_operation();
  330.                    break;
  331.         case 8:   break;  //RT0PSIFG
  332.         case 10:  break; //RT1PSIFG
  333.         case 12:  break; //Reserved
  334.         case 14:  break; //Reserved
  335.         case 16:  break; //Reserved
  336.         default: break;
  337.         }
  338. }
复制代码

附件3 : 各个部分演示视频

视频1:时钟功能演示(注:请将视频格式 设置为超清 即可看清楚 显示器上的内容,如果标清的  话 看不清12864的内容)



视频2:能量转换演示



视频3:系统联调演示





































系统全家福.jpg (72.05 KB, 下载次数: 0)

系统全家福

系统全家福

太阳能电子时钟程序IAR版本.zip

5.68 MB, 下载次数: 6

TI首届低功耗设计大赛项目报告.docx

1.12 MB, 下载次数: 4

项目中重要程序.zip

4.72 KB, 下载次数: 4

最新回复

感觉太阳能应该属于功率连续但是比较微弱一类的能量,ti、凌力尔特都有类似微能量搜集的IC,最近很想折腾一下  详情 回复 发表于 2015-1-4 18:54
 
点赞 关注(1)

回复
举报

530

帖子

4

TA的资源

一粒金砂(高级)

沙发
 
大神莫拍板。。
 
 

回复

2056

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
还有真人声音的,支持一下

点评

大神来捧场了,多谢多谢  详情 回复 发表于 2015-1-3 13:47
 
 
 

回复

9790

帖子

24

TA的资源

版主

4
 
好帖好帖

点评

谢谢鼓励  详情 回复 发表于 2015-1-3 13:47
 
 
 

回复

105

帖子

1

TA的资源

一粒金砂(中级)

5
 
我觉得,楼主这个有一个小bug,那就是调节的时候时钟是会动的,这个不太好

点评

我故意让它动的。。。你设想啊当你调好秒后,再去调时的时候,如果秒不走,是不是意味着你的秒不对了。。我这样设计,可以随时调整当前位而不用担心秒位。当然也会存在进位的问题,但比起秒不动来说,还可以容忍的。  详情 回复 发表于 2015-1-3 13:46
 
 
 

回复

530

帖子

4

TA的资源

一粒金砂(高级)

6
 
随风暗影 发表于 2015-1-3 12:50
我觉得,楼主这个有一个小bug,那就是调节的时候时钟是会动的,这个不太好
我故意让它动的。。。你设想啊当你调好秒后,再去调时的时候,如果秒不走,是不是意味着你的秒不对了。。我这样设计,可以随时调整当前位而不用担心秒位。当然也会存在进位的问题,但比起秒不动来说,还可以容忍的。
 
 
 

回复

530

帖子

4

TA的资源

一粒金砂(高级)

7
 
谢谢鼓励

点评

太阳能电池 好大 好大  详情 回复 发表于 2015-1-3 13:55
 
 
 

回复

530

帖子

4

TA的资源

一粒金砂(高级)

8
 
IC爬虫 发表于 2015-1-3 12:01
还有真人声音的,支持一下
大神来捧场了,多谢多谢
 
 
 

回复

9790

帖子

24

TA的资源

版主

9
 
太阳能电池 好大 好大

点评

手上没小的,10W的。。  详情 回复 发表于 2015-1-3 14:02
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

530

帖子

4

TA的资源

一粒金砂(高级)

10
 
littleshrimp 发表于 2015-1-3 13:55
太阳能电池 好大 好大
手上没小的,10W的。。
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

11
 
这个电池板,真够大的
能充电不?

点评

必须能,中午还能给你手机充电呢。有7W左右的有效输出功率  详情 回复 发表于 2015-1-3 15:21
 
个人签名

So TM what......?

 

 

回复

530

帖子

4

TA的资源

一粒金砂(高级)

12
 
ljj3166 发表于 2015-1-3 15:07
这个电池板,真够大的
能充电不?
必须能,中午还能给你手机充电呢。有7W左右的有效输出功率

点评

试着自己做了个锂电池充电板,结果没成功,搁浅了。楼主的充电板抛出来大家学习一下呀  详情 回复 发表于 2015-1-3 15:24
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

13
 
传媒学子 发表于 2015-1-3 15:21
必须能,中午还能给你手机充电呢。有7W左右的有效输出功率
试着自己做了个锂电池充电板,结果没成功,搁浅了。楼主的充电板抛出来大家学习一下呀

点评

额。文档里面有原理图的,但是我这是对着太阳能电池板的,其最大输出电流也就不大,所以不用加什么保护电路,只需一个DC——DC转换即可。。楼主是不是想的麻烦了  详情 回复 发表于 2015-1-4 15:25
 
个人签名

So TM what......?

 

 

回复

530

帖子

4

TA的资源

一粒金砂(高级)

14
 
ljj3166 发表于 2015-1-3 15:24
试着自己做了个锂电池充电板,结果没成功,搁浅了。楼主的充电板抛出来大家学习一下呀
额。文档里面有原理图的,但是我这是对着太阳能电池板的,其最大输出电流也就不大,所以不用加什么保护电路,只需一个DC——DC转换即可。。楼主是不是想的麻烦了

点评

感觉太阳能应该属于功率连续但是比较微弱一类的能量,ti、凌力尔特都有类似微能量搜集的IC,最近很想折腾一下  详情 回复 发表于 2015-1-4 18:54
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

15
 
传媒学子 发表于 2015-1-4 15:25
额。文档里面有原理图的,但是我这是对着太阳能电池板的,其最大输出电流也就不大,所以不用加什么保护电路,只需一个DC——DC转换即可。。楼主是不是想的麻烦了



感觉太阳能应该属于功率连续但是比较微弱一类的能量,ti、凌力尔特都有类似微能量搜集的IC,最近很想折腾一下
 
个人签名

So TM what......?

 

 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表