[[Arduino勉強会]]


#contents

2014/02/23からのアクセス回数 &counter;

第4回目の勉強会の資料です。

** ProtoSnap Pro Miniボードをバラバラにする [#zcca1382]
さあ、これまで難なく動いていたProtoSnap Pro Miniボードをバラバラにしてみましょう。

ボードから部品を切り離すときには、ニッパを使うと便利です。
((切り離すときは、部品を壊さないように気を付けましょう))

&ref(broken_protosnap.png);



** ピントソケット付ける [#xf9e0a8c]




** ブレッドボードに組み立てる [#o1f397bb]
私は、シリアルボードのL字ピンの付ける面を間違えてしまいました。
上ではなく下に付けた方が使いやすいです!

&ref(rebuild_on_brd.png);



ブレッドボードの配線は、以下の図をみてください。

&ref(breadboard.png);



** 動作確認 [#sa9a00ce]
組み立てたボードがきちんと動くか確かめましょう。



&ref(Pro_mini.png);



Blinkをボードに書き込んでArduino Pro Miniのボードが動作するか見てみましょう。
ファイル→スケッチの例→01.Basics→Blinkを選択して、Arduinoに書き込んで緑のLEDが点滅することを確認してください。

*** Arduino Pro miniをブレッドボードに差す [#aec961fd]
電源を入れる前に、もう一度ブレッドボードのVCCとGNDの位置が合っているか確認しましょう!
写真の赤い四角で囲まれたところがVCCのピンと合っているか確かめて下さい

順番に動作を確認します。
- 電源を入れます。先ほどのBlinkが同じように動くことを確認してください。
- カラーLEDの接続確認:pin2の値を、1個づつ5(緑)、6(青)、3(赤)に変えて書き込みLEDの点滅を確認してください。
#pre{{
int pin2 = 2;
}}

- スイッチの確認:1回目に使ったスイッチのスケッチを使って動作を確かめてます。
#pre{{
int buttonPin = 7;  // ボタンは 7番ピンにつながっています
int ledPin = 13;  // LEDは 13番ピンにつながっています

int buttonStatus; // ボタンの状態を保持するための変数

void setup() {
  pinMode(buttonPin, INPUT);  // ボタンピンを入力として初期設定
  pinMode(ledPin, OUTPUT);  // LEDピンを出力として初期設定
}

void loop() {
  /* 最初にボタンの状態を読み込みます
  HIGH = ボタンが押されていない状態
  LOW = ボタンが押されている状態 */
  buttonStatus = digitalRead(buttonPin);
 
  if (buttonStatus == LOW) {
    digitalWrite(ledPin, HIGH);  // ボタンが押されていたらLEDを点灯する
  }
  else {
    digitalWrite(ledPin, LOW);  // そうでなければLEDを消す
  }
}
}}

- スピーカー:スピーカーの例題を動かします。
#pre{{
// Tone
int toneDuration = 40;     // 音のでる間隔(40ミリ秒)
int speakerPin = 2;        //ブザーのピン番号
int index = 0;                // 何番目の配列かを示す値(配列の添え字を求める)
char ch;                        // パソコンから読み込んだ文字(コード)
int tones[]={262,294,330,392,440};  // ド、レ、ミ、ソ、ラ
 
void setup() {
  /* シリアル通信の速度を9600ボーにセットし、最初にHello…のメッセージを表示する */
  Serial.begin(9600);
  Serial.println("Input [1-5]!");
}

void loop() {
     ch = Serial.read();     // パソコンから1文字読み込む
     if (ch >= '1' && ch <= '5') {     // 読み込んだ値が1から5の文字なら、音を鳴らす
          index = ch - '1';                    // 1の文字から0のインデックスを求めるために、'1'を引く
          tone(speakerPin, tones[index], toneDuration);
     }
     delay(500);  // 次の読み込みまで待つ
}
}}

- 光センサー:同様に光センサーの例題を動かします。シリアルモニターがセンサーの値がでてくることを確認してください。
#pre{{
int lightPin = A0;  // 光センサーはA0につながっている

int lightReading;  // 光センサーからの値を保持する変数

void setup() {
  /* シリアル通信の速度を9600ボーにセットし、最初にHello…のメッセージを表示する */
  Serial.begin(9600);
  Serial.println("Hello world, let's read some light sensors!");
}

void loop() {
  lightReading = analogRead(lightPin);  // 光センサーから値を読み込む
  Serial.println(lightReading, DEC);  // 読み込んだ値をシリアル通信を使ってシリアルモニターに送る
  delay(250);  // 次の読み込みまで待つ
}
}}


** 温度センサーを使ってみる [#db457064]
温度センサーには、いろんなタイプがあります。

&ref(temp-sensor.png);



*** LM35を使ってみる [#obbf440a]
電圧を測るだけで、温度が分かるLM35はとても使いやすいセンサーです。

&ref(LM35.png);



シリアルモニターの出力は、44から46の値が出ています。

&ref(LM35_Monitor.png);



テスターで電圧を測ってみると、以下の様に227.7mVとなりました。
温度は、22.7℃になります。

\( \frac{46}{1023}  \times 4.78 V = 0.2149 V \)

$$
\frac{46}{1023}  \times 4.78 V = 0.2149 V
$$


Arduinoの出力した値も21.5℃と良い値を示しています。

&ref(tester.png);



** 半固定抵抗を使ってみる [#adfc4b1a]
今度は、LM35の代わりにスイッチサイエンスからブレッドボードにそのままささる、
[[つまみの大きい半固定抵抗 10KΩ>http://www.switch-science.com/catalog/1039/]]
を使ってみます。


&ref(Volume.png);

先ほどと同じスケッチで動かしてみて下さい。
つまみを回すと値が0から1023に変わるのを確かめて下さい。

** ハンダ付けの様子 [#c550056f]
参加者の皆さんが、ハンダ付けに挑戦している様子をアップします。

&ref(challenge.png);

** コメント [#bc6b8ae8]
#vote(おもしろかった[3],そうでもない[0],わかりずらい[0])


皆様のご意見、ご希望をお待ちしております。勉強会で分からなかったこと等、お気軽に問い合わせて下さい。

スパム防止に画像の文字列も入力してください。
- ブレッドボードの図に1本線が抜けているとご指摘を受け、修正しました。 -- [[竹本 浩]] &new{2014-03-16 (日) 10:56:07};

#comment_kcaptcha



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc