プロジェクト13 ミニランプ
1. 説明
このプロジェクトでは、Arduino UNOとボタンを使ってランプを制御します。ボタンを押すと、ランプの状態が切り替わります(ONまたはOFF)。
2. 動作原理

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

4. テストコード
基本ブロックを2つ追加します。

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

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

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

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

完成コード:

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

6. 知識拡張
次に、ボタンの状態を通じてLEDを制御します。
フローチャート:

配線図:

コード:
基本ブロックを2つドラッグします。

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

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

完成コード:

8. コード説明
注意:ボタンモジュールを使用する際はピンモードを必ず「input」に設定してください。
ボタンが押されているかどうかを判定します。押されていればこのブロックはtrueを表します。

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

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

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

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