Arduino勉強会

2014/02/23からのアクセス回数 4067

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

ProtoSnap Pro Miniボードをバラバラにする

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

ボードから部品を切り離すときには、ニッパを使うと便利です。 *1

broken_protosnap.png

ピントソケット付ける

ブレッドボードに組み立てる

私は、シリアルボードのL字ピンの付ける面を間違えてしまいました。 上ではなく下に付けた方が使いやすいです!

rebuild_on_brd.png

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

breadboard.png

動作確認

組み立てたボードがきちんと動くか確かめましょう。

Pro_mini.png

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

Arduino Pro miniをブレッドボードに差す

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

順番に動作を確認します。

  • 電源を入れます。先ほどのBlinkが同じように動くことを確認してください。
  • カラーLEDの接続確認:pin2の値を、1個づつ5(緑)、6(青)、3(赤)に変えて書き込みLEDの点滅を確認してください。
    int pin2 = 2;
    
  • スイッチの確認:1回目に使ったスイッチのスケッチを使って動作を確かめてます。
    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を消す
      }
    }
    
  • スピーカー:スピーカーの例題を動かします。
    // 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);  // 次の読み込みまで待つ
    }
    
  • 光センサー:同様に光センサーの例題を動かします。シリアルモニターがセンサーの値がでてくることを確認してください。
    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);  // 次の読み込みまで待つ
    }
    

温度センサーを使ってみる

温度センサーには、いろんなタイプがあります。

temp-sensor.png

LM35を使ってみる

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

LM35.png

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

LM35_Monitor.png

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

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

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

tester.png

半固定抵抗を使ってみる

今度は、LM35の代わりにスイッチサイエンスからブレッドボードにそのままささる、 つまみの大きい半固定抵抗 10KΩ を使ってみます。

Volume.png

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

ハンダ付けの様子

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

challenge.png

コメント

選択肢 投票
おもしろかった 3  
そうでもない 0  
わかりずらい 0  

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

スパム防止に画像の文字列も入力してください。

  • ブレッドボードの図に1本線が抜けているとご指摘を受け、修正しました。 -- 竹本 浩? 2014-03-16 (日) 10:56:07

(Input image string)


*1 切り離すときは、部品を壊さないように気を付けましょう

添付ファイル: filechallenge.png 994件 [詳細] filebreadboard.png 1075件 [詳細] filerebuild_on_brd.png 1053件 [詳細] filePro_mini.png 1070件 [詳細] fileLM35.png 999件 [詳細] fileLM35_Monitor.png 1065件 [詳細] filetester.png 1087件 [詳細] fileVolume.png 1052件 [詳細] filetemp-sensor.png 1091件 [詳細] filebroken_protosnap.png 1060件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-03-16 (日) 17:34:11 (3694d)
SmartDoc