| | 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を出力していたが、新しいバージョンではほとんど変わらなかったので、ソースコードを簡素化した。 |