Created
September 10, 2012 06:03
-
-
Save mia-0032/3689146 to your computer and use it in GitHub Desktop.
アクリル板でアッカリーンのArduinoに書き込んでいるプログラム
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Wire.h> | |
/** | |
* AquesTalk picoをしゃべらせるクラス(I2C接続) | |
* @param int address デバイスのアドレスを指定 | |
*/ | |
class AquesTalk { | |
private: | |
int address; | |
public: | |
AquesTalk(int address){ | |
Wire.begin(); | |
AquesTalk::address = address; | |
} | |
/** | |
* 発音する文字列を渡すとしゃべる。文字列のフォーマットについてはデータシート参照。 | |
* @param char text[] しゃべらせる文字列 | |
*/ | |
void talk(char text[]){ | |
Wire.beginTransmission(address); | |
Wire.write(text); | |
Wire.write("\r"); | |
Wire.endTransmission(); | |
} | |
}; | |
/** | |
* スイッチが押されているか判定する | |
* @param int pin スイッチが接続されているピン番号 | |
*/ | |
class Switch{ | |
private: | |
int pin; | |
public: | |
Switch(int pin){ | |
Switch::pin = pin; | |
pinMode(pin, INPUT_PULLUP); | |
} | |
//スイッチがHIGHかどうか | |
boolean isHigh(){ | |
return digitalRead(pin) == HIGH; | |
} | |
//スイッチがLOWかどうか | |
boolean isLow(){ | |
return digitalRead(pin) == LOW; | |
} | |
}; | |
/** | |
* LEDを操作する | |
* @param int pin LEDが接続されているピン番号 | |
*/ | |
class Led{ | |
private: | |
int pin; | |
public: | |
Led(int pin){ | |
Led::pin = pin; | |
pinMode(pin, OUTPUT); | |
} | |
//LEDを光らせる | |
void on(){ | |
digitalWrite(pin, HIGH); | |
} | |
//LEDを消す | |
void off(){ | |
digitalWrite(pin, LOW); | |
} | |
}; | |
//各インスタンスを生成する | |
AquesTalk yukkuri(0x2E); | |
Switch sw(6); | |
Led swled(7); | |
Led akari(9); | |
Led akkarin(8); | |
void setup() | |
{ | |
akari.on(); | |
yukkuri.talk("yuruyuri"); | |
delay(1000); | |
yukkuri.talk("ha,jimaruyo-"); | |
delay(1000); | |
swled.on(); | |
akkarin.off(); | |
} | |
void loop() | |
{ | |
if(sw.isLow()){ | |
akari.off(); | |
swled.off(); | |
akkarin.on(); | |
yukkuri.talk("a,;kka;ri-n"); | |
delay(5000); | |
akari.on(); | |
swled.on(); | |
akkarin.off(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment