まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

M5StackをArduinoのように使う(光センサー)

IoTとして使用されるケースが多いためか、ド基本が書かれているところが意外とないのでまとめ代わりに。
M5StackをArduino+LCD代わりにして、光センサの値をM5Stackの画面に表示します。
M5Stackはすでに使えるようになっているものとします。
この後、ソニーのMESHをつなげるので、動作チェック代わりにやってみました。

結果はこんな感じ(容量が大きくてGIFがアップロードできなかったので、静止画で)。
f:id:prince9:20180925195718p:plain
f:id:prince9:20180925195738p:plain
写真は手持ちがなくて10kオームの抵抗を使ったせいで、値が1kオームのときとは異なってますが、お気になさらず。

■準備(Arduinoと同じ)
・1kオームの抵抗
・光センサ
・M5Stack
・ワイヤー

これを下記のように接続します。
図と抵抗の値が違っていますが、抵抗の色は無視してください。1kオームを使用します。
f:id:prince9:20180925195123p:plain

■コード
下記のようなコードを書いてアップロードします。

#include <M5Stack.h>

#define LDR_pin 36  // センサーをGPIO36につなぐ
int val=0;

void setup(){
    M5.begin();

Serial.begin(9600);
    pinMode(LDR_pin, INPUT);
}

void loop() {
  // 画面クリア
    M5.Lcd.clear();
    M5.Lcd.setCursor(0, 0);
    
val = analogRead(LDR_pin);
sdata = val/4; //値が大きすぎる場合は0-255になるよう、「/4」の「4」の値を変更する
 Serial.println(sdata); // センサーを読み、シリアルに出力
 
    M5.Lcd.setTextColor(WHITE);
      M5.Lcd.setTextSize(5);
    M5.Lcd.print(sdata);
    
    delay(500);
      M5.update();
}