質問編集履歴
1
全体のソースコード
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,6 +20,100 @@
|
|
20
20
|
|
21
21
|
```
|
22
22
|
|
23
|
+
//セットアップ//
|
24
|
+
|
25
|
+
#include<M5StickC.h> //m5StickCを使うための基本セットアップ
|
26
|
+
|
27
|
+
#include<Wire.h> //I2Cを使うための基本プラグラム
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
uint16_t result;
|
32
|
+
|
33
|
+
float temperature;
|
34
|
+
|
35
|
+
const int tMax = 37 ;
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
//1度きりの処理//
|
40
|
+
|
41
|
+
void setup() {
|
42
|
+
|
43
|
+
M5.begin(); //M5StickCを起動
|
44
|
+
|
45
|
+
Wire.begin(0,26); //I2Cの通信を0,26で開始
|
46
|
+
|
47
|
+
Serial.begin(115200); //シリアル通信を速度15200bpsで開始
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
M5.Lcd.setRotation(3); //文字の表示方向を回転(90*3=27度回転)
|
52
|
+
|
53
|
+
M5.Lcd.setTextColor(WHITE); //M5StickCの画面に表示する文字の色を「白」に設定
|
54
|
+
|
55
|
+
M5.Lcd.setTextSize(3); //文字の大きさを「3」に設定
|
56
|
+
|
57
|
+
M5.Lcd.setCursor(0,60); //表示場所を「0,60」に設定
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
pinMode(GPIO_NUM_10,OUTPUT); //10ピン出力指令
|
62
|
+
|
63
|
+
digitalWrite(GPIO_NUM_10,HIGH); //10ピンにHIGHでLED消灯
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
}
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
//繰り返しの処理//
|
72
|
+
|
73
|
+
void loop() {
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
Wire.beginTransmission(0x5A); //I2C通信の初期信号と温度センサのI2Cのアドレスを送信
|
78
|
+
|
79
|
+
Wire.write(0x07); //温度データを取得するための指令を送信
|
80
|
+
|
81
|
+
Wire.endTransmission(false); //送信完了
|
82
|
+
|
83
|
+
Wire.requestFrom(0x5A,2); //アドレスが0x5Aのセンサから,2バイトのデータを送信
|
84
|
+
|
85
|
+
result=Wire.read(); //温度データは8ビットをさらに受信してから,追加,16ビット分のデータを格納
|
86
|
+
|
87
|
+
result |=Wire.read() << 8; //上記の変数に,上位8bit分をさらに追加して16ビット分のデータを格納
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
//温度[℃]への変換と画面表示//
|
92
|
+
|
93
|
+
temperature = result * 0.02 - 273.15; //温度への変換式より計算
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
M5.Lcd.fillRect(0,20,120,100,BLACK); //背景塗りつぶし
|
98
|
+
|
99
|
+
M5.Lcd.setCursor(0,20); //座標指定
|
100
|
+
|
101
|
+
M5.Lcd.println(temperature); //温度画面に表示
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
Serial.println(temperature); //パソコンよりデータを確認できるように設定
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
delay(500); //約0.5s間隔で温度を表示するための待機時間を設定
|
110
|
+
|
111
|
+
M5.update();
|
112
|
+
|
113
|
+
delay(10);
|
114
|
+
|
115
|
+
|
116
|
+
|
23
117
|
//変数の設定//
|
24
118
|
|
25
119
|
int flag = 0;
|
@@ -50,7 +144,7 @@
|
|
50
144
|
|
51
145
|
flag == 1;
|
52
146
|
|
53
|
-
st = millis();
|
147
|
+
float st = millis();
|
54
148
|
|
55
149
|
|
56
150
|
|
@@ -66,7 +160,7 @@
|
|
66
160
|
|
67
161
|
|
68
162
|
|
69
|
-
|
163
|
+
float t = millis();
|
70
164
|
|
71
165
|
|
72
166
|
|
@@ -120,6 +214,12 @@
|
|
120
214
|
|
121
215
|
}
|
122
216
|
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
123
223
|
```
|
124
224
|
|
125
225
|
|