請注意手指心跳Sensor的腳位,詳細可參考該高手的網站。
麵包板腳位情形 |
Code
const int ledPin = 13; const int sensorPin = A0; const double alpha = 0.75; // smoothing參數 可自行調整0~1之間的值 const double beta = 0.5; // find peak參數 可自行調整0~1之間的值 const int period = 20; // sample脈搏的delay period void setup() { //pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(115200); // Set the baud rate of the Serial Monitor //BTSerial.begin(9600); // HC-06 baud rate 預設為9600 } void loop() { senseHeartRate(); // 測量心跳 } // 測量心跳並用藍芽傳給Android // 讀入sensor的值 // 對值做smoothing // 找出值得peak,即為有heart beat產生 // 計算每分鐘心跳頻率,用藍芽傳給手機 void senseHeartRate() { int count = 0; // 記錄心跳次數 double oldValue = 0; // 記錄上一次sense到的值 double oldChange = 0; // 記錄上一次值的改變 unsigned long startTime = millis(); // 記錄開始測量時間 while(millis() - startTime < 10000) { // sense 10 seconds int rawValue = analogRead(sensorPin); // 讀取心跳sensor的值 double value = alpha*oldValue + (1-alpha)*rawValue; //smoothing value //find peak double change = value-oldValue; // 計算跟上一次值的改變量 if (change>beta && oldChange<-beta) { // heart beat count = count + 1; } oldValue = value; oldChange = change; delay(period); } Serial.print(count); Serial.print(","); //BTSerial.println(count*6); //use bluetooth to send result to android }參考網站 http://here-apps.blogspot.tw/2014/07/lab3-arduino.html
沒有留言:
張貼留言