Grove - 光センサー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Grove - 光センサーは、フォトレジスタ(光依存抵抗)を統合して光の強度を検出します。光の強度が増加すると、フォトレジスタの抵抗が減少します。基板上のデュアルOpAmpチップLM358は、光の強度に対応する電圧(つまり、抵抗値に基づく)を生成します。出力信号はアナログ値であり、光が明るいほど値が大きくなります。
このモジュールは、光制御スイッチを構築するために使用できます。例えば、昼間にライトを消し、夜間にライトを点灯するスイッチです。
光センサーの値は光の強度の概略的な傾向を反映するだけであり、正確なルーメン値を表すものではありません。
産業用センサーへのアップグレード可能
SenseCAP S2110コントローラーとS2100データロガーを使用することで、Groveを簡単にLoRaWAN®センサーに変えることができます。Seeedはプロトタイピングを支援するだけでなく、SenseCAPシリーズの堅牢な産業用センサーを使用してプロジェクトを拡張する可能性も提供します。
SenseCAP S210xシリーズの産業用センサーは、環境センサーとしての即時使用体験を提供します。光強度検出において高性能かつ堅牢性を備えたS2102ワイヤレス光強度センサーをご参照ください。このシリーズには、土壌水分、空気温度と湿度、光強度、CO2、EC、そして8-in-1気象ステーション用のセンサーが含まれています。次の成功する産業プロジェクトのために最新のSenseCAP S210xを試してみてください。
SenseCAP 産業用センサー |
S2102 Light |
バージョン
製品バージョン | 変更内容 | リリース日 |
---|---|---|
Grove - Light Sensor 1.0 | 初版 | 2013年4月28日 |
Grove - Light Sensor(P) | Groveコネクタを背面に移動 | 2014年5月15日 |
Grove - Light Sensor(P) V1.1 | フォトレジスタ5528をLS06-Sに置き換え(Grove - Light Sensor(P)との比較) | 2015年12月31日 |
Grove - Light Sensor 1.2 | フォトレジスタ5528をLS06-Sに置き換え(Grove - Light Sensor 1.0との比較) | 2016年1月20日 |
特徴
アナログ値出力
高い信頼性と感度
小型フットプリント
より広いスペクトルを認識可能
Groveモジュールの詳細については、Grove Systemをご参照ください。
プラットフォームサポート
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上記でサポートされていると記載されているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。
仕様
項目 | 値 |
---|---|
動作電圧 | 3~5V |
動作電流 | 0.5~3 mA |
応答時間 | 20-30ミリ秒 |
ピーク波長 | 540 nm |
重量 | 4 g |
はじめに
Arduinoで遊ぶ
ハードウェア
- ステップ1. 以下のものを準備してください:
Seeeduino V4 | Base Shield | Grove - Light Sensor | Grove - LED Bar |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ2. Grove-Light SensorをGrove-Base ShieldのポートA0に接続します。
- ステップ3. Grove-Led BarをGrove-Base ShieldのポートD2に接続します。
- ステップ4. Grove - Base ShieldをSeeeduinoに差し込みます。
- ステップ5. USBケーブルを使用してSeeeduinoをPCに接続します。

Grove Base Shieldがない場合は、以下のようにGrove-Light SensorをSeeeduinoに直接接続することもできます。
Seeeduino | Grove-Light Sensor |
---|---|
5V | 赤 |
GND | 黒 |
接続なし | 白 |
A0 | 黄色 |
Seeeduino | Grove-Led Bar |
---|---|
5V | 赤 |
GND | 黒 |
D3 | 白 |
D2 | 黄色 |
ソフトウェア
- ステップ1. Grove-LED Bar LibraryをGithubからダウンロードします。
- ステップ2. ライブラリのインストール方法を参照して、Seeeduino用のライブラリをインストールします。
- ステップ3. 以下のコードをSeeeduino IDEにコピーしてアップロードします。
#include <Grove_LED_Bar.h>
Grove_LED_Bar bar(3, 2, 0); // クロックピン、データピン、方向
void setup()
{
// 初期化は不要
bar.begin();
bar.setGreenToRed(true);
}
void loop()
{
int value = analogRead(A0);
value = map(value, 0, 800, 0, 10);
bar.setLevel(value);
delay(100);
}
- ステップ4. LEDバーが光に応じて変化します。
Codecraftで遊ぶ
ハードウェア
ステップ1. Grove - Light SensorをBase ShieldのポートA0に接続します。
ステップ2. Base ShieldをSeeeduino/Arduinoに差し込みます。
ステップ3. USBケーブルを使用してSeeeduino/ArduinoをPCに接続します。
ソフトウェア
ステップ1. Codecraftを開き、Arduinoサポートを追加し、メインプロシージャを作業エリアにドラッグします。
Codecraftを初めて使用する場合は、Arduinoを使用したCodecraftガイドも参照してください。
ステップ2. 以下の画像のようにブロックをドラッグするか、このページの最後でダウンロードできるcdcファイルを開きます。

