*準備 [#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);};