注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ ここ]をクリックして今すぐ参加しましょう!
ボタン
概要
このレッスンでは、Arduinoを使用してボタンでLEDを制御する方法について学びます。ボタンとLEDは、リモコン、懐中電灯、インタラクティブインスタレーションなど、さまざまな電子デバイスにおいて基本的なコンポーネントです。このセットアップでは、ボタンを入力デバイスとして使用し、LEDの状態を制御します。
ボタンはArduino Uno R4ボードのピン12に、LEDはピン13に接続されています。ボタンが押されると、Arduinoに信号が送られ、LEDが点灯します。逆に、ボタンが放されると、LEDが消えます。このシンプルだが効果的なメカニズムは、ホームオートメーションシステム、インタラクティブディスプレイなど、より複雑なプロジェクトの基礎となることができます。
このレッスンを終えるころには、ボタンからの入力を読み取り、それを使用してLEDを制御する方法を理解し、Arduinoの入出力操作に関する基本的な理解を得ることができます。
必要なコンポーネント
このプロジェクトには、以下のコンポーネントが必要です。
全セットを購入するのが便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
|---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから個別に購入することもできます。
コンポーネント紹介 |
購入リンク |
|---|---|
- |
|
配線図
回路図
ボタンの一方の端をピン12に接続し、プルダウン抵抗と0.1uF(104)のコンデンサー(ボタンが動作する際にジッターを排除し、安定したレベルを出力するため)と接続します。抵抗の他端をGNDに、ボタンの他端のピンの一つを5Vに接続します。ボタンを押すと、ピン12は5V(HIGH)になり、同時にピン13(LEDが組み込まれている)をHighに設定します。次にボタンを放すと(ピン12がLOWに変わる)、ピン13はLowになります。そのため、ボタンを押して放すたびに、LEDが交互に点灯し消えるのが見られます。
コード
注釈
ファイル
18-button.inoをelite-explorer-kit-main\basic_project\18-buttonのパスで直接開くことができます。または、このコードをArduino IDEにコピーしてください。
1/*
2 This code controls an LED using a button. When the button is pressed,
3 the LED turns on; when the button is released, the LED turns off.
4
5 Board: Arduino Uno R4
6 Component: Button and LED
7*/
8
9const int buttonPin = 12; // Pin number for the button
10const int ledPin = 13; // Pin number for the LED
11
12int buttonState = 0; // Variable to hold the current state of the button
13
14// Setup function runs once when the board starts
15void setup() {
16 pinMode(buttonPin, INPUT); // Initialize buttonPin as an input pin
17 pinMode(ledPin, OUTPUT); // Initialize ledPin as an output pin
18}
19
20// Main loop function runs repeatedly
21void loop() {
22 // Read the current state of the button
23 buttonState = digitalRead(buttonPin);
24
25 // Check if the button is pressed (HIGH)
26 if (buttonState == HIGH) {
27 digitalWrite(ledPin, HIGH); // Turn the LED on
28 } else {
29 digitalWrite(ledPin, LOW); // Turn the LED off
30 }
31}
コード解析
定数と変数の定義
このセグメントでは、ボタンとLEDのピン番号が定義されます。また、
buttonState変数が宣言され、ボタンの現在の状態を保持します。const int buttonPin = 12; const int ledPin = 13; int buttonState = 0;
セットアップ関数
setup()関数は、Arduinoボードが起動するときに一度実行されます。ボタンとLEDのピンモードは、pinMode関数を使用して設定されます。void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); }
メインループ
loop()関数は繰り返し実行されます。このループ内で、digitalRead()関数を使用してボタンの状態を読み取ります。ボタンが押されているかどうかに応じて、LEDを点灯または消灯します。void loop() { buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }