*準備 [#n38f875b] -専用のライブラリは特にないので、デジタルIOポートとアナログIOポートを読み書きして利用する。 *ピン配置 [#f4b08063] -デジタルIOポート |Arduinoポート|接続先|機能| |6|SW1|プッシュスイッチ| |7|SW2|プッシュスイッチ| |8|SW3|プッシュスイッチ| |10|LED2|LED| |11|SOUNDER|圧電サウンダー| |13|LED1|LED| -アナログIOポート |Arduinoポート|接続先|機能| |A4|PHOTO-TR|光センサ| |A5|TEMP/VR2|温度センサ、可変抵抗器(JP5で切り替え)| *初期化 [#z41b869e] -各機能の説明を参照 *LED [#zdeb37b0] -デジタルの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待つ } *圧電サウンダ [#x0b9aa63] -デジタルの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); } *プッシュスイッチ [#ycc8452c] -デジタルの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を点灯 } } *光センサ [#c3ad283b] -アナログのA4ポートを読み込むことでセンサの値を読むことができる。 -サンプルコード(以下を参照) *温度センサ [#sfa314f0] -アナログのA5ポートを読み込むことでセンサの値を読むことができる。 -ジャンパーピンJP5はTEMP側に設定。 -サンプルコード([[マイクロファンラボ>http://www.microfan.jp/clcd-booster/sensorのサイトより]]) -サンプルコード([[マイクロファンラボ>http://www.microfan.jp/clcd-booster/sensor]]のサイトより) #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) ; } *可変抵抗器 [#i15e84d4] -アナログのA5ポートを読み込むことでセンサの値を読むことができる。 -ジャンパーピンJP5はVR側に設定。 ---- &size(12){Total:&counter(total); / Today:&counter(today); / Yesterday:&counter(yesterday);};