注釈

こんにちは。 Facebook の SunFounder Raspberry Pi & Arduino & ESP32 愛好者 コミュニティ へ ようこそ! 仲間 の 愛好者 と 一緒 に Raspberry Pi、 Arduino、 ESP32 を さらに 深く 探求 しましょう。

なぜ 参加 する の です か?

  • 専門的 な サポート : コミュニティ と チーム の 支援 に より、 購入 後 の 問題 や 技術的 な 課題 を 解決 できます。

  • 学習 と 共有 : ヒント や チュートリアル を 共有 し、 スキル を 向上 させましょう。

  • 限定 プレビュー : 新製品 の 発表 や 先行 情報 に いち早く アクセス できます。

  • 特別 割引 : 最新 製品 を 対象 に した 限定 割引 を 利用 できます。

  • イベント プロモーション と プレゼント : プレゼント 企画 や 祝日 キャンペーン に 参加 できます。

👉 私たち と 一緒 に 探求 と 創作 を 始める 準備 は できました か? [here] を クリック して、 今すぐ 参加 しましょう!

ADC

はじめに

フォトレジスタ( 光 依存 抵抗、 LDR ) は、 光 の 強さ を 検出 する 部品 です。 光 の 強さ が 増える と 抵抗 は 低下 する ため、 自動 ナイト ランプ や 周囲 光 コントローラ など の デバイス で 役立ちます。

この プロジェクト では、 Fusion HAT+ と フォトレジスタ を 使用 して、 周囲 の 明るさ に 応じて LED の 明るさ を 調整 する 方法 を 示します。 動作 原理 は 可変 抵抗( ポテンショメータ ) と 似ています が、 手動 調整 の 代わり に 入力 が 光 に なる 点 が 異なります。


回路 図

以下 は、 部品 の 接続 方法 を 示す 回路 図 です:

../_images/2.2.1_sch.png

配線 図

以下 の 図 の とおり に 回路 を 組み立てて ください:

../_images/2.2.1_bb.png

次 の 点 を 確認 してください:

  • フォトレジスタ は Fusion HAT+ に 接続 され、 アナログ 信号 を デジタル 値 に 変換 できる よう に なっている こと。

  • LED は PWM 制御 の ため に GPIO ピン に 接続 されている こと。

  • すべて の 配線 が しっかり 接続 され、 電源 と GND の 接続 が 正しく 設定 されている こと。


コード

以下 は、 この プロジェクト で 使用 する Python コード です:

#!/usr/bin/env python3

from fusion_hat.adc import ADC
from fusion_hat.pwm import PWM
import time

# Initialize a PWM LED
led = PWM('P0')

# Set up the potentiometer
photoresistor = ADC('A0')

def MAP(x, in_min, in_max, out_min, out_max):

   return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min

try:
   while True:
      # Get the current reading from the ADC port
      result = photoresistor.read()
      print('result = %d ' %result)

      # Map the ADC value to a range suitable for setting LED brightness
      value = MAP(result, 0, 4095, 0, 100)

      # Set the LED brightness
      led.pulse_width_percent(value)

      # Wait for 1 seconds before reading again
      time.sleep(0.2)

# Graceful exit when 'Ctrl+C' is pressed
except KeyboardInterrupt:
   led.pulse_width_percent(0)  # Turn off the LED

この Python スクリプト は、 フォトレジスタ の 値 を 継続 的 に 読み取り、 LED の 明るさ を 設定 する ため の 適切 な 範囲 に マッピング し、 それ に 応じて LED の 明るさ を 調整 します。 また、 ユーザー に より 割り込み された 場合 に LED を 消灯 する、 安全 な 終了 処理 も 含まれています。 実行 すると:

  1. Fusion HAT+ は 入力 チャネル から フォトレジスタ の 値( 0〜4095 ) を 継続 的 に 読み取ります。

  2. 光 の 強さ( または 他 の 可変 入力 ) を 表す アナログ 値 が、 コンソール に result =  <value> として 表示 されます。

  3. スクリプト は アナログ 値 を PWM 信号 に マッピング し、 LED の 明るさ を 調整 します。

  4. LED の 明るさ は ADC 入力 に 基づいて 動的 に 変化 し、 0.2 秒 ごと に 更新 されます。

  5. プログラム は Ctrl+C で 中断 される まで 無期限 に 実行 され、 中断 された 時点 で LED は 消灯 します。