Arduinoの初期設定から2つのLEDを光らせるまで with vscode
イントロダクション
学生のころ、Arduinoを購入して電子工作で遊んでいました。 数年使っていませんでしたが、久しぶりに遊んでみたので、報告します。
今回は、セットアップからLEDを光らせるまでです。
目次
環境
- Arduino UNO
- IDE : ARDUINO 1.8.9
- PC : Macbook Air
- OS : macOS Mojave
初期設定
Arduinoを動かすためには専用のソフトウエアが必要です。 公式のダウンロードページからダウンロードしてください。
LEDを点滅させる
以下はLEDを1秒毎に点滅させるプログラムです。 記述したあとコンパイルすれば、デジタル出力ポート13番にある付属LEDが点滅します。
int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); // waits for a second }
vscodeでArduinoを動かす
プログラムを作っているときに気づいたのですが、Arduino IDEにはコードの補完機能等々がありません。 そこで、vscodeの拡張機能を使って、ArduinoのLEDを点滅させます。
- vscodeで
arduino
と検索しMicrosoft製のArduino拡張を導入 - コマンドパレットで
Arduino: Initialize
→プロジェクト名決定→ボードを選択 - コード作成
- コマンドパレットで
Arduino: Upload
(またはcommand + alt + U
)でArduinoへ書き込み
ブレッドボードに繋いだLEDを点滅
ブレッドボードとLEDとジャンパー線を組み合わせて簡単なLED点滅システムを作りました。 今回はArduinoのデジタル出力12番とLEDのプラス側(足が長い方)に接続し、グランド(GND)をLEDのマイナス(足が短い方)に接続します。
ジャンパー線がすべて同じ色なのでわかりにくいですが、完成写真はこちら。
プログラムは以下のようにします。
int ledPin1 = 12; //12番ポート void setup() { pinMode(ledPin1, OUTPUT); } void loop() { digitalWrite(ledPin1, HIGH); delay(1000); digitalWrite(ledPin1, LOW); delay(1000); }
画像なのでわかりにくいですが、ちゃんと点滅しています。
LEDの段階的点滅
リファレンスを読むとArduinoはPWM(パルスの幅で出力信号を変化させる)で出力信号を制御しているようです。 そこで、赤色LEDは周期的に点滅させ、緑LEDは光の強さを時間的に変化させるシステムをつくりました。
通常のデジタル出力信号はdigitalWrite()
関数で、PWMで制御する出力信号はanalogWrite()
関数を使います。
int ledPin1 = 12; //12番ポート : Red int ledPin2 = 3; //3番ポート : Green int t_val = 0; float t_rad = 0.0; float two_pi = 2 * 3.1415; void setup() { pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); } void loop() { // time t_val += 1; t_rad += two_pi/120; // Red if (t_val % 100 < 50){ digitalWrite(ledPin1, HIGH); } else{ digitalWrite(ledPin1, LOW); } // Green float out_sin = 255*sin(t_rad); if (out_sin < 0){ out_sin = -out_sin; } analogWrite(ledPin2, out_sin); delay(50); }
配線と点滅の様子を示した画像はこちら。
まとめ
ArduinoでLEDの点滅させました。 arduinoのプログラムはvscodeから書き込むことができます。 今後はArduinoを使ったシステムの構築にも取り組みます。