MENU
Arduino関連

Arduino入門|電子工作初心者が最初に作るべきLEDプロジェクト5選

「Arduinoって面白そうだけど、何から始めればいいかわからない…」

そんな気持ち、すごくよくわかります。電子工作って、なんとなく敷居が高そうに感じますよね。でも実は、LEDを光らせるところから始めると、拍子抜けするくらいスムーズに入れるんです。

今回は、Arduino初心者のかたが「最初に作るべきLEDプロジェクト」を5つ厳選して紹介します。順番に作っていくだけで、電子工作の基礎がざっくりつかめる構成になっていますよ 🎉

🔰 この記事の対象読者と難易度

Arduino LED breadboard
Arduino LED breadboard / Photo by Chengxin Zhao via Pexels
  • ✅ Arduinoを買ったばかりで何から手をつければいいかわからない方
  • ✅ プログラミング経験はあるけど電子工作は初めての方
  • ✅ LEDを光らせるだけじゃなく、もう少し応用もしてみたい方

難易度は★☆☆〜★★☆(初心者〜初級者向け)です。電気の知識がゼロでも大丈夫なように解説しますね。

🛠️ 必要なもの(共通)






  • Arduino Uno(またはArduino互換ボード)
  • ブレッドボード
  • LED(赤・黄・緑など数色あると◎)
  • 抵抗(220Ω〜330Ω)
  • ジャンパワイヤ
  • USBケーブル(ArduinoをPCに接続するもの)

Arduinoのスターターキットを買えば、ほぼすべて入っていることが多いです。まだ持っていない方はそちらから揃えると一気に解決できるかもしれません!

💡 プロジェクト① Lチカ(LEDを点滅させる)

electronics beginner project
electronics beginner project / Photo by Bmonster Lab via Pexels

「Lチカ」とは、LEDをチカチカ点滅させることを指す電子工作界隈のスラングです。プログラミングでいう「Hello, World!」と同じ立ち位置ですね。

回路のつなぎ方

  1. LEDのプラス側(長い足)→ 抵抗 → Arduinoの13番ピン
  2. LEDのマイナス側(短い足)→ ArduinoのGND(グランド)

ポイントはここだけです。抵抗を必ず挟むことを忘れずに(LEDが壊れます)。

スケッチ(Arduinoのプログラム)

// Lチカ:LEDを1秒ごとに点滅させる

const int LED_PIN = 13; // LEDをつなぐピン番号

void setup() {
  pinMode(LED_PIN, OUTPUT); // ピンを出力モードに設定
}

void loop() {
  digitalWrite(LED_PIN, HIGH); // LEDを点灯
  delay(1000);                 // 1秒待つ
  digitalWrite(LED_PIN, LOW);  // LEDを消灯
  delay(1000);                 // 1秒待つ
}

コードのポイントをまとめるとこんな感じです。

  • setup():起動時に1回だけ実行される初期設定
  • loop():その後ずっとくり返し実行される処理
  • digitalWrite():ピンをON/OFFする命令
  • delay(1000):1000ミリ秒(=1秒)待機

💡 プロジェクト② 点滅スピードを変えてみる

Lチカができたら、次は点滅のスピードを変えてみましょう。delay()の数値を変えるだけで挙動が変わるのが体感できて、「プログラムで電子部品を制御している」という感覚がリアルに掴めます。

// 点滅スピードを変化させるLチカ

const int LED_PIN = 13;
int waitTime = 100; // 最初は100ミリ秒(速め)

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(waitTime);
  digitalWrite(LED_PIN, LOW);
  delay(waitTime);

  waitTime += 100; // 毎ループ100ミリ秒ずつ遅くする

  if (waitTime > 1000) {
    waitTime = 100; // 1秒を超えたらリセット
  }
}

実行すると、LEDの点滅がだんだん遅くなって、また速くなる…をくり返します。変数を使ってプログラムに「変化」を持たせる練習として最適ですよ 👀

💡 プロジェクト③ 複数のLEDを順番に光らせる(LEDシーケンサー)

LEDを3〜5個並べて、順番にパカパカ光らせてみましょう。イメージとしては、ランプが流れるような演出です。お祭りの電飾みたいなイメージですね。

回路のつなぎ方

LEDを3個使う場合、それぞれを9番・10番・11番ピンにつなぎます(各LEDに抵抗を挟むのを忘れずに)。

// LEDシーケンサー:3つのLEDを順番に点灯

const int LED_PINS[] = {9, 10, 11}; // LEDをつなぐピンの配列
const int LED_COUNT = 3;            // LED の数

void setup() {
  for (int i = 0; i < LED_COUNT; i++) {
    pinMode(LED_PINS[i], OUTPUT); // 全ピンを出力モードに
  }
}

