历史上的今天
今天是:2024年11月08日(星期五)
2019年11月08日 | MEGA2560主控自行车骑行监测器
2019-11-08 来源:51hei
自行车骑行监测器,可以GPS定位,检测骑行速度,检测心率,同时将以上数据写入SD卡内进行保存,使用MEGA2560主控
SD卡的SPI接口 ** MOSI - pin 51 ** MISO - pin 50 ** CLK - pin 52 ** CS - pin 53
GPS的串口使用mega2560的串口1 Serial 1: Pin19 (RX) and Pin18 (TX);Pin13接一个LED显示GPS是否工作正常
两个霍尔传感器接在外部中断 Pin2 (interrupt 0), Pin3 (interrupt 1)
心跳指示灯在 Pin5 int fadePin = 5
int blinkPin = 14;
单片机源程序如下:
//#include"Arduino.h"
//#include "AllSerialHanding.h"
//#include "Interrupt.h"
//#include "SD_ReadWrite.h"
#include "all.h"
#define PROCESSING_VISUALIZER 1
#define SERIAL_PLOTTER 2
volatile int BPM; // int that holds raw Analog in 0. updated every 2mS
volatile int Signal; // holds the incoming raw data
volatile int IBI = 600; // int that holds the time interval between beats! Must be seeded!
static int outputType = SERIAL_PLOTTER;
String beat_data = " BPM:0 IBI:0 Signal:0";
void PulseSensor_SD_Write()
{
SD_Write("test.txt",beat_data); //脉冲数据写入SD卡中PulseSensor.txt文件
}
// Sends Data to Pulse Sensor Processing App, Native Mac App, or Third-party Serial Readers.
void sendDataToSerial(char symbol, int data ){
Serial.print(symbol);
Serial.println(data);
}
void serialOutput(){ // Decide How To Output Serial.
switch(outputType){
case PROCESSING_VISUALIZER:
sendDataToSerial('S', Signal); // goes to sendDataToSerial function
break;
case SERIAL_PLOTTER: // open the Arduino Serial Plotter to visualize these data
Serial.print(BPM);
Serial.print(",");
Serial.print(IBI);
Serial.print(",");
Serial.println(Signal);
beat_data=" BPM:"+String(BPM)+" IBI:"+String(IBI)+" Signal:"+String(Signal);
break;
default:
break;
}
}
// Decides How To OutPut BPM and IBI Data
void serialOutputWhenBeatHappens(){
switch(outputType){
case PROCESSING_VISUALIZER: // find it here https://github.com/WorldFamousElectronics/PulseSensor_Amped_Processing_Visualizer
sendDataToSerial('B',BPM); // send heart rate with a 'B' prefix
sendDataToSerial('Q',IBI); // send time between beats with a 'Q' prefix
break;
default:
break;
}
}
// SET THE SERIAL OUTPUT TYPE TO YOUR NEEDS
// PROCESSING_VISUALIZER works with Pulse Sensor Processing Visualizer
// https://github.com/WorldFamousElectronics/PulseSensor_Amped_Processing_Visualizer
// SERIAL_PLOTTER outputs sensor data for viewing with the Arduino Serial Plotter
// run the Serial Plotter at 115200 baud: Tools/Serial Plotter or Command+L
void ledFadeToBeat(){
fadeRate -= 15; // set LED fade value
fadeRate = constrain(fadeRate,0,255); // keep LED fade value from going into negative numbers!
analogWrite(fadePin,fadeRate); // fade LED
}
void Pulse_Init(){
pinMode(blinkPin,OUTPUT); // pin that will blink to your heartbeat!
pinMode(fadePin,OUTPUT); // pin that will fade to your heartbeat!
// Serial.begin(115200); // we agree to talk fast!
interruptSetup(); // sets up to read Pulse Sensor signal every 2mS
// IF YOU ARE POWERING The Pulse Sensor AT VOLTAGE LESS THAN THE BOARD VOLTAGE,
// UN-COMMENT THE NEXT LINE AND APPLY THAT VOLTAGE TO THE A-REF PIN
// analogReference(EXTERNAL);
}
// Where the Magic Happens
void Pulse_Allot(){
serialOutput() ;
if (QS == true){ // A Heartbeat Was Found
……………………
史海拾趣
|
本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 麻烦推荐个运放,能测出1mV左右电压,失真比较小 用OP07可以不? … 查看全部问答> |
|
用keil编码1114的i2c,我在设置了编译优化选项之后出现了巨大的问题。索性,在取消掉所有的优化选项后i2c通信已经正常。 可惜结果仍然不正确,我就跟代码。这时候才发现一个无法理解的问题。我在funcA()里调用funcB()时传入一个静态myVar ...… 查看全部问答> |
|
如题,公司用的是ANTDATA公司出的DTGS-800模块,虽然也带有文档说明,但我觉得不够详细,所以特来发帖提问,希望大家踊跃发言,问题如下: 1、读取短信的时候,怎样才能不改变短信的状态呢?例如,执行了以下AT命令 AT+UGSM=1 返回OK(DTGS-800支 ...… 查看全部问答> |
|
求助:PWM输出8.2KHZ1:1的方波,为什么在4.3K有个的很强频率分量 设置如下: unsigned short pwmizhouqi=256; LPC_TMR16B1->TCR = 0; LPC_SYSCON->SYSAHBCLKCTRL |= (1PIO1_9 = 0X01; LPC_TMR16B1->MR0 = pwmizhouqi/2; LPC ...… 查看全部问答> |
|
原帖不能编辑了,就新开一帖在这里,望斑竹谅解 目前为止,基于launchpad和nrf24l01的单向收发已经实现,程序在下面放出,还有很多要改进的,仅供参考。欢迎高手拍砖。 学习经历: 1.收到板子后查了下资料,发现很丰富啊,于是 ...… 查看全部问答> |
|
我用的是MPLAB ICE和PICC编译PIC16F722,之前编译什么的都没问题,重装系统后再安装后就再也编译不成功了,提示No installed compiler driver supports device 16F722。 编译PIC16F505没有问题。每次点Project-Select Language Toolsuite后HI-TECH ...… 查看全部问答> |




