📚

Arduino環境構築&Lチカ

に公開

Arduinoとはイタリア原産の代表的な教育用マイコン!
今回はミドルモデルのArduino UNOを使っていく。

マイコンとは?

ちいさなパソコン!
家電や車の制御にはたくさんのマイコンが使われている。

今回はArduinoの環境構築&Lチカ(LEDチカチカの略)をやっていく。

環境構築

IDE(統合開発環境)をインストールする。

IDEとは?

開発を行うためのソフトウェアっていう認識でOK

https://www.arduino.cc/en/software/
(寄付とかユーザー登録とかは飛ばしてください、just downloadを押す)
インストールしたらとりあえず開きます。

この時点でArduinoを接続してください。

次に、「Select Board」より
・ BOARDS -> Arduino UNO
・ PORT -> 適当なもの
を選択した状態で「OK」をクリックします。
(環境構築おわり)

Lチカ

とりあえず内蔵のLEDを使用します。
以下のコードを張り付けるだけで動きます。

#define LED 13
void setup() {
  pinMode(LED,OUTPUT);
}

void loop() {
  digitalWrite(LED,HIGH);
  delay(1000);
  digitalWrite(LED,LOW);
  delay(1000);
}

コードの解説

#define LED 13

ピン番号の定義(define)をしています。
Arduinoはすべてのピン(導線をつなげるところ)が番号で管理されています。しかしそのままわかりにくいのでLEDというもじに13という数字をわりあてています。
そのため、LEDといまかかれているところを13に変更してもうごきます。

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

void setup(){}にかかれたものは最初に一回だけ実行されます。
ここでLED(13)番ピンを出力設定にしています。

void loop() {
  digitalWrite(LED,HIGH);
  delay(1000);
  digitalWrite(LED,LOW);
  delay(1000);
}

void loop(){}にかかれたものはsetupのあと常に繰り返されます。
digitalWriteで13ピンをHIGH(電流ON)とLOW(電流OFF)に設定します。
その間にdelay(1000)を挟むことで時間をずらして命令をだしています。
1000は待つ時間です。しかし秒ではなくミリ秒なことに注意です。
※1000ミリ秒 = 1秒

Lチカ応用

・外部のLEDを使用する
・蛍みたいに点灯させる

このように接続してください。
ピンは基本的にどこでもいいですが、とりあえずさきほどとおなじ13番にしてくだい。
LEDは足のながいアノードが、+(プラス)につながるようにしてください。
GNDとかかれたピンはいわば、-(マイナス)です。

抵抗器はつなげないとすこし危険です。(これくらいなら正直OK)、300Ωがベスト

抵抗器?

電流の勢いがつよすぎてLEDなどが壊れることを防ぐために挟むもの

それでは好きな色のLEDをつないだところで蛍をつくっていこう。

電子ホタル

いまLEDが13番ピンにつながっているとおもいますが、11番ピンにしてください。
そしたら以下のコードで電子ホタルが誕生します。

#define LED 11
int AKARUSA = 0;
int delta   = 1;

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

void loop() {
  analogWrite(LED,AKARUSA);
  delay(20);
  AKARUSA += delta;

  if(AKARUSA == 255) delta = delta * -1;
  if(AKARUSA == 0)  delta = delta * -1;
}

コードの解説

int AKARUSA = 0;
int delta   = 1;

とりあえずさっきのLED=llのdefineとおなじで言葉に数字をわりあてているとおもってください。
でもさっきと違うのはわりあてた数字を途中でかえられることです。
(こういうのを変数っていう)

analogWrite(LED,AKARUSA);

さっきと違ってデジタルライトがアナログライトになってます。
これは明るさを微調整するためです。(0から255までの値がはいる(0は電流ながれない))

デジタルとアナログの違い

デジタルとは?
ONかOFF、0か1、真実か偽りみたいなはっきりした状態しか持たない
アナログとは?
値が連続的(0.2222343…みたいに)
※べつにデジタルだからすごいとかではない(「わたしアナログなんで」は意味不明)

AKARUSA += delta;

if(AKARUSA == 255) delta = -1;
if(AKARUSA == 0)  delta  =  1;

1.AKARUSAに、delta = 1を足し続ける
2.AKARUSA = 255になったらdeltaを -1 にする
3.AKARUSAにdelat = -1を足し続ける
4.AKARUSA = 0になったら delta を 1 にする

1-4をひたすら繰り返す!

今回は以上になります。お疲れ様でしたー🍉

Discussion