tobetobekun’s diary

Arduino実験ノート

【Arduino入門⑤】LEDをじんわり光らせてみた!フェード制御に挑戦

はじめに

こんにちは!今回は「LEDをゆっくり明るくして、またゆっくり暗くする」いわゆるフェードイン/フェードアウトに挑戦してみます。

LEDの**アナログ出力(PWM)**を使うことで、"点く or 消える" だけでなく「ゆっくり変化」する表現ができるようになります!

 

使用する部品

部品名 数量 備考
Arduino Uno 1  
LED(任意色) 1  
抵抗(330Ω) 1 LED保護用
ブレッドボード 1  
ジャンパーワイヤー 数本  

 

接続方法

Arduinoピン 接続先 内容
D9(PWM) LEDの+端子(アノード) PWM制御出力ピン
GND LEDの−端子(→抵抗) → GND列 電流をGNDに流す経路

※ LEDはPWM対応のピン(D3, D5, D6, D9, D10, D11など)に接続してください。

プログラム(フェード制御)

 

const int ledPin = 9; // PWM出力が可能なピン(D9)

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

void loop() {
  // フェードイン(明るく)
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledPin, brightness);
    delay(10);
  }

  delay(500); // 少し待機

  // フェードアウト(暗く)
  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledPin, brightness);
    delay(10);
  }

  delay(500); // 少し待機
}

 

 

実行結果

LEDがゆっくり明るくなって、またゆっくり暗くなる様子が見られます。
呼吸するような光に見えるので「ブリージングLED」とも呼ばれます。

おわりに

今回のフェード制御を応用すれば、インジケーターや光演出などにも使えます。
次は「複数LEDの制御」や「明るさを変化させるボリューム操作」などに挑戦してみましょう!

 

【Arduino入門④】押すたびにLEDがON/OFF!トグルスイッチを作ってみた

はじめに

こんにちは!今回は、押すたびにLEDの点灯・消灯を切り替える「トグルスイッチ風」のプログラムに挑戦します。前回の「押してる間だけLEDが点灯」とは違い、「押す→点灯、もう一度押す→消灯」といった動作になります。

 

使用する部品

前回と同じ構成でOKです!

部品名 数量 備考
Arduino Uno 1  
LED(赤) 1  
抵抗(330Ω) 1 LED保護用
押しボタン 1  
ブレッドボード 1  
ジャンパーワイヤー 数本  

 

接続方法(内部プルアップ)

Arduinoピン 接続先 内容
D2 LEDの+端子 出力ピン
GND LEDの−端子(→抵抗) GNDへ接続
D3 ボタンの片側 内部プルアップ付き入力ピン
GND ボタンのもう片側 押すとGNDに落ちる構成

 

 

プログラム(トグルスイッチ)

const int ledPin = 2;        // LEDのピン
const int buttonPin = 3;     // ボタンのピン

bool ledState = false;       // LEDの状態(ON/OFF)
bool lastButtonState = HIGH; // 前回のボタン状態

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);  // 内部プルアップ
}

void loop() {
  bool currentButtonState = digitalRead(buttonPin);

  // ボタンが押された瞬間(HIGH → LOW)だけ検出
  if (lastButtonState == HIGH && currentButtonState == LOW) {
    ledState = !ledState; // 状態を反転
    digitalWrite(ledPin, ledState ? HIGH : LOW);
    delay(200); // チャタリング対策(200ms待機)
  }

  lastButtonState = currentButtonState;
}

 

実行結果

  • 押すたびにLEDのON/OFFが切り替わります

  • 連続押しにも対応し、チャタリング対策もOK

 

おわりに

この「トグル動作」は、スイッチで家電を操作するような仕組みにも応用できます。LEDだけでなく、ブザーやリレーなどにも使える基本パターンです。


次回予告(案)

  • LEDをゆっくり点灯/消灯する「フェード制御」

  • 複数のLEDを順番に光らせてみる

  • サウンドブザーを鳴らす

     

 

【Arduino入門】押しボタンでLEDをON/OFFしてみた!

 

はじめに

こんにちは!前回はLEDを自動でチカチカさせましたが、今回は「押しボタン」を使って、手動でLEDをON/OFFしてみましょう。
Arduinoの「入力(ボタン)」と「出力(LED)」を組み合わせる基本練習です!

使用する部品

  • Arduino Uno

  • LED ×1

  • 抵抗(220Ω)×1(LED用)

  • 押しボタンスイッチ ×1

  • ブレッドボード & ジャンパーワイヤー

 

🔌 接続一覧

 

Arduinoピン 接続先 内容
D2 LEDの+端子(アノード) LED制御用のデジタル出力
GND LEDの−端子(カソード)→抵抗→GND列 LEDからの電流をGNDへ流す経路
D3 ボタンの一方の端子 デジタル入力ピン(内部プルアップ使用)
GND ボタンのもう一方の端子 押すとGNDに落ちる構成

 

 

 

💡 補足

  • LEDには330Ω〜1kΩ程度の抵抗を直列に入れることで過電流を防ぎます。

  • pinMode(3, INPUT_PULLUP); を使うことで、外部のプルダウン抵抗が不要になります。

  • 押していないときは HIGH、押すと LOW を読み取ります。

 

✍スケッチ

const int ledPin = 2;        // LEDを接続したピン
const int buttonPin = 3;     // ボタンを接続したピン

void setup() {
  pinMode(ledPin, OUTPUT);           // LEDピンを出力に設定
  pinMode(buttonPin, INPUT_PULLUP);  // ボタンピンを内部プルアップ付きの入力に設定
}

void loop() {
  int buttonState = digitalRead(buttonPin);  // ボタンの状態を取得

  if (buttonState == LOW) {       // ボタンが押されたら(GNDに落ちたら)
    digitalWrite(ledPin, HIGH);   // LEDを点灯
  } else {
    digitalWrite(ledPin, LOW);    // LEDを消灯
  }
}

 

実行結果

  • ボタンを「押している間」だけLEDが点灯します

  • ボタンを離すとLEDは消灯します

内部プルアップ抵抗を使っているので、外部に10kΩなどのプルダウン抵抗を付けなくてもOKです!

 

 

おわりに

センサーが壊れてしまっても、LEDとボタンだけでも楽しく学べます。
次は「押すたびにLEDをON/OFF切り替える(トグル動作)」にもチャレンジしたいですね!


次回予告

  • 押すたびにLEDのON/OFFが切り替わる「トグルスイッチ」

  • フェードイン・アウトするLED(PWM)

LEDを制御して楽しもう!

こんにちは!前回はLCDを使って文字を表示してみました。実は今回、温湿度センサー(DHT11)を使って環境モニタリングに挑戦しようとしていたのですが……まさかのセンサー故障!

でもせっかくArduinoを準備したので、今回は「LEDをピカピカ光らせる」簡単な回路を作って遊んでみました!


使用する部品

  • LED(好きな色)×1

  • 抵抗(220Ω程度)×1

  • ブレッドボード & ジャンパーワイヤー

パーツ Arduino 備考
LED(長い足) D2 プラス(アノード)
LED(短い足) GND マイナス(カソード)※抵抗を挟んで接続推奨

ledと抵抗

led接続



//スケッチ

int ledPin = 2; // LEDを接続したピン番号

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

void loop() {


  digitalWrite(ledPin, HIGH); // LEDをON
  delay(500);                 // 0.5秒待つ
  digitalWrite(ledPin, LOW);  // LEDをOFF
  delay(500);                 // 0.5秒待つ
}

//スケッチ終了

 

実行結果
LEDが「チカチカ」と1秒間隔で点滅します。とてもシンプルですが、Arduinoの基本「デジタル出力」が体験できます!

 

おわりに
今回はセンサーが壊れてしまって予定変更になりましたが、LEDを光らせるのも立派な第一歩です。もしこれができたら、複数のLEDを使ったり、ボタンで点灯を制御したりして、応用していきましょう!

led2




ArduinoでLCD1602を使ってみた。【I2C無し】

 

こんにちは、はじめまして!Tobeです。

 

Arduinoで液晶表示をやってみたい!と思い、LCD1602(I2Cなし)をブレッドボードで接続して、メッセージを表示してみました。

 

この記事では、

 

使用した部品

 

接続方法(ArduinoLCDのピン)

ソースコード

注意点とトラブル対策

 

などを初心者にもわかりやすくまとめています。

 

 

🔧 使用したもの

すべてArduino入門セットに入っているものです。

Arduino Uno(互換機でもOK)

 

LCD1602(I2Cなし・パラレル接続タイプ)

 

ブレッドボード

 

ジャンパワイヤ(オス-オス)10本以上

 

10kΩの可変抵抗(Voピンのコントラスト調整用)

 

 

🔌 ピン接続(Arduinoピン順)

 

Arduinoピン−−−−−−−−− LCDピン 

 

2−−−−−−−−− D7

3−−−−−−−−− D6

4 −−−−−−−−−D5 

5 −−−−−−−−−D4 

11 −−−−−−−−−E 

12−−−−−−−−− RS 

GND−−−−−−−−− RW

GND −−−−−−−−−VSS

GND−−−−−−−−−K 

5V −−−−−−−−−VDD

5V−−−−−−−−−A 

 

可変抵抗 の中央−−−−−−−−−Vo (コントラスト調整用)

可変抵抗の両端はArduinoの+と-へ接続(映らない場合は+を外す)

 

📷 


f:id:tobetobekun:20250614163132j:image

 

 

🧠 ライブラリについて

 

Arduino IDE 標準の LiquidCrystal ライブラリを使用します。特別な追加インストールは不要です。

 

 

---

 

💻 ソースコード

 

#include <LiquidCrystal.h>

 

// LiquidCrystal(rs, enable, d4, d5, d6, d7)

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

 

void setup() {

  lcd.begin(16, 2); // 16桁×2行のディスプレイ

  lcd.setCursor(0, 0); // 1行目の先頭にカーソルを移動

  lcd.print("Hello, TobeTobe!"); // 文字表示

  lcd.setCursor(0, 1); // 2行目の先頭にカーソルを移動

  lcd.print("LCD1602 Test"); // 2行目にも文字表示

}

 

void loop() {

  // 特に処理なし

}

 


f:id:tobetobekun:20250614163633j:image

🎉LCDへ文字を表示する事ができました🎉

 

---

 

⚠️ 注意点とトラブル対策

 

✅ Voピンの可変抵抗を忘れると文字が見えません!(コントラストで表示が消える)

 

✅ 表示されないときは、配線ミス or可変抵抗の+を外す

 

 

---

 

✍️ まとめと次回予告

 

今回は、ArduinoとLCD1602(I2Cなし)を使って文字を表示する方法を紹介しました。

 

次回は、センサーと組み合わせてリアルタイムで数値を表示するなど、応用例に挑戦してみたいと思います!

 

 

---

 

📎 おまけ(今後のネタ候補)

 

超音波センサー  の使って物体までの距離を測定してみる

 

 

---

 

💬 コメント歓迎!

もし「ここがわかりづらかった」「こんなトラブルがあった」などあれば、コメントや質問をもらえたら嬉しいです!

 

 

---

 

https://amzn.to/444XfU9https://amzn.to/444XfU9