一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣去設(shè)計(jì)一種基于STM32單片機(jī)的智能手環(huán)脈搏心率計(jì)步器呢

精通單片機(jī)與嵌入式 ? 來(lái)源:玩轉(zhuǎn)單片機(jī)與嵌入式 ? 作者:觀海聽(tīng)濤 ? 2022-10-19 09:41 ? 次閱讀

一:功能

基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)

本設(shè)計(jì)由STM32F103C8T6單片機(jī)核心板電路+ADXL345傳感器電路+心率傳感器電路+溫度傳感器+lcd1602電路組成。

1、通過(guò)重力加速度傳感器ADXL345檢測(cè)人的狀態(tài),計(jì)算出走步數(shù)、走路距離和平均速度。

2、通過(guò)心率傳感器實(shí)時(shí)檢測(cè)心率,通過(guò)溫度傳感器檢測(cè)溫度。

3、lcd1602實(shí)時(shí)顯示步數(shù)、距離和平均速度、心率以及溫度值。

二:電路圖

77f6f47a-4f39-11ed-a3b6-dac502259ad0.png

三:源代碼

#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;                                              /* 定時(shí)讀取adxl345數(shù)據(jù)          */
unsigned char ErrorNum=0;                                               /* 記錄錯(cuò)誤次數(shù)                 */
unsigned char CheckNum=0;                                               /* 檢測(cè)次數(shù)                     */


char dis0[16];                                                          /* 液晶數(shù)組顯示暫存             */
char dis1[35];


unsigned int xlTab[5];                                                  /* 心率數(shù)組                     */
unsigned char count=0;                                                  /* 心率濾波計(jì)數(shù)                 */
unsigned int xinLater=0;                                                /* 心率延時(shí)處理                 */
unsigned int xinLv =0;                                                  /* 心率值                       */


unsigned int BuShu=0;                                                   /* 步數(shù)                         */
unsigned int Normal_num=0;                                              /* 正常次數(shù)                     */
unsigned int Error_num=0;                                               /* 傾斜次數(shù)                     */


unsigned int disBuShu = 0;                                              /* 顯示步數(shù)                     */
float disJuLi = 0;                                                      /* 顯示距離                     */
float temperature;                                                      /* 溫度                         */
unsigned char readTemp = 0;                                             /* 讀取溫度標(biāo)志                 */


int main(void)
{
    delay_init();                                                       /* 延時(shí)函數(shù)初始化               */
    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)                                             /* 定時(shí)讀取adxl345數(shù)據(jù)          */
        {
            ReadAdxl345= 0;
            ReadData_x();                                               /* 三軸檢測(cè)函數(shù)                 */
            CheckNum++;
            if((temp_Y>450)||(temp_Y<-450))                             /* 查看正常次數(shù)                 */
            {
                Normal_num++;                                           /* 正常次數(shù)++                   */
            }
            else
            {
                Error_num++;                                            /* 傾斜次數(shù)                     */
            }
            if((Error_num!=0)&&(Normal_num!=0))                         /* 檢測(cè)到步數(shù)                   */
            {
                BuShu++;                                                /* 步數(shù)脈沖量++                 */
                Error_num=0;                                            /* 清除一個(gè)周期檢測(cè)             */
                Normal_num=0;
            }
        }
        
        if(disFlag==1)                                                  /* 顯示標(biāo)志                     */
        {
            disFlag = 0;
            
            readTemp++;                                                 /* 定時(shí)計(jì)數(shù)                     */
            if(readTemp >= 8)                                           /* 約800ms處理一次數(shù)據(jù) 溫度     */
            {
                readTemp =0;                                            /* 重新計(jì)數(shù)                     */
                temperature=(float)DS18B20_Get_Temp()/10;               /* 縮小10倍為實(shí)際值             */
            }
            
            disBuShu = BuShu/2;                                         /* 顯示步數(shù)                     */
            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);                                        /* 顯示符號(hào)                     */
            sprintf(dis1,"BS:%03d JL:%4.1fm  ",disBuShu,disJuLi);       /* 打印                         */
            Lcd_Puts(0,1,(unsigned char *)dis1);                        /* 顯示                         */
            
        }
    }
}


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 加速度傳感器
    +關(guān)注

    關(guān)注

    12

    文章

    478

    瀏覽量

    55599
  • 計(jì)步器
    +關(guān)注

    關(guān)注

    4

    文章

    76

    瀏覽量

    20172
  • STM32單片機(jī)
    +關(guān)注

    關(guān)注

    59

    文章

    549

    瀏覽量

    59295

原文標(biāo)題:畢業(yè)設(shè)計(jì) | 基于STM32單片機(jī)智能手環(huán)脈搏心率計(jì)步器體溫顯示設(shè)計(jì)

