Skip to content

Instantly share code, notes, and snippets.

@mia-0032
Created September 10, 2012 06:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mia-0032/3689146 to your computer and use it in GitHub Desktop.
Save mia-0032/3689146 to your computer and use it in GitHub Desktop.
アクリル板でアッカリーンのArduinoに書き込んでいるプログラム
#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