void loop() {
  for (int i = 0; i < LED_COUNT; i++) {
    digitalWrite(LED_PINS[i], HIGH); // i番目のLEDを点灯
    delay(200);
    digitalWrite(LED_PINS[i], LOW);  // i番目のLEDを消灯
  }
}

ここで登場する配列(array)とforループは、Arduinoスケッチを書くうえで超頻出のパターンです。LEDの数を増やしたければ、配列にピン番号を追加するだけでOKなのがポイントですね 😊

💡 プロジェクト④ ボタンでLEDをON/OFFする

ここからは「入力」を扱います。タクトスイッチ(プッシュボタン)を押したときだけLEDが光る回路を作ります。センサーやボタンから情報を受け取るという考え方は、IoT工作の基本でもあります。

追加で必要なもの

  • タクトスイッチ(プッシュボタン)×1
  • 10kΩ抵抗(プルダウン抵抗として使用)

回路のつなぎ方

  1. ボタンの一方 → 5V(Arduinoの電源ピン)
  2. ボタンのもう一方 → Arduinoの2番ピン&10kΩ抵抗(抵抗の反対側はGNDへ)
  3. LED(抵抗付き) → 13番ピン〜GND
// ボタンを押したときだけLEDを点灯させる

const int BUTTON_PIN = 2;  // ボタンをつなぐピン
const int LED_PIN    = 13; // LEDをつなぐピン

void setup() {
  pinMode(BUTTON_PIN, INPUT);  // ボタンピンを入力モードに
  pinMode(LED_PIN, OUTPUT);    // LEDピンを出力モードに
}

void loop() {
  int buttonState = digitalRead(BUTTON_PIN); // ボタンの状態を読み取る

  if (buttonState == HIGH) {
    digitalWrite(LED_PIN, HIGH); // ボタンが押されていればLED点灯
  } else {
    digitalWrite(LED_PIN, LOW);  // 押されていなければ消灯
  }
}

digitalRead()でボタンの状態を「0か1か」で読み取っているのがポイントです。出力だけでなく入力も扱えるようになると、できることが一気に広がります!

💡 プロジェクト⑤ LEDの明るさをじわっと変える(PWM制御)






最後は少しだけ応用です。PWM(パルス幅変調)という仕組みを使って、LEDの明るさをなめらかに変化させます。

むずかしそうに聞こえますが、要は「高速でON/OFFをくり返す時間の比率を変えることで、明るさを調整している」イメージです。

Arduinoでは〜マーク(チルダ)がついているピン(3・5・6・9・10・11番)がPWM対応です。LEDを9番ピンにつなぎましょう。

// LEDの明るさをじわっと変化させる(フェードイン・フェードアウト)

const int LED_PIN = 9; // PWM対応ピンに接続

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // だんだん明るくなる(フェードイン)
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(LED_PIN, brightness); // 0〜255で明るさを指定
    delay(8);
  }

  // だんだん暗くなる(フェードアウト)
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(LED_PIN, brightness);
    delay(8);
  }
}

コードのポイントはこちら。

  • analogWrite():0〜255の値で出力の強さを指定する命令
  • 255が最大輝度、0が消灯(完全OFF)に相当する
  • delay(8)を調整すると、フェードのスピードが変わる

実際に動かしてみると、LEDがふわっと光って、ふわっと消える様子がとてもきれいです。ここまでできたら、電子工作の「基礎の基礎」はしっかり身についていますよ 🌟

📝 まとめ

今回紹介した5つのLEDプロジェクトをまとめると、こんな流れでした。

  1. Lチカ(点滅)→ ArduinoとLEDの基本をつかむ
  2. 点滅スピード変化 → 変数・条件分岐の練習
  3. LEDシーケンサー → 配列とforループを使う
  4. ボタンでON/OFF → 入力(デジタル読み取り)を学ぶ
  5. PWMでフェード → アナログ出力でなめらかな制御を体験

「むずかしそう」を「できそう」に変えるのが、小さなプロジェクトを積み上げることの一番の醍醐味です。LEDひとつでここまで遊べるんですよね。

まずはLチカから、ぜひ試してみてください 💪 次回は温度センサーやモーターなど、LEDの次のステップになるパーツも紹介していく予定ですので、一緒に学んでいきましょう!

📡 Arduinoをもっと深く学ぼう!

Arduino・ラズパイ・ロボットプログラミングを体系的に学びたい方へ。おすすめのUdemyコースや電子部品もまとめています。

Arduinoロボット入門のおすすめコース・部品を見る →

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

Arduinoをはじめよう 第4版 (Make: PROJECTS)

もしも

Arduinoをはじめよう 第4版 (Make: PROJECTS)

Arduino公式推薦の定番入門書

Amazonで見る

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

もしも

徹底攻略! 電子工作&プログラミング Arduinoで学ぶ電子工作完全ガイド

電子工作とプログラミングを同時に学べる

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です