プロジェクト13 ミニランプ

1. 説明

このプロジェクトでは、Arduino UNOとボタンを使ってランプを制御します。ボタンを押すと、ランプの状態が切り替わります(ONまたはOFF)。

2. 動作原理

ボタンが離されているとき、R29を通る電圧VCCがS端子にハイレベルを供給します。押されると、ピン1と3、ピン2と4が接続され、S1の電圧がGNDに到達してロー レベルになります。この時、R29はVCCとGND間のショートを防ぎます。

3. 配線図

4. テストコード

  1. 基本ブロックを2つ追加します。

  1. “Serial”から「baud rate」をドラッグし、9600に設定します。

  1. 次に“Serial”から「print」ブロックをドラッグし、空欄に「Key status:」と入力し、「no-warp」に設定します。

  1. IO15ピンを「input」に設定します。

  1. もう一つ“Serial print”ブロックを“Serial”からドラッグし、モードを「warp」に設定します。“Button”から「state value of button」を追加し、ピンをIO15に設定します。

完成コード:

5. テスト結果

配線を接続しコードをアップロードした後、シリアルモニターを開き、ボーレートを9600に設定します。
ボタンを押すとシリアルポートに「Key status: 0」と表示され、ボタンを離すと「Key status: 1」と表示されます。

6. 知識拡張

次に、ボタンの状態を通じてLEDを制御します。

フローチャート:

配線図:

コード:

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

  1. LEDピンを「output」、ボタンピンを「input」に設定します。

  1. “Control”から「if else」ブロックをドラッグします。“Button”から「button pin」ブロックを「if」の後に追加し、ピンをIO15に設定します。「if」の下に「LED output」ブロックを置き、出力をHIGHに設定し、「else」の下にもう一つ置いてLOWに設定します。LEDピンは両方ともIO4です。

完成コード:

8. コード説明

注意:ボタンモジュールを使用する際はピンモードを必ず「input」に設定してください。

  1. ボタンが押されているかどうかを判定します。押されていればこのブロックはtrueを表します。

  1. ボタンの値を読み取ります。ボタンが押されていないときは値が1、押されているときは0です。

  1. 六角形内の条件がtrueの場合、「if」ブロックが実行されます。そうでなければ「else」ブロックが実行されます。

  1. ボーレートを設定します。シリアルモニターの相手側とボーレートが一致していることを確認してください。そうでないと何も表示されません。一般的なボーレートは9600と115200で、ここでは9600に設定しています。

  1. シリアルモニターに文字を表示します。表示される文字は空欄に入力したものです。また、表示モードはwarp、no-warp、HEX(16進数)の3種類があります。