| 107 | === TinyWireM === |
| 108 | |
| 109 | 今回は ATTiny85 + ADT7410なので、前回と同じようにADT7410のサンプルソースを[https://github.com/adafruit/TinyWireM TinyWireM]に対応させる方法で作成する。[[br]] |
| 110 | 前回と違うのは、TinyWireMが"ライブラリマネージャー"でインストールできるようになっている点。[[br]] |
| 111 | ライブラリマネージャーは、メニューから"スケッチ -> ライブラリをインクルード -> ライブラリを管理"で表示されるダイアログで"tinywire"で検索すると表示される。 |
| 112 | |
| 113 | [[Image(arduino_lib.png,400)]] |
| 114 | |
| 115 | これをインストール。 |
| 116 | |
| 117 | === ADT7410 === |
| 118 | |
| 119 | ADT7410用のライブラリもライブラリマネージャーでインストールできるが、使われているのがATMega用のWire(I2C)ライブラリなので、そのままでは使用できない。[[br]] |
| 120 | なので、これを基にWireをTinyWireMに変更したライブラリを作成した。[[br]] |
| 121 | |
| 122 | 元のライブラリは[https://github.com/FaBoPlatform/FaBoTemperature-ADT7410-Library FaBoPlatform/FaBoTemperature-ADT7410-Library][[br]] |
| 123 | 作成したライブラリファイルは[attachment:ADT7410-TinyWire-Library.zip ADT7410-TinyWire-Library.zip]として置いておくので、必要ならダウンロードして使用すること。 |
| 124 | |
| 125 | === Firmware === |
| 126 | |
| 127 | Firmwareは、以前作成したものとほぼ同じ。[[br]] |
| 128 | |
| 129 | {{{ |
| 130 | #include <TinyWireM.h> |
| 131 | #include <USI_TWI_Master.h> |
| 132 | #include <SoftwareSerial.h> |
| 133 | #include <ADT7410_TinyWireM.h> |
| 134 | |
| 135 | ADT7410_TinyWireM ADT7410; |
| 136 | SoftwareSerial SwSerial(3, 4); // RX, TX |
| 137 | |
| 138 | void setup() { |
| 139 | SwSerial.begin(9600); |
| 140 | ADT7410.begin(); |
| 141 | } |
| 142 | |
| 143 | void loop() { |
| 144 | float temp = ADT7410.readTemperature(); |
| 145 | SwSerial.print("T:"); |
| 146 | SwSerial.print(temp, 4); |
| 147 | SwSerial.print("\r\n"); |
| 148 | delay(5000); |
| 149 | } |
| 150 | }}} |
| 151 | |
| 152 | 5秒毎にセンサから読み取ったデータを温度に変換し、文字列としてUSBシリアルに出力する。[[br]] |
| 153 | 以前のソースコードでは、メモリの使用量の問題でprintを使わずに自前でfloatを出力していたが、新しいバージョンではほとんど変わらなかったので、ソースコードを簡素化した。 |