注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
6.1 光によって制御される流れるLED¶
光抵抗またはフォトセルは、光によって変化する可変抵抗です。光抵抗の抵抗は、入射光の強度が増加すると減少します。言い換えれば、これは光電導を示しています。光抵抗は、光感応検出回路や、光と暗闇に反応するスイッチ回路に適用できます。
光抵抗の抵抗は、入射光の強度によって変化します。光の強度が高くなると、抵抗は減少し、光の強度が低くなると、抵抗は増加します。この実験では、光の強度を示すために8つのLEDを使用します。光の強度が十分に高いと、すべてのLEDが点灯します。光がない場合、すべてのLEDは消えます。
必要な部品
このプロジェクトでは、以下の部品が必要です。
キット全体を購入するのは確かに便利です、リンクはこちら:
名前 |
このキットのアイテム |
リンク |
|---|---|---|
3 in 1 Starter Kit |
380+ |
以下のリンクから、それぞれの部品も購入することができます。
コンポーネントの紹介 |
購入リンク |
|---|---|
回路図
配線図
コード
注釈
3in1-kit\basic_project\6.1.light_control_ledのパスの下で6.1.light_control_led.inoファイルを開きます。または、このコードを Arduino IDE にコピーします。
または、 Arduino Web Editor を通じてコードをアップロードします。
光抵抗に光を当てると、いくつかのLEDが点灯します。もっと光を当てると、さらに多くのLEDが点灯します。暗い環境に置くと、すべてのLEDが消えます。
どのように動作するのか?
void loop()
{
sensorValue = analogRead(photocellPin); // A0の値を読む
ledLevel = map(sensorValue, 300, 1023, 0, NbrLEDs); // LEDの数にマップする
for (int led = 0; led < NbrLEDs; led++)
{
if (led < ledLevel ) // ledがledLevelより小さい場合、以下のコードを実行します
{
digitalWrite(ledPins[led], HIGH); // レベルより低いピンをオンにする
}
else
{
digitalWrite(ledPins[led],LOW); // レベルより高いピンをオフにする
}
}
}
map() 関数を使用することで、光抵抗の値を8つのLEDにマップすることができます。例えば、sensorValueが560の場合、ledLevelは4となり、この時点でledPins[0]からledPins[4]までが点灯し、ledPins[5]からledPins[7]までが消灯することになります。