Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 3450|回復: 0
打印 上一主題 下一主題

arduino 感測訊號的問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-21 18:05:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
我們做的arduino心跳感測器  
感測不到輸出端的心跳感測器
量到的心跳都為0
不然有數字卻都接近2百多
還從3~1百多的 不然就是出現同樣的數字
且沒量測時還會有數字
且不會停
但上面感測器上的蜂鳴器卻有發出聲響
查不到原因
不知是程式有錯還是怎麼樣
請幫忙解答

程式:
接收端:
#include<stdlib.h>
byte sensorValueA;                //宣告 BYTE變數  sensorValueA

int a;                             //宣告整數a

void setup() {
Serial.begin(9600);            //設定 第一組通道Serial的鮑率為9600

}
void loop() {  
  if (Serial.available() > 0){        //如果感測到第一組通道有資料傳過來
sensorValueA = Serial.read();    //將讀到的資料放到sensorValueA
  a =int (sensorValueA);          //將sensorValueA 從BYTE轉換成int 放到a

  }
Serial.print("No.1 = ");
Serial.print(a);
delay(1000);
}




發送端:
int potPin =8;                               //宣告心跳感測器接arduino的腳位
int i =0;                                      //宣告心跳感測器觸發狀態的值
unsigned long CurrentHeartRate;           //宣告非負數長整數 CurrentHeartRate
unsigned long startTime;                     //宣告非負數長整數 startTime
void setup(){
  pinMode(potPin,INPUT);                  //設定在potPin腳位是輸入
  Serial.begin(9600);                           //設定為9600鮑率
}
void loop(){
i = digitalRead(potPin) ;      //讀取potPin腳位的輸入放在i
if(i == HIGH){                       //如果是讀到HIGH,執行下面的程式
  startTime = millis();          //把讀到的瞬間當作開始作時間的計時並且放在startTime
  while (digitalRead(potPin) == HIGH);    //如果再讀到HIGH,執行下行
  CurrentHeartRate = 60000 / (millis() - startTime) / 2;
                                                               //心率的計算公式放在CurrentHeartRate
  Serial.print(CurrentHeartRate,BYTE); //用BYTE的方式將CurrentHeartRate傳送出去
  }
  delay(100);
}

感測器:
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-21 20:05 , Processed in 0.287001 second(s), 12 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表