スポンサーリンク

準備

  • 専用のライブラリは特にないので、デジタルIOポートとアナログIOポートを読み書きして利用する。

ピン配置

  • デジタルIOポート
    Arduinoポート接続先機能
    6SW1プッシュスイッチ
    7SW2プッシュスイッチ
    8SW3プッシュスイッチ
    10LED2LED
    11SOUNDER圧電サウンダー
    13LED1LED
  • アナログIOポート
    Arduinoポート接続先機能
    A4PHOTO-TR光センサ
    A5TEMP/VR2温度センサ、可変抵抗器(JP5で切り替え)

初期化

  • 各機能の説明を参照

LED

  • デジタルの10pinと13pinにHIGH/LOWを書き込むことで点灯/消灯させることができる。
  • サンプルコード
    #define led1 13 //ピン番号を定義
    #define led2 10 //ピン番号を定義
    
    void setup()
    {
      pinMode(led1, OUTPUT); //ピンを出力に設定
      pinMode(led2, OUTPUT); //ピンを出力に設定
    }
    
    void loop()
    {
      digitalWrite(led1, HIGH); //LED1を点灯
      digitalWrite(led2, LOW);  //LED2を消灯
      delay(100); //500ms待つ
      digitalWrite(led1, LOW);  //LED1を消灯
      digitalWrite(led2, HIGH); //LED2を点灯
      delay(100); //500ms待つ
    }

圧電サウンダ

  • デジタルの11pinにHIGH/LOWを書き込むことで音を鳴らすことができる。
  • サンプルコード
    • 自分でHIGH/LOWを書き込む
      #define buzzer 11 //ピン番号を定義
      
      void setup()
      {
        pinMode(buzzer, OUTPUT); //ピンを出力に設定
      }
      
      void loop()
      {
        digitalWrite(buzzer, HIGH); //buzzerピンをHIGH
        delayMicroseconds(1900);    //1.9ms待つ
        digitalWrite(buzzer, LOW);  //buzzerピンをLOW
        delayMicroseconds(1900);    //1.9ms待つ
      }
  • PWM出力を使用する
    #define buzzer 11 //ピン番号を定義
    
    void setup()
    {
      pinMode(buzzer, OUTPUT); //ピンを出力に設定
    }
    
    void loop()
    {
      analogWrite(buzzer, 100);  //PWM出力 0(常にオフ)から255(常にオン)の間のデューティー比 
    }
  • toneライブラリを利用する
    #include "pitches.h" //toneライブラリをインクルード
    #define buzzer 11 //ピン番号を定義
    
    void setup()
    {
      //特になし
    }
    
    void loop()
    {
      tone(buzzer, NOTE_C4, 250); //ド
      delay(250 * 1.30);
      tone(buzzer, NOTE_D4, 250); //レ
      delay(250 * 1.30);
      tone(buzzer, NOTE_E4, 250); //ミ
      delay(250 * 1.30);
      tone(buzzer, NOTE_F4, 250); //ファ
      delay(250 * 1.30);
      tone(buzzer, NOTE_G4, 250); //ソ
      delay(250 * 1.30);
      tone(buzzer, NOTE_A4, 250); //ラ
      delay(250 * 1.30);
      tone(buzzer, NOTE_B4, 250); //シ
      delay(250 * 1.30);
      tone(buzzer, NOTE_C5, 250); //ド
      delay(250 * 1.30);
    }

プッシュスイッチ

  • デジタルの6~8ピンの状態を読むことでスイッチの状態を得ることができる。
  • サンプルコード
    #define sw1 6 //ピン番号を定義
    #define sw2 7 //ピン番号を定義
    #define sw3 8 //ピン番号を定義
    #define led1 13 //ピン番号を定義
    
    void setup() {
      pinMode(sw1, INPUT);   //ピンを入力に設定
      pinMode(sw2, INPUT);   //ピンを入力に設定
      pinMode(led1, OUTPUT); //ピンを出力に設定
    }
    
    void loop() {
      if (digitalRead(sw1) == LOW) {
        digitalWrite(led1, LOW); //SW1が押されていたらLED1を消灯
      }
      if (digitalRead(sw2) == LOW) {
        digitalWrite(led1, HIGH); //SW2が押されていたらLED1を点灯
      }
    }

光センサ

  • アナログのA4ポートを読み込むことでセンサの値を読むことができる。
  • サンプルコード(以下を参照)

温度センサ

  • アナログのA5ポートを読み込むことでセンサの値を読むことができる。
  • ジャンパーピンJP5はTEMP側に設定。
  • サンプルコード(マイクロファンラボのサイトより)
    #include <LiquidCrystal.h>
    #define  VCC  5.03  // 基準電圧
    #define  PHOTO_SENSOR  4  // アナログ4
    #define  TEMP_SENSOR  5   // アナログ5
    
    LiquidCrystal clcd(4, 3, 14, 15, 16, 17); // Arduino-0017以降
    
    void setup()
    {
      clcd.begin(16, 2) ; // Arduino-0017以降は追加
      clcd.clear() ;
    }
    
    void loop()
    {
      int v ;
      float temp ; // 温度の計算は実数で
    
      clcd.clear() ;
    
      v = analogRead(PHOTO_SENSOR) ;
      clcd.setCursor(0,0) ;
      clcd.print("\261\266\331\273 ") ;  // アカルサ
      clcd.print(v) ;
    
      v = analogRead(TEMP_SENSOR) ;
      clcd.setCursor(0,1) ;
      clcd.print("\265\335\304\336 ") ;  // オンド
      clcd.print(v) ;
    
      temp = VCC / 1024 * v ;  // 読み取った値を電圧に換算
      temp -= 0.4 ;  // 温度センサーの0度のオフセット:400mV
      temp /= 0.01953 ; // 1度あたり19.53mVの電圧増加
      clcd.setCursor(9,1) ;
      clcd.print(temp) ; // 小数点以下2桁まで出るみたいだけど精度的には意味はない
      clcd.print("\337C") ; // 度C
    
      delay(100) ;
    }

可変抵抗器

  • アナログのA5ポートを読み込むことでセンサの値を読むことができる。
  • ジャンパーピンJP5はVR側に設定。

Total:2344 / Today:1 / Yesterday:0

スポンサーリンク


トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-13 (日) 23:42:42