実現したいこと
心拍センサ(Heart Rate Click)と100均のUSBミニスピーカーを用いて音を鳴らしたいです。
発生している問題・分からないこと
心拍センサHeart Rate Clickの初期化がうまくいかない。
エラーメッセージ
error
1'class DFRobot_Heartrate' has no member named 'getHeartrate'; did you mean 'getRate'?
該当のソースコード
c++
1#include "SPI.h" 2#include "Wire.h" 3#include "DFRobot_Heartrate.h" 4 5DFRobot_Heartrate hrClick(5); // インスタンスを作成 6 7void setup() { 8 Serial.begin(9600); //シリアル通信を開始し、ボーレートを9600bpsに設定 9 pinMode(5, INPUT); 10 pinMode(6, INPUT); 11 pinMode(8, OUTPUT); 12} 13 14void loop() { 15 uint8_t heartRate = hrClick.getHeartrate(); // 心拍センサから心拍数を取得し、変数heartRateに格納 16 if(heartRate < 80) { 17 tone(8,200); //200は鳴らしたい音の高さ 18 } else { 19 noTone(8); // 80以上の心拍数の場合は音を止める 20 } 21 Serial.print("Heart Rate: "); // シリアルモニタに"Heart Rate: "というテキストを表示 22 Serial.println(heartRate); // 心拍数をシリアルモニタに表示 23 delay(1000); // 1秒間の遅延。心拍数を1秒ごとに測定するため。 24}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
初期化がないかららしいのですが、初期化のコードを加えるとまたそこでエラーになってしまいます、、
補足
DFRobot_Heartrate.h がこのリポジトリのファイルだとすれば、DFRobot_Heartrate クラスには begin() メソッドは存在しません。
DFRobot_Heartrate/DFRobot_Heartrate.h at master · DFRobot/DFRobot_Heartrate
https://github.com/DFRobot/DFRobot_Heartrate/blob/master/DFRobot_Heartrate.h
実装例を見る限り、setup() では Heart Rate Clickの初期化を行っていません。インスタンスの作成(コンストラクタの実行)だけで充分の様です。
DFRobot_Heartrate/examples/heartrateDigitalMode/heartrateDigitalMode.ino at master · DFRobot/DFRobot_Heartrate
https://github.com/DFRobot/DFRobot_Heartrate/blob/master/examples/heartrateDigitalMode/heartrateDigitalMode.ino
質問を読む限り使われている言語は明らかに C++ なので C タグを付けないでください。
それと読んだ資料は具体的な URL や書籍名で示してください。
C++ の作法ではオブジェクトの初期化は通常はコンストラクタで行うべきものであり、質問の事例でもそうなっているように見えます。
前提となる知識が不足しているために質問者が誤読した可能性が高いと考えられます。
どのような誤解に基づくものか推察したいので何を読んだのか示して欲しいです。
https://teratail.com/help/question-tips#questionTips11
https://teratail.com/help/question-tips#questionTips12
https://teratail.com/help/question-tips#questionTips2
https://teratail.com/help/question-tips#questionTips36
https://teratail.com/help/question-tips
は読みましたか?
読んだ結果を本文に反映ください。解決のヒントを探れるかもしれません。
melian様
コメントありがとうございます(TT)
インスタンスの作成のみにコードを修正したところ、その点のエラーは解消されたのですが新しく(初期化がない為?)エラーが出てきて、、質問を編集するのでご確認頂けるとありがたいです、、
> 'class DFRobot_Heartrate' has no member named 'getHeartrate'; did you mean 'getRate'?
エラーメッセージにある通り、hrClick.getHeartrate() は hrClick.getRate() でしょう。
uint8_t heartRate = hrClick.getHeartrate();
=>
uint8_t heartRate = hrClick.getRate();
SaitoAtsushi様
ご指摘ありがとうございます。タグ外しました。
can110様
コメントありがとうございます。教えていただいたURL確認しました。今後も質問者として利用する際、気を付けようと思いました、ありがとうございます。
本文にマークダウン方式を実践してみました。間違っていたらすみません、、
melian様
コメントありがとうございます。試したところ問題が解決しました!とても見づらい質問だったのにありがとうございます。
ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
くりかえしますが読んだ資料の名前は書いてください。
資料に誤りがあったり、あるいは読み違えた人がここにたどり着く可能性が高まります。
回答者は質問に答えているというより質問者と協力して Q&A を充実させています。
あとから読む人にとって有用なものとなるように意識してください。

回答1件
あなたの回答
tips
プレビュー