文章出處:【微信號(hào):精通單片機(jī)與嵌入式,微信公眾號(hào):精通單片機(jī)與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一種基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示方案

    怎樣設(shè)計(jì)一種智能手環(huán)心率計(jì)步器體溫顯示的硬件電路?怎樣
    發(fā)表于 07-16 07:15

    怎樣設(shè)計(jì)一種基于51單片機(jī)最小系統(tǒng)的跑步機(jī)霍爾測(cè)速脈搏心率檢測(cè)儀

    基于51單片機(jī)最小系統(tǒng)的跑步機(jī)霍爾測(cè)速脈搏心率檢測(cè)儀有哪些功能?怎樣設(shè)計(jì)
    發(fā)表于 08-03 07:52

    怎樣設(shè)計(jì)一種基于STM32智能手環(huán)系統(tǒng)

    STM32系列基于STM32智能手環(huán)系統(tǒng)的設(shè)計(jì)STM32系列前言、系統(tǒng)方案的設(shè)計(jì)1.1系統(tǒng)功能分析1.2系統(tǒng)總體結(jié)構(gòu)二、硬件電路的搭建2
    發(fā)表于 08-04 07:09

    怎樣設(shè)計(jì)基于STM32智能手環(huán)系統(tǒng)

    前言隨著科學(xué)技術(shù)的革新,智能化生活已經(jīng)開(kāi)始實(shí)現(xiàn),更多的人們的目光聚焦在智能化產(chǎn)品上面,方面是對(duì)自身健康的關(guān)注,另方面是對(duì)便攜輕松的生活的向往,
    發(fā)表于 08-16 09:02

    怎樣設(shè)計(jì)一種基于51單片機(jī)脈搏測(cè)量?jī)x

    基于51單片機(jī)脈搏測(cè)量?jī)x是由哪些部分組成的?怎樣設(shè)計(jì)一種基于51單片機(jī)
    發(fā)表于 10-19 09:35

    怎樣設(shè)計(jì)一種基于STM32智能手環(huán)系統(tǒng)

    基于STM32智能手環(huán)系統(tǒng)是由哪些部分組成的?怎樣設(shè)計(jì)基于STM32智能手環(huán)系統(tǒng)的硬件電路
    發(fā)表于 10-20 07:18

    怎樣設(shè)計(jì)一種基于單片機(jī)智能窗簾

    怎樣設(shè)計(jì)一種基于單片機(jī)智能窗簾?怎樣
    發(fā)表于 10-22 07:29

    怎樣設(shè)計(jì)基于STC89C51/52單片機(jī)心率計(jì)脈搏測(cè)量?jī)x

    心率計(jì)脈搏測(cè)量?jī)x的硬件是由哪些部分構(gòu)成的?怎樣設(shè)計(jì)基于STC89C51/52單片機(jī)心率計(jì)
    發(fā)表于 10-26 07:57

    基于STM32智能手環(huán)系統(tǒng)該怎樣設(shè)計(jì)

    怎樣設(shè)計(jì)基于STM32智能手環(huán)系統(tǒng)的硬件?怎樣
    發(fā)表于 11-17 06:14

    怎樣設(shè)計(jì)一種基于51單片機(jī)脈搏測(cè)量?jī)x

    脈搏測(cè)量?jī)x在我們的日常生活中已經(jīng)得到了非常廣泛的應(yīng)用,通過(guò)觀測(cè)脈搏信號(hào),可以對(duì)人體的健康進(jìn)行檢查,通常被用于保健中心和醫(yī)院。為了提高脈搏測(cè)量?jī)x的簡(jiǎn)便性和精確度,本課題設(shè)計(jì)了一種基于51
    發(fā)表于 12-06 08:04

    怎樣設(shè)計(jì)一種基于單片機(jī)智能門禁系統(tǒng)

    基于單片機(jī)智能門禁系統(tǒng)實(shí)現(xiàn)了哪些功能?怎樣設(shè)計(jì)一種基于
    發(fā)表于 12-21 07:01

    怎樣設(shè)計(jì)一種基于單片機(jī)心率監(jiān)測(cè)LED燈輔助睡眠系統(tǒng)

    基于單片機(jī)心率監(jiān)測(cè)LED燈輔助睡眠系統(tǒng)的設(shè)計(jì)原理是什么?怎樣設(shè)計(jì)一種基于單片機(jī)
    發(fā)表于 02-17 07:23

    怎樣設(shè)計(jì)一種基于Arduino Uno單片機(jī)智能小車

    基于Arduino Uno單片機(jī)智能小車是由哪些部分組成的?怎樣設(shè)計(jì)一種基于Arduino Uno
    發(fā)表于 02-21 06:04

    怎樣設(shè)計(jì)一種基于STM32L151C6單片機(jī)智能垃圾桶

    怎樣設(shè)計(jì)一種基于STM32L151C6單片機(jī)智能垃圾桶
    發(fā)表于 02-28 06:29

    基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)

    基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
    發(fā)表于 04-11 09:08 ?187次下載