プロジェクト20 ライトピラー

1. 説明

フォトレジスタの抵抗値(1KΩ未満)は光の強さによって変化し、それによってドットマトリクスの明るさを制御できます。制御する際には、この抵抗をボードのアナログピンに接続して抵抗の変化を監視します。こうすることで、光が自動的にディスプレイの明るさを調整します。

また、フォトレジスタは日常生活でも広く応用されています。例えば、カーテンが外の光の強さに応じて自動的に開閉するなどです。

2. 動作原理

完全に暗い状態では、抵抗は0.2MΩとなり、信号端子(ポイント2)の電圧は0Vに近づきます。光が強くなるほど、抵抗と電圧は小さくなります。

3. 配線図

4. テストコード

フォトレジスタのアナログ値を読み取る方法:

  1. 基本ブロックを2つドラッグし、その間にボーレート設定ブロックを置き、9600に設定します。

  2. 「forever」ループ内に「シリアルプリント」ブロックを追加し、モードを「warp」に設定します。

  3. 「Light」から「値を読む」ブロックをドラッグして「シリアルプリント」ブロックに接続し、ピンをIO33に設定します。

5. テスト結果

配線を接続しコードをアップロードした後、シリアルモニターを開きボーレートを9600に設定すると、アナログ値が0~4095の範囲で表示されます。

6. 拡張コード

この拡張プロジェクトでは、フォトレジスタを使って周囲の光の強さを検知します。中央の2列を使って光の強さを表現し、明るいほど点灯するLEDが多くなります。これにより「ライトピラー」が形成されます。

配線図:

  1. 基本ブロックを2つドラッグします。

  2. 「Matrix」でドットマトリクスディスプレイを初期化し、ピンCSをIO15に設定します。「明るさ設定」ブロックを追加し、値を3に設定します。

  1. 「変数」ブロックをドラッグし、範囲をローカル、型をint、名前をlightに設定します。

  1. 変数にマップ関数を割り当てます。「Light」から「IO33の値を読む」ブロックをマップ関数の値に追加し、範囲を(0,4095)から(0,7)に設定します。

  1. 「Matrix」内の以下のブロックを見つけます。まずディスプレイをクリアし、次にドット(x0:3 y0:0, x1:3 y1:変数light)と(x0:4 y0:0, x1:4 y1:変数light)に線を描画します。最後にマトリクスの表示を更新します。

完成コード:

7. コード説明

ピンを設定してフォトレジスタのアナログ値を読み取ります。