準備 †
- 専用のライブラリは特にないので、デジタルIOポートとアナログIOポートを読み書きして利用する。
ピン配置 †
- デジタル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で切り替え) |
初期化 †
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待つ
}
- 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:3054 / Today:1 / Yesterday:0
|