質問編集履歴

1

全体のソースコード

2021/06/24 14:33

投稿

Haru_0108
Haru_0108

スコア2

title CHANGED
File without changes
body CHANGED
@@ -9,6 +9,53 @@
9
9
  ### 該当のソースコード
10
10
 
11
11
  ```
12
+ //セットアップ//
13
+ #include<M5StickC.h> //m5StickCを使うための基本セットアップ
14
+ #include<Wire.h>        //I2Cを使うための基本プラグラム
15
+
16
+ uint16_t result;
17
+ float temperature;
18
+ const int tMax = 37 ;
19
+
20
+ //1度きりの処理//
21
+ void setup() {
22
+ M5.begin(); //M5StickCを起動
23
+ Wire.begin(0,26); //I2Cの通信を0,26で開始
24
+ Serial.begin(115200); //シリアル通信を速度15200bpsで開始
25
+
26
+ M5.Lcd.setRotation(3); //文字の表示方向を回転(90*3=27度回転)
27
+ M5.Lcd.setTextColor(WHITE); //M5StickCの画面に表示する文字の色を「白」に設定
28
+ M5.Lcd.setTextSize(3); //文字の大きさを「3」に設定
29
+ M5.Lcd.setCursor(0,60); //表示場所を「0,60」に設定
30
+
31
+ pinMode(GPIO_NUM_10,OUTPUT); //10ピン出力指令
32
+ digitalWrite(GPIO_NUM_10,HIGH); //10ピンにHIGHでLED消灯
33
+
34
+ }
35
+
36
+ //繰り返しの処理//
37
+ void loop() {
38
+
39
+ Wire.beginTransmission(0x5A); //I2C通信の初期信号と温度センサのI2Cのアドレスを送信
40
+ Wire.write(0x07); //温度データを取得するための指令を送信
41
+ Wire.endTransmission(false); //送信完了
42
+ Wire.requestFrom(0x5A,2); //アドレスが0x5Aのセンサから,2バイトのデータを送信
43
+ result=Wire.read(); //温度データは8ビットをさらに受信してから,追加,16ビット分のデータを格納
44
+ result |=Wire.read() << 8; //上記の変数に,上位8bit分をさらに追加して16ビット分のデータを格納
45
+
46
+ //温度[℃]への変換と画面表示//
47
+ temperature = result * 0.02 - 273.15; //温度への変換式より計算
48
+
49
+ M5.Lcd.fillRect(0,20,120,100,BLACK); //背景塗りつぶし
50
+ M5.Lcd.setCursor(0,20); //座標指定
51
+ M5.Lcd.println(temperature); //温度画面に表示
52
+
53
+ Serial.println(temperature); //パソコンよりデータを確認できるように設定
54
+
55
+ delay(500); //約0.5s間隔で温度を表示するための待機時間を設定
56
+ M5.update();
57
+ delay(10);
58
+
12
59
  //変数の設定//
13
60
  int flag = 0;
14
61
  float st,
@@ -24,7 +71,7 @@
24
71
 
25
72
  if(flag == 0){
26
73
  flag == 1;
27
- st = millis();
74
+ float st = millis();
28
75
 
29
76
  M5.Lcd.setTextColor(WHITE); //文字の色を白に戻す
30
77
  digitalWrite(GPIO_NUM_10,HIGH); //LED消灯
@@ -32,7 +79,7 @@
32
79
 
33
80
 
34
81
 
35
- t = millis();
82
+ float t = millis();
36
83
 
37
84
  if(t-st > 10000){
38
85
  M5.Lcd.setTextColor(RED); //20s過ぎたら赤字で警告
@@ -59,6 +106,9 @@
59
106
 
60
107
 
61
108
  }
109
+
110
+
111
+
62
112
  ```
63
113
 
64
114
  ### 試したこと