はじめに
組み込みエレクトロニクスの世界へようこそ!Arduinoを学ぶ際にほとんどの人が最初に書くプログラムは、Blinkスケッチです。これはマイコンの「Hello, World!」であり、ボード、コード、回路がすべて連携して動作していることを確認する簡単な方法です。このチュートリアルでは、SPICE精度のアナログサポートを備えたブラウザ内回路・マイコンシミュレータVelxioを使って、クラシックなBlink LED回路を完全にブラウザ上で構築し、シミュレーションします。ハードウェアは不要です!

回路の解説
私たちの回路は最小限です。Arduino Unoボードとその内蔵LEDだけが必要です。Arduino Unoにはデジタルピン13に接続された小さなLEDがあり、電流制限抵抗もボード上にすでに実装されています。つまり、外部部品は一切不要で、ボードだけで十分です。
Velxioでは、コンポーネントピッカーからArduino Unoを配置できます。キャンバスツールバーのComponentsボタンをクリックしてコンポーネントピッカーモーダルを開き、「Arduino Uno」を検索してキャンバスにドラッグします。

配置すると、Arduino Unoがキャンバスに表示されます。内蔵LEDはピン13の近くに「L」と表示されています。LEDは内部ですでに接続されているため、配線は不要です。ただし、外部LEDを使用したい場合は、アノード(長い足)を220Ω抵抗を介してピン13に接続し、カソード(短い足)をGNDに接続します。
コードの解説
それでは、LEDを点滅させるコードを見てみましょう。エディタツールバーのCodeボタンをクリックしてコードエディタを開きます。

コードはArduino C++で書かれており、setup()とloop()の2つの必須関数で構成されています。
// Blink LED Example
// Toggles the built-in LED on pin 13
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
詳しく見ていきましょう:
pinMode(13, OUTPUT);–setup()で、デジタルピン13を出力として設定します。これにより、Arduinoにそのピンから信号を送り出すことを指示し、信号を読み取ることはしません。digitalWrite(13, HIGH);– ピン13を5ボルト(HIGH)に設定し、LEDを点灯させます。delay(1000);– プログラムを1000ミリ秒(1秒)間一時停止します。digitalWrite(13, LOW);– ピン13を0ボルト(LOW)に設定し、LEDを消灯させます。delay(1000);– さらに1秒間の一時停止。loop()関数は無限に繰り返されるため、LEDは継続的に点滅します。
シミュレーションの実行
シミュレーションを実行するには、エディタツールバーのRunボタンをクリックします。

Velxioがコードをコンパイルし、シミュレーションを開始します。Arduinoキャンバス上の内蔵LEDが1秒ごとに点滅するのが見えるはずです。キャンバスツールバーを使って、シミュレーションの一時停止、停止、リセットも行えます。

学習者向けの重要概念
- デジタル出力ピン:Arduinoのピンは入力または出力として設定できます。OUTPUTに設定すると、HIGH(5V)またはLOW(0V)を書き込んで、LEDのような外部デバイスを制御できます。
pinMode():必ずsetup()内でピンモードを設定してください。これを忘れると、予期しない動作を引き起こす可能性があります。digitalWrite():デジタル信号(HIGHまたはLOW)をピンに送信します。delay():指定されたミリ秒数だけプログラムの実行を停止します。タイミング制御に便利ですが、他の処理をブロックします。- 内蔵LED:ほとんどのArduinoボードには、ピン13に直列抵抗を介して接続されたLEDがあり、追加部品なしで簡単にテストできます。
よくある落とし穴とデバッグのヒント
- ピン番号の間違い:正しいピン番号を使用していることを確認してください。内蔵LEDはピン13ですが、外部LEDを使用する場合は配線を再確認してください。
pinMode()の欠落:ピンをOUTPUTに設定し忘れると、LEDが点灯しない場合があります。必ずsetup()にpinMode(pin, OUTPUT);を含めてください。- LEDの極性:外部LEDを使用する場合、アノード(長い足)をプラス側(抵抗を介して)に、カソード(短い足)をグランドに接続する必要があります。逆にしてもLEDは壊れませんが、点灯しません。
- 抵抗なし:電流制限抵抗なしのLEDは、過剰な電流を引き込み、ピンやLEDを損傷する可能性があります。内蔵LEDにはすでに抵抗がありますが、外部LEDには抵抗(通常220Ω~1kΩ)が必要です。
- シミュレーションが動作しない:Runボタンをクリックしたことを確認してください。シミュレーションが一時停止している場合は、もう一度Runをクリックしてください。
推奨される拡張
基本的な点滅ができたら、以下の変更を試してみてください:
- 点滅速度の変更:
delay()の値を変更して、LEDの点滅を速くしたり遅くしたりしてみましょう。500ミリ秒や2000ミリ秒を試してください。 - 外部LEDの使用:外部LEDと抵抗をピン13とグランドに追加します。コードを変更して、ピン12など別のピンを使用してみましょう。
- 複数のLED:複数のLEDを異なるピンに追加し、ナイトライダースキャナのようなパターンを作成します。
- PWMによるフェード:
analogWrite()を使用してLEDをフェードイン・フェードアウトさせます。PWMをサポートしているのは~マークのあるピンだけです。 - ボタン制御:押しボタンを追加して、押している間だけLEDを点灯させます。
digitalRead()でデジタル入力を読み取る必要があります。
行動喚起
実際に試してみませんか?Velxioでライブ例を開いて、点滅を始めましょう:Blink LED on Velxio。ダウンロードもセットアップも不要で、ブラウザとエレクトロニクスへの情熱だけがあれば大丈夫です。楽しい点滅を!