查看: 1004|回复: 0

【 LinkIt ONE 】4、Battery 和 RTC

[复制链接]
  • TA的每日心情
    慵懒
    2016-10-17 12:07
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2016-5-23 10:19:28 | 显示全部楼层 |阅读模式
    分享到:

    LinkIt ONE 是一个面向 IoT 的开发板。可以外接 3.7V 电池供电。LinkIt ONE  开发板的盒子里带了一个 Li-ion 电池。
    下面就简单的介绍下,如何使用LinkIt  ONE 的电池和RTC时钟的功能。
    一、 Battery
    Battery 相对比较简单,系统自带了两个函数 API 进行调用,
    电池 level API 返回当前的电池电量 从 0~100 。(其实只能反回0, 33, 66, 100 这四个值 )
    电池状态 API  返回当前的电池充电与否。 是一个boolean 型,true 代表充电 ,false 代表未充电
    使用电池API 的时候,要包含电池的文件,,,
    #include <LBattery.h>bat_level = LBattery.level();如上方法,进行调用。
                                  

    图1:电池电量返回


    图2:充电中




    图3:未充电


    核心代码如下,关于OLED显示的部分,请查看上一篇文章:
    unsigned char dis1[] = "LinkIt ONE";unsigned char dis2[] = "Battery:";unsigned char dis3[] = "eeboard";unsigned char bat_ch[] = "charging";unsigned char bat_nch[] = "not charging";unsigned char bat[4] = "100"; int bat_level = 0; //level();datetimeInfo date;void setup() {  pinMode(OLED_DC,OUTPUT);  pinMode(OLED_RST,OUTPUT);    SPI.begin();    SPI.setBitOrder(MSBFIRST);     LCD_Init();   delayMicroseconds(10);  LCD_Fill(0xff);  LCD_Fill(0xff);  LCD_Fill(0x00);    OLED_6x8Str(0, 0, dis1);  OLED_6x8Str(0, 3, dis2);  OLED_6x8Str(64,3,bat);    OLED_6x8Str(80, 7, dis3);  }void loop() {    //LDateTime.getTime(&date);  //bat_level =date.mon;    bat_level = LBattery.level();  bat[0] = bat_level/100 + '0';  bat[1] = (bat_level0)/10 + '0';  bat[2] = bat_level + '0';  OLED_6x8Str(64,3,bat);  if(LBattery.isCharging())     OLED_6x8Str(32,5,bat_ch);  else      OLED_6x8Str(32,5,bat_nch);   //  LDateTime.year = 0;  }二、RTC
    时间以及日期这个对于IoT 设备也是很重要的一个功能。当然LinkIt ONE开发板中不会把这个功能漏掉的。
    首先包括一下的文件。
    #include <LDateTime.h>主要有三个函数:int getRtc(    unsigned int * rtc);int getTime(    datetimeInfo * time);int setTime(    datetimeInfo * time);时间和日期被存储在如下结构体中:
    typedef struct {  int year;  int mon;  int day;  int hour;  int min;  int sec;} datetimeInfo;简单的例程如下:
    #include <LDateTime.h>datetimeInfo t;void setup(){}void loop(){  LDateTime.getTime(&t);  LDateTime.setTime(&t);  delay(1000);}
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 21:13 , Processed in 0.117099 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.