からくりがてんこ

IT関連情報、プログラミングに関する作業ログや備忘録を記載していきます。

飛べ!Arduino!(1) 〜初めてのLチカ〜

前回、Arduinoを使わずブレッドボードのみでLEDを点灯することに成功しました。
今日からいよいよArduinoを使います。

まず最初にArduinoについて少し説明しましょう。
f:id:ayumu-homes:20141210001945p:plain:w100

Arduinoの構造

f:id:ayumu-homes:20141210014448p:plain:w200

  • パソコン(USB経由)またはAC電源からの電源供給(5V)
  • アナログポートから電気を入出力
  • デジタルポートから電気を入出力
  • パソコンからプログラムを書き込む

Arduinoのポートと呼ばれるものは上下にある黒いところ
ちなみに右下のA0〜A5がアナログ、上の0〜13がデジタルポートです

Arduinoはプログラムにより各ポートから電気を流す制御ができるといったものです。
電気を流したり、流されたりって、さて、これで何ができるんでしょうね。



まずは"Lチカ"!!
"Lチカ”って当たり前のように言ってますが、何なのか?

What is Lチカ?

LEDをチカチカ。の略です。
電子工作をやる人が最初に通る道だそうです。
ソフトウェア業界でいうところの"HelloWorld"ってやつですね。
なので、私もその道通りましょう。敷かれたレールを走るのは得意です↑↑↑

Arduino開発環境を作ろう

LチカするためにArduinoの開発環境を作る必要があります。
ArduinoIDE統合開発環境)が提供されていてそれをインストールすれば意外とあっさり始められます。

下記公式サイトよりダウンロードできます
Arduino - Software

Let’s Lチカ!

IDEをインストールしましたか?
ではさっそくツールを立ち上げて下記プログラムを入力しましょう。

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

void loop() {
  digitalWrite(2, HIGH);
  delay(500);

  digitalWrite(2, LOW);
  delay(500);
}

ツールではこんな感じです。
f:id:ayumu-homes:20141210012247p:plain:w500

次に回路を組みましょう。
配線はこのようにしてください。
f:id:ayumu-homes:20141210012314p:plain:w500
2番のピンからLEDを介し抵抗を通ってGND(アース)に繋がってます。

〜ここでプログラムに関しての説明〜

  • HIGH -> 電気が通ってる状態(ON状態にする)
  • LOW -> 電気が通ってない状態(OFF状態にする)

先ほど、二つの関数を記述しました。

  • void setup()
  • void loop()

これは必須の関数です。
最初に一度だけ、”setup()”関数が呼ばれます。ここでプログラムの初期化処理を書きましょう。
そして、”loop()”関数が繰り返し繰り返し…電池のある限り繰り返されます。
setup()関数では、
"pinMode”という関数はピンをOUTPUTで使うかINPUTで使うかを指定できます。
ここでは2番ピンをOUTPUT用として指定しました。
loop()関数では、
"digitalWrite"という関数でピンの電気ON状態にするというものです。
"delay"は引数の時間分待つというものです。(単位はミリ秒)

なので、LED付けて、0.5秒待って、LED消して、0.5秒待って…を繰り返すプログラムになります。

INPUT/OUTPUTがよくわからん。。

単純に言うとArduinoから電気を送る(OUTPUT)かArduinoへ電気を送る(INPUT)かってことです。主語はArduinoですね。
なので”pinMode(2, OUTPUT);”はArduinoから電気を送る設定をした。ということになります。
INPUTはどんな時に使うのか。
これから先でも出てきますが、センサーの感知した値を電気でArduinoに送るような目的でINPUTにします。

ツールに先ほどのプログラムを書き込み、ArduinoとPCをUSBケーブルで接続してください。
そして、左上に→ボタンがありますのでこれでArduinoにスケッチを書き込んでください。
f:id:ayumu-homes:20141211235757p:plain
すると………どうですか?
Lチカできちゃいました?

今回はこれで終了です。
スターターキットにはLEDの他にいろんなセンサーも付いてきているので少しずつ触っていきます。

コラム:グランド?アース?接地?
これらは同じ意味で使われるようです。
わたし的には、細かいことはおいといてこんな感じかなって思ってます。(イメージです)

水は高いところから低いところへ流れます。
電気も同じく電位の高いところから低いところへ流れます。
アースは安定して電位が低いものなので、電源という電位の高いものとアースを繋ぐとその間に電流が流れます。(電位の差を電圧と呼びます)

洗濯機とか冷蔵庫にアース接続用の線が出てますよね。あれちゃんと繋げてます?
繋げてなくても動くからあまり意識してない人もいるかもしれないですね。
(実はわたしも…)

あれは何か?
電化製品って鉄の塊なのに外部を触ってもビリっと来ない。それはちゃんと漏電対策が取られているから。
(ちなみに漏電とは想定した回路の外側に電気が流れ出ちゃうことを言います。絶縁体で覆ったりして対策がとられてるとか)
でも、もし壊れて漏電している電化製品を触ったら間違いなく感電してしまいますね。
そこでアースの登場です。
二つの電流の経路ができます。

  • 電源からアースまでの経路
  • 電源から人間を挟んで地面(アース?)に繋がった経路

電流的には、人間という抵抗がある道より、なにも抵抗がなくアースにいける方にどんどん逃げていきます。
これによって感電が防止されるということです。

漏電対策は取られてはいるのでアースしなくても動きますが、特に水回りの電化製品はアースを意識した方がいいですね。

これらを踏まえピカチュウと対峙した時、10万ボルトが来る前に、
事前にピカチュウにアース線を取り付け、接地しておけば勝てるな。と考える今日この頃
f:id:ayumu-homes:20141212005032p:plain:w150