3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

groveの光センサをESP32で使用する

Posted at

目的

懸賞であたったのでgrove のセンサをいろいろ持っていて使いたいが、
ESP32のシールドなんか持ってないので(そもそもあるのか?)、
直接ESP32に配線してgroveユニットを使用することにした

光センサの接続 (Light-Sensor-v1.2)

今回使用する光センサがアナログ出力なので、
アナログ入力ができるらしいADCと書かれている端子に接続する(今回はADC0)
ちなみに、ESP32のADコンバーターは12bitらしい
赤:電源      3.3 V
黒:グラウンド   GND
黄色:信号出力   ADC0
https://www.seeedstudio.com/Grove-Light-Sensor-v1.2-p-2727.html

ピン配置は以下の画像やサイトを参考にした
<参考:スイッチサイエンス>
https://trac.switch-science.com/wiki/esp32_tips

プログラム

grove の starter kit 用のコードを参考に温度取得をシリアルモニタで監視できるように書き換え
シリアルのセットアップを書き忘れて動かなくてびっくりした
https://github.com/Seeed-Studio/Sketchbook_Starter_Kit_for_Arduino/blob/master/Grove_Light_Sensor/Grove_Light_Sensor.ino

uint64_t chipid;  

void setup() {
    Serial.begin(115200);
}

const int pinLight = A0;

void loop()
{
    int sensorValue = analogRead(pinLight);    //the light sensor is attached to analog 0
    Serial.printf("Light Strength = %d\n",sensorValue);

    delay(2000);
}

シリアルモニタで明るさを読み取ることができるようになった
昼間の窓際で2350程度、スマホのライトを直接当てても2360程度にしか上がらなかった

電源電圧を 3.3V から 5V にすると、
暗いときは0、通常が2000程度、明るい(スマホのライト照射)時は4095となった
ADコンバーターが12ビットと考えると妥当な値である
電源電圧が3.3ボルトのときは、センサ側の出力が足りてなく、明るさ上限値が低かったと思われる

#まとめ

アナログ入力の読み取りができた
I2CとかSPIの接続も比較的簡単にできそうで Arduino の便利さに感激

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?