Arduino/Seeeduinoにプログラムをアップロードします。
コードのアップロードが完了すると、シリアルモニターに明るさの値が表示されます。
Raspberry Piで遊ぶ (Raspberry Pi用Grove Base Hatを使用)
ハードウェア
- ステップ1. このプロジェクトで使用するもの:
Raspberry pi | Grove Base Hat for RasPi | Grove - Light Sensor |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ2. Grove Base HatをRaspberryに差し込みます。
- ステップ3. Light SensorをBase HatのポートA0に接続します。
- ステップ4. USBケーブルを使用してRaspberry PiをPCに接続します。

ステップ3では、Light Sensorを任意のアナログポートに接続できますが、対応するポート番号でコマンドを変更する必要があります。
ソフトウェア
Raspberry Pi OS >= Bullseyeを使用している場合は、Python3でのみこのコマンドラインを使用してください。
- ステップ1. ソフトウェア設定に従って開発環境を構成します。
- ステップ2. grove.pyライブラリをクローンしてソースファイルをダウンロードします。
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- ステップ3. 以下のコマンドを実行してコードを実行します。
cd grove.py/grove
python3 grove_light_sensor_v1_2.py 0
以下はgrove_light_sensor_v1_2.pyのコードです。
import math
import sys
import time
from grove.adc import ADC
class GroveLightSensor:
def __init__(self, channel):
self.channel = channel
self.adc = ADC()
@property
def light(self):
value = self.adc.read(self.channel)
return value
Grove = GroveLightSensor
def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)
sensor = GroveLightSensor(int(sys.argv[1]))
print('Detecting light...')
while True:
print('Light value: {0}'.format(sensor.light))
time.sleep(1)
if __name__ == '__main__':
main()
すべてが正常に動作すれば、周囲の光に対応する以下の結果が表示されるはずです。
pi@raspberrypi:~/grove.py/grove $ python3 grove_light_sensor_v1_2.py 0
Detecting light...
Light value: 600
Light value: 448
Light value: 267
Light value: 311
Light value: 102
Light value: 82
Light value: 63
Light value: 54
Light value: 49
Light value: 45
Light value: 545
^CTraceback (most recent call last):
File "grove_light_sensor_v1_2.py", line 67, in <module>
main()
File "grove_light_sensor_v1_2.py", line 64, in main
time.sleep(1)
KeyboardInterrupt
このプログラムは ++ctrl+c++ を押すだけで終了できます。
アナログポートの場合、シルクスクリーンのピン番号は A1, A0 のようになっていますが、コマンドでは 0 や 1 のパラメータを使用します。これはデジタルポートと同じです。そのため、モジュールを正しいポートに接続するようにしてください。そうしないとピンの競合が発生する可能性があります。
Raspberry Pi で遊ぶ (GrovePi_Plus を使用)
ハードウェア
- ステップ 1. 以下のものを準備してください:
Raspberry pi | GrovePi_Plus | Grove - Light Sensor | Grove - Red LED |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
- ステップ 2. GrovePi_Plus を Raspberry に接続します。
- ステップ 3. Grove-light センサーを GrovePi_Plus の A0 ポートに接続します。
- ステップ 4. Grove-Red LED を GrovePi_Plus の D4 ポートに接続します。
- ステップ 5. USB ケーブルを使用して Raspberry を PC に接続します。

