Robofun 機器人論壇
標題:
arduino 感測訊號的問題
[打印本頁]
作者:
zxcaul4
時間:
2013-10-21 18:05
標題:
arduino 感測訊號的問題
我們做的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);
}
感測器:
564070_586805258021280_517138350_n.jpg
(84.37 KB, 下載次數: 281)
下載附件
感測器
2013-10-21 17:59 上傳
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2