初始化提交
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
Code to detect pulses from the PulseSensor,
|
||||
using an interrupt service routine.
|
||||
|
||||
Here is a link to the tutorial\
|
||||
https://pulsesensor.com/pages/getting-advanced
|
||||
|
||||
Copyright World Famous Electronics LLC - see LICENSE
|
||||
Contributors:
|
||||
Joel Murphy, https://pulsesensor.com
|
||||
Yury Gitman, https://pulsesensor.com
|
||||
Bradford Needham, @bneedhamia, https://bluepapertech.com
|
||||
|
||||
Licensed under the MIT License, a copy of which
|
||||
should have been included with this software.
|
||||
|
||||
This software is not intended for medical use.
|
||||
*/
|
||||
|
||||
/*
|
||||
Every Sketch that uses the PulseSensor Playground must
|
||||
define USE_ARDUINO_INTERRUPTS before including PulseSensorPlayground.h.
|
||||
Here, #define USE_ARDUINO_INTERRUPTS true tells the library to use
|
||||
interrupts to automatically read and process PulseSensor data.
|
||||
|
||||
See ProcessEverySample.ino for an example of not using interrupts.
|
||||
*/
|
||||
#define USE_ARDUINO_INTERRUPTS true
|
||||
#include <PulseSensorPlayground.h>
|
||||
|
||||
/*
|
||||
The format of our output.
|
||||
|
||||
Set this to PROCESSING_VISUALIZER if you're going to run
|
||||
the Processing Visualizer Sketch.
|
||||
See https://github.com/WorldFamousElectronics/PulseSensor_Amped_Processing_Visualizer
|
||||
|
||||
Set this to SERIAL_PLOTTER if you're going to run
|
||||
the Arduino IDE's Serial Plotter.
|
||||
*/
|
||||
const int OUTPUT_TYPE = SERIAL_PLOTTER;
|
||||
|
||||
/*
|
||||
Pinout:
|
||||
PULSE_INPUT = Analog Input. Connected to the pulse sensor
|
||||
purple (signal) wire.
|
||||
PULSE_BLINK = digital Output. Connected to an LED (and 220 ohm resistor)
|
||||
that will flash on each detected pulse.
|
||||
PULSE_FADE = digital Output. PWM pin onnected to an LED (and resistor)
|
||||
that will smoothly fade with each pulse.
|
||||
NOTE: PULSE_FADE must be a pin that supports PWM. Do not use
|
||||
pin 9 or 10, because those pins' PWM interferes with the sample timer.
|
||||
*/
|
||||
const int PULSE_INPUT = A0;
|
||||
const int PULSE_BLINK = 13; // Pin 13 is the on-board LED
|
||||
const int PULSE_FADE = 5;
|
||||
const int THRESHOLD = 550; // Adjust this number to avoid noise when idle
|
||||
|
||||
/*
|
||||
All the PulseSensor Playground functions.
|
||||
*/
|
||||
PulseSensorPlayground pulseSensor;
|
||||
|
||||
void setup() {
|
||||
/*
|
||||
Use 115200 baud because that's what the Processing Sketch expects to read,
|
||||
and because that speed provides about 11 bytes per millisecond.
|
||||
|
||||
If we used a slower baud rate, we'd likely write bytes faster than
|
||||
they can be transmitted, which would mess up the timing
|
||||
of readSensor() calls, which would make the pulse measurement
|
||||
not work properly.
|
||||
*/
|
||||
Serial.begin(115200);
|
||||
|
||||
// Configure the PulseSensor manager.
|
||||
|
||||
pulseSensor.analogInput(PULSE_INPUT);
|
||||
pulseSensor.blinkOnPulse(PULSE_BLINK);
|
||||
pulseSensor.fadeOnPulse(PULSE_FADE);
|
||||
|
||||
pulseSensor.setSerial(Serial);
|
||||
pulseSensor.setOutputType(OUTPUT_TYPE);
|
||||
pulseSensor.setThreshold(THRESHOLD);
|
||||
|
||||
// Now that everything is ready, start reading the PulseSensor signal.
|
||||
if (!pulseSensor.begin()) {
|
||||
/*
|
||||
PulseSensor initialization failed,
|
||||
likely because our particular Arduino platform interrupts
|
||||
aren't supported yet.
|
||||
|
||||
If your Sketch hangs here, try PulseSensor_BPM_Alternative.ino,
|
||||
which doesn't use interrupts.
|
||||
*/
|
||||
for(;;) {
|
||||
// Flash the led to show things didn't work.
|
||||
digitalWrite(PULSE_BLINK, LOW);
|
||||
delay(50);
|
||||
digitalWrite(PULSE_BLINK, HIGH);
|
||||
delay(50);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void loop() {
|
||||
/*
|
||||
Wait a bit.
|
||||
We don't output every sample, because our baud rate
|
||||
won't support that much I/O.
|
||||
*/
|
||||
delay(20);
|
||||
|
||||
// write the latest sample to Serial.
|
||||
pulseSensor.outputSample();
|
||||
|
||||
/*
|
||||
If a beat has happened since we last checked,
|
||||
write the per-beat information to Serial.
|
||||
*/
|
||||
if (pulseSensor.sawStartOfBeat()) {
|
||||
pulseSensor.outputBeat();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user