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

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

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

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

Arduino

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

Q&A

解決済

1回答

1768閲覧

ArduinoでのwriteReg 使い方とエラーの原因

iisa

総合スコア18

C++

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

Arduino

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

0グッド

0クリップ

投稿2018/02/18 05:26

ArduinoでSDカードリーダー?と加速度センサー、ジャイロセンサーを使った工作をしています。

サンプルプログラムでWriteRegというものがあって、これが本にもWebにもなかったので使い方を教えて頂けないでしょうか。このサンプルプログラム中では引数3個に対し、他の方のプログラムでは引数は2つでした。
また、'writeReg' was not declared in this scope
というエラーが出ました。よろしくおねがい致します。

arudino

1#include <SD.h> 2#include <Wire.h> 3#include <SPI.h> 4 5/* 6 connecting 7 8 MM-TXS04(LSM330DLC) Arduino(Duemilanove/UNO) 9 1:VDD---------------5V 10 2:GND---------------GND 11 3:SDA---------------D11(MOSI) 12 4:CLK---------------D13(SCK) 13 5:SDO(SA0)----------D12(MISO) 14 6:INT1_A 15 7:INT2_A 16 8:INT1_G 17 9:INT2_G 18 10:DEN_G------------5V 19 11:CS_A-------------D4 20 12:CS_G-------------D5 21*/ 22 23const int chipSelect = 4; 24 25int cs_Accel = 2; 26int cs_Gyro = 3; 27 28// LSM330D Register Map 29// Acceleromete 30#define LSM330D_CTRL_REG1_A 0x20 31#define LSM330D_CTRL_REG2_A 0x21 32#define LSM330D_CTRL_REG3_A 0x22 33#define LSM330D_CTRL_REG4_A 0x23 34#define LSM330D_CTRL_REG5_A 0x24 35 36#define LSM330D_OUT_X_L_A 0x28 37#define LSM330D_OUT_X_H_A 0x29 38#define LSM330D_OUT_Y_L_A 0x2A 39#define LSM330D_OUT_Y_H_A 0x2B 40#define LSM330D_OUT_Z_L_A 0x2C 41#define LSM330D_OUT_Z_H_A 0x2D 42 43// gyro 44#define LSM330D_WHO_AM_I_G 0x0F 45#define LSM330D_WHOAMI_G_VAL 0xD4 46 47#define LSM330D_CTRL_REG1_G 0x20 48#define LSM330D_CTRL_REG2_G 0x21 49#define LSM330D_CTRL_REG3_G 0x22 50#define LSM330D_CTRL_REG4_G 0x23 51#define LSM330D_CTRL_REG5_G 0x24 52 53#define LSM330D_OUT_X_L_G 0x28 54#define LSM330D_OUT_X_H_G 0x29 55#define LSM330D_OUT_Y_L_G 0x2A 56#define LSM330D_OUT_Y_H_G 0x2B 57#define LSM330D_OUT_Z_L_G 0x2C 58#define LSM330D_OUT_Z_H_G 0x2D 59 60int a; 61 62unsigned long time; 63 64 65void setup() { 66 // put your setup code here, to run once: Serial.begin(9600); 67 digitalWrite(cs_Accel, HIGH); 68 digitalWrite(cs_Gyro, HIGH); 69 pinMode(cs_Accel, OUTPUT); 70 pinMode(cs_Gyro, OUTPUT); 71 delay(100); 72 SPI.begin(); 73 a = 0; 74 75 // Accelerometer 76 //writeRegだけだと宣言されてないとか出た 77 writeReg(cs_Accel, LSM330D_CTRL_REG1_A, 0b10010111); 78 writeReg(cs_Accel, LSM330D_CTRL_REG2_A, 0b00000000); 79 writeReg(cs_Accel, LSM330D_CTRL_REG3_A, 0b00001000); 80 writeReg(cs_Accel, LSM330D_CTRL_REG4_A, 0b00001000); // +/-2G (1mg/digt) 81 writeReg(cs_Accel, LSM330D_CTRL_REG5_A, 0b01000000); 82 83 // Gyro 84 writeReg(cs_Gyro, LSM330D_CTRL_REG1_G, 0b00001111); 85 writeReg(cs_Gyro, LSM330D_CTRL_REG2_G, 0b00000000); 86 writeReg(cs_Gyro, LSM330D_CTRL_REG3_G, 0b00000000); 87 writeReg(cs_Gyro, LSM330D_CTRL_REG4_G, 0b00000000); // 250dps (8.75mdps/digit) 88 writeReg(cs_Gyro, LSM330D_CTRL_REG5_G, 0b00000000); 89 90 91//以下のプログラムは省略いたします 92 93} 94 95void loop() { 96 // put your main code here, to run repeatedly: 97 98}

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

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

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

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

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

guest

回答1

0

ベストアンサー

温度気圧計を作ってみよう
上記のサイトのサンプルコードを見たところ自分で追加した関数のようですが...
多分、WriteReg = レジスタへの書き込み。上記サイトの例では引数はアドレスとデータのようですね。

投稿2018/02/18 06:44

unz.hori

総合スコア1057

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

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

iisa

2018/02/18 13:18

ありがとうございます。 てっきりデフォルトの関数と勘違いしておりました。 お手間をおかけしてしまい申し訳ありません。 またの機会にもご教授いただけると幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問