一:功能
基于STM32單片機智能手環心率計步器體溫顯示設計
本設計由STM32F103C8T6單片機核心板電路+ADXL345傳感器電路+心率傳感器電路+溫度傳感器+lcd1602電路組成。
1、通過重力加速度傳感器ADXL345檢測人的狀態,計算出走步數、走路距離和平均速度。
2、通過心率傳感器實時檢測心率,通過溫度傳感器檢測溫度。
3、lcd1602實時顯示步數、距離和平均速度、心率以及溫度值。
二:電路圖
三:源代碼
#include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include#include "timer.h" #include "key.h" #include "exti.h" #include "adxl345.h" #include "lcd1602.h" #include "ds18b20.h" unsigned char ReadAdxl345; /* 定時讀取adxl345數據 */ unsigned char ErrorNum=0; /* 記錄錯誤次數 */ unsigned char CheckNum=0; /* 檢測次數 */ char dis0[16]; /* 液晶數組顯示暫存 */ char dis1[35]; unsigned int xlTab[5]; /* 心率數組 */ unsigned char count=0; /* 心率濾波計數 */ unsigned int xinLater=0; /* 心率延時處理 */ unsigned int xinLv =0; /* 心率值 */ unsigned int BuShu=0; /* 步數 */ unsigned int Normal_num=0; /* 正常次數 */ unsigned int Error_num=0; /* 傾斜次數 */ unsigned int disBuShu = 0; /* 顯示步數 */ float disJuLi = 0; /* 顯示距離 */ float temperature; /* 溫度 */ unsigned char readTemp = 0; /* 讀取溫度標志 */ int main(void) { delay_init(); /* 延時函數初始化 */ uart_init(9600); /* 串口初始化為9600 */ TIM3_Int_Init(49,7199); /* 50ms */ EXTIX_Init(); /* 初始化外部中斷 */ LED_Init(); /* 初始化與LED連接的硬件接口 */ KEY_Init(); /* 初始化按鍵 */ Lcd_GPIO_init(); /* 初始化lcd引腳 */ Lcd_Init(); /* 初始化lcd屏幕 */ delay_ms(200); Init_ADXL345(); if(Single_Read_ADXL345(0X00)==0xe5) { delay_ms(5); } else { delay_ms(3); } while(1) { if(ReadAdxl345== 1) /* 定時讀取adxl345數據 */ { ReadAdxl345= 0; ReadData_x(); /* 三軸檢測函數 */ CheckNum++; if((temp_Y>450)||(temp_Y<-450)) /* 查看正常次數 */ { Normal_num++; /* 正常次數++ */ } else { Error_num++; /* 傾斜次數 */ } if((Error_num!=0)&&(Normal_num!=0)) /* 檢測到步數 */ { BuShu++; /* 步數脈沖量++ */ Error_num=0; /* 清除一個周期檢測 */ Normal_num=0; } } if(disFlag==1) /* 顯示標志 */ { disFlag = 0; readTemp++; /* 定時計數 */ if(readTemp >= 8) /* 約800ms處理一次數據 溫度 */ { readTemp =0; /* 重新計數 */ temperature=(float)DS18B20_Get_Temp()/10; /* 縮小10倍為實際值 */ } disBuShu = BuShu/2; /* 顯示步數 */ disJuLi = disBuShu*0.45; /* 顯示距離 */ sprintf(dis0,"X:%03d/min %4.1f C",xinLv,temperature); /* 打印 */ Lcd_Puts(0,0,(unsigned char *)dis0); /* 顯示 */ Lcd_1Put(14,0,0xdf); /* 顯示符號 */ sprintf(dis1,"BS:%03d JL:%4.1fm ",disBuShu,disJuLi); /* 打印 */ Lcd_Puts(0,1,(unsigned char *)dis1); /* 顯示 */ } } }
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
加速度傳感器
+關注
關注
12文章
477瀏覽量
55564 -
計步器
+關注
關注
4文章
76瀏覽量
20143 -
STM32單片機
+關注
關注
59文章
549瀏覽量
59240
原文標題:畢業設計 | 基于STM32單片機智能手環脈搏心率計步器體溫顯示設計
文章出處:【微信號:精通單片機與嵌入式,微信公眾號:精通單片機與嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
怎樣去設計一種基于STM32的智能手環系統
STM32系列基于STM32的智能手環系統的設計STM32系列前言一、系統方案的設計1.1系統功能分析1.2系統總體結構二、硬件電路的搭建2
發表于 08-04 07:09
怎樣去設計基于STM32的智能手環系統
前言隨著科學技術的革新,智能化生活已經開始實現,更多的人們的目光聚焦在智能化產品上面,一方面是對自身健康的關注,另一方面是對便攜輕松的生活的向往,智
發表于 08-16 09:02
怎樣去設計一種基于51單片機的脈搏測量儀呢
脈搏測量儀在我們的日常生活中已經得到了非常廣泛的應用,通過觀測脈搏信號,可以對人體的健康進行檢查,通常被用于保健中心和醫院。為了提高脈搏測量儀的簡便性和精確度,本課題設計了一種基于51
發表于 12-06 08:04
評論