赞
踩
蓝牙计步器选用单片机STC89C52作为系统控制芯片,通过蓝牙模块把单片机处理的数据传输到手机APP上,这样更能清楚看到检测的效果。整机工作电流只有1-1.5mA,实现超低功耗。采集的步数,路程,卡路里及运动状态用手机APP显示。
整体电路主要由51单片机最小系统,ADXL345加速度传感器,lcd1602液晶电路,蓝牙模块电路,呼吸灯电路,电源电路组成;原理图如图:
PCB图如下:
主程序源码
- void main (void)
- {
- Init_Timer0(); //定时器0初始化
- UART_Init();
-
- LCD_Init(); //初始化液晶
- DelayMs(20); //延时有助于稳定
- LCD_Clear();
-
- Init_ADXL345(); //清屏
- if(Single_Read_ADXL345(0X00)==0xe5) //读出的数据为0XE5,表示正确
- {
- DelayMs(5);
- }
- else
- {
- DelayMs(3);
- }
- led=1;
- while (1) //主循环
- {
- if(ReadAdxl345==1) //定时读取adxl345数据
- {
- BuShuCheck(); //检测步数
-
- sprintf(dis1,"B:%04d J:%4.1fm ",BuShu/2,JuLi); //打印
- LCD_Write_String(0,0,dis1);//显示
- sprintf(dis2,"%7.2fcal ",KaLuLi); //打印
- LCD_Write_String(0,1,dis2);//显示
-
- if(statFlag == 0)//站着状态
- {LCD_Write_String(11,1,"Stand");}
- else if(statFlag == 1)躺着状态
- {LCD_Write_String(11,1,"Lie ");}
- else if(statFlag == 2)//跑着状态
- {LCD_Write_String(11,1,"Run ");}
- else if(statFlag == 3)//走着状态
- {LCD_Write_String(11,1,"Walk ");}
- }
-
- if(ReportFlag==1) //2s
- {
- ReportFlag=0;
- sprintf(dis0,"*B:%04d",BuShu/2); //上报步数
- SendStr(dis0,7);
- sprintf(dis0,"J:%04.1fm",JuLi); //上报距离
- SendStr(dis0,7);
- sprintf(dis0,"K:%07.2fcal",KaLuLi); //上报卡路里
- SendStr(dis0,12);
-
- if(statFlag == 0)//站着状态
- {SendStr("Stand#",6);}
- else if(statFlag == 1)躺着状态
- {SendStr("Lie #",6);}
- else if(statFlag == 2)//跑着状态
- {SendStr("Run #",6);}
- else if(statFlag == 3)//走着状态
- {SendStr("Walk #",6);}
- SendStr("\r\n",2);
- }
- }
- }
资料链接:https://pan.baidu.com/s/1BV7C6sNkZyiSEBtY_uRajA?pwd=iyt9
提取码:iyt9
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。