方向に注意すること。切り欠きまたは●が1番ピンの目印。
最も簡単なシリアル通信で使うのは次のピン
ピン番号 | 名称 | 説明 |
2 | RXD | シリアルデータ受信 |
3 | TXD | シリアルデータ送信 |
7,20 | VCC | +5V |
8,22 | GND | Ground(0V) |
12(ATP2011) | AOUT | 音声出力 |
15(ATP2012) | AOUT | 音声出力 |
I2CとSPIも可能
スピーカーには、AOUTとGNDを接続する。
ピン番号 | 名称 | 接続 |
2 | RXD | ArduinoのTxに接続。下記の例を使うのであれば、11番ピンへ。 |
3 | TXD | ArduinoのRxに接続。下記の例を使うのであれば、10番ピンへ。 |
7,20 | VCC | Arduinoの5Vに接続 |
8,22 | GND | ArduinoとスピーカーのGNDに接続 |
12(ATP2011) | AOUT | スピーカーに接続 |
15(ATP2012) | AOUT | スピーカーに接続 |
シリアル通信を用いて、PCから入力した文字を音声出力する。 PCとの間の通信もシリアル通信なので、Arduinoと音声合成LSIの間はSoftwareSerialを用いる。 シリアルモニタを起動し、通信速度9600Bps(デフォルト)、行末はCRのみと設定する。ローマ字で入力して「送信」ボタンをクリックすれば、音声が出力される。
#include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX void setup() { Serial.begin( 9600 ); pinMode( 10, INPUT ); pinMode( 11, OUTPUT ); mySerial.begin( 9600 ); mySerial.println( "?" ); } void loop() { if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } }
音声データについては基本は小文字のローマ字入力だが、(日本語の高低)アクセントやポーズを入れることができる。詳しくは、 ATP3011 ATP3012 を見ること。