質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

1回答

671閲覧

has no member namedのエラーが解消できない

yuu_ka

総合スコア1

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

1グッド

0クリップ

投稿2024/06/05 08:01

編集2024/06/05 09:39

実現したいこと

心拍センサ(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等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

初期化がないかららしいのですが、初期化のコードを加えるとまたそこでエラーになってしまいます、、

補足

melian👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2024/06/05 08:15 編集

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
SaitoAtsushi

2024/06/05 08:23

質問を読む限り使われている言語は明らかに C++ なので C タグを付けないでください。 それと読んだ資料は具体的な URL や書籍名で示してください。 C++ の作法ではオブジェクトの初期化は通常はコンストラクタで行うべきものであり、質問の事例でもそうなっているように見えます。 前提となる知識が不足しているために質問者が誤読した可能性が高いと考えられます。 どのような誤解に基づくものか推察したいので何を読んだのか示して欲しいです。
yuu_ka

2024/06/05 08:35 編集

melian様 コメントありがとうございます(TT) インスタンスの作成のみにコードを修正したところ、その点のエラーは解消されたのですが新しく(初期化がない為?)エラーが出てきて、、質問を編集するのでご確認頂けるとありがたいです、、
melian

2024/06/05 08:40

> '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();
yuu_ka

2024/06/05 09:18

SaitoAtsushi様 ご指摘ありがとうございます。タグ外しました。
yuu_ka

2024/06/05 09:20

can110様 コメントありがとうございます。教えていただいたURL確認しました。今後も質問者として利用する際、気を付けようと思いました、ありがとうございます。 本文にマークダウン方式を実践してみました。間違っていたらすみません、、
yuu_ka

2024/06/05 09:25

melian様 コメントありがとうございます。試したところ問題が解決しました!とても見づらい質問だったのにありがとうございます。 ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
SaitoAtsushi

2024/06/05 10:15

くりかえしますが読んだ資料の名前は書いてください。 資料に誤りがあったり、あるいは読み違えた人がここにたどり着く可能性が高まります。 回答者は質問に答えているというより質問者と協力して Q&A を充実させています。 あとから読む人にとって有用なものとなるように意識してください。
guest

回答1

0

ベストアンサー

※ コメントから転記

DFRobot_Heartrate.h が以下のリポジトリのファイルだとすれば、DFRobot_Heartrate クラスには begin() メソッドは存在しません。

DFRobot_Heartrate/DFRobot_Heartrate.h at master · DFRobot/DFRobot_Heartrate

実装例を見る限り、setup() では Heart Rate Click の初期化を行っていません。インスタンスの作成(コンストラクタの実行)だけで充分の様です。

また、hrClick.getHeartrate()hrClick.getRate() でしょう。

c

1// uint8_t heartRate = hrClick.getHeartrate(); 2uint8_t heartRate = hrClick.getRate();

投稿2024/06/05 09:31

melian

総合スコア21118

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuu_ka

2024/06/05 09:38

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問