ソフトウェア
Raspberry Pi with Raspberrypi OS >= Bullseye を使用している場合は、Python3 のみでこのコマンドラインを使用する必要があります。
- ステップ 1. Setting Software に従って開発環境を設定します。
- ステップ 2. Github リポジトリをクローンします。
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- ステップ 3. 以下のコマンドを実行します。
cd ~/GrovePi/Software/Python
python3 grove_light_sensor.py
以下は grove_light_sensor.py のコードです。
import time
import grovepi
# Grove Light Sensor をアナログポート A0 に接続
# SIG,NC,VCC,GND
light_sensor = 0
# LED をデジタルポート D4 に接続
# SIG,NC,VCC,GND
led = 4
# センサーが閾値抵抗を超えた場合に LED をオンにする
threshold = 10
grovepi.pinMode(light_sensor,"INPUT")
grovepi.pinMode(led,"OUTPUT")
while True:
try:
# センサー値を取得
sensor_value = grovepi.analogRead(light_sensor)
# センサーの抵抗値を K 単位で計算
resistance = (float)(1023 - sensor_value) * 10 / sensor_value
if resistance > threshold:
# HIGH を送信して LED をオンにする
grovepi.digitalWrite(led,1)
else:
# LOW を送信して LED をオフにする
grovepi.digitalWrite(led,0)
print("sensor_value = %d resistance = %.2f" %(sensor_value, resistance))
time.sleep(.5)
except IOError:
print ("Error")
- ステップ 4. 光センサーが覆われると LED が点灯します。
pi@raspberrypi:~/GrovePi/Software/Python $ python3 grove_light_sensor.py
sensor_value = 754 resistance = 3.57
sensor_value = 754 resistance = 3.57
sensor_value = 752 resistance = 3.60
sensor_value = 752 resistance = 3.60
sensor_value = 752 resistance = 3.60
sensor_value = 313 resistance = 22.68
sensor_value = 155 resistance = 56.00
sensor_value = 753 resistance = 3.59
Grove - Light Sensor V1.0 用 Eagle ファイル
Grove - Light Sensor(P) V1.0 用 Eagle ファイル
Grove - Light Sensor(P) V1.1 用 Eagle ファイル
リソース
- [Codecraft] CDC ファイル
- [Eagle&PDF] Grove - Light Sensor V1.0 用 Eagle ファイル
- [Eagle&PDF] Grove - Light Sensor(P) V1.0 用 Eagle ファイル
- [Eagle&PDF] Grove - Light Sensor(P) V1.1 用 Eagle ファイル
- [データシート] LS06-MΦ5 参照情報
- [データシート] LM358.PDF
- [さらに読む] シークレットボックス

ここでは、Grove - Light Sensor を使用したプロジェクト「シークレットボックス」を紹介します。まず、箱を用意します。紙箱、木箱、どんな箱でも構いません。箱の中に何かを入れます。この箱を「シークレットボックス」と名付けた理由は、誰にも開けられたくないからです。もし誰かが開けたら、アラームで通知されます。
ここでは、Arduino 互換のボードで豊富な機能を備えた LinkIt ONE をコントローラーとして使用します。また、以下のものが必要です:
- LinkIt ONE
- Grove - Light Sensor
- Grove - Base Shield
- SIM カード
Grove - Light Sensor を A0 または Base Shield に接続し、Arduino IDE を開いて、以下のコードをコピーして LinkIt ONE にアップロードします。その後、誰かが箱を開けると、光センサーがそれを検知し、SMS を送信します。
// LinkIt ONE 用 Grove スターターキットのデモ
// シークレットボックス
#include <LGSM.h>
char num[20] = "13425171053"; // ここに自分の電話番号を記入
char text[100] = "警告: あなたの箱が開けられました!!"; // 送信したいメッセージ
const int pinLight = A0; // 光センサーを A0 に接続
bool isLightInBox()
{
return (analogRead(pinLight)<50); // データが 50 未満の場合、光センサーが箱の中にあると判断
}
void setup()
{
Serial.begin(115200);
while(!isLightInBox()); // 箱の中に入るまで待機
delay(2000);
}
void loop()
{
if(!isLightInBox()) // 箱が開けられた場合
{
Serial.println("箱が開けられました");
while(!LSMS.ready())
{
delay(1000);
}
Serial.println("SIM が作動可能です!");
LSMS.beginSMS(num);
LSMS.print(text);
if(LSMS.endSMS())
{
Serial.println("SMS が送信されました");
}
else
{
Serial.println("SMS の送信に失敗しました");
}
while(!isLightInBox()); // 箱の中に戻るまで待機
delay(2000);
}
delay(10);
}
楽しんでください。
プロジェクト
Grove - 光センサーの紹介:
環境キューブ!Sigfoxを使用して地面の状態を把握する: 必要なセンサーをすべて備えたキューブで、農業、モニタリングなど、幅広い用途に適しています。
光センサー Grove モジュール:
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートを提供しております。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。