編集履歴一覧に戻る
Makato-kanのアイコン画像

Makato-kan が 2024年05月17日11時17分38秒 に編集

コメント無し

タイトルの変更

-

コピペ不要 digisparkでDS18B20のID取得する

+

digisparkでDS18B20のID取得してエクセルに保存する

本文の変更

#### 初めに DS18B20という安価で使いやすい温度センサーがあります。 複数同時接続して使う場合はセンサーのIDを取得すると便利です。

-

IDをノートパッドなどに直接書き込めるようにしたもの作りました

+

digisparkはソフトウェアキーボードとしてPCに接続できる機能があります IDをエクセルなどに直接書き込めるようにしたもの作りました

#### 部品表 Digispark 10kΩ抵抗 なるべく小さいポリスイッチ(ポリフューズ) 配線材料 #### 配線 DigisparkのVCC,GND,P2を使います DS18B20はdataとDigisparkのP2を接続します 10kΩ抵抗はポリフューズを経由してVCCとP2を接続します #### プログラム DS18B20センサーのライブラリをインストールすると使えるサンプルプログラムをベースに 接続ピンを決め打ちにして、ソフトウェアキーボードでIDを出力するようにいじりました。   ```arduino:search-DS18B20 // FILE: oneWireSearch.ino // AUTHOR: Rob Tillaart // VERSION: 0.1.02 // PURPOSE: scan for 1-Wire devices + code snippet generator // DATE: 2015-june-30 // URL: http://forum.arduino.cc/index.php?topic=333923 // // inspired by http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html // // Released to the public domain // // 0.1.00 initial version // 0.1.01 first published version // 0.1.02 small output changes #include "DigiKeyboard.h" #include <OneWire.h> int pin = 2; //DigisparkにDS18B20を接続したピン番号 void setup() { DigiKeyboard.update(); //digitalWrite(pin, HIGH); //このプルアップでは動作しませんでした。 DigiKeyboard.print(""); findDevices(pin); } void loop() { } uint8_t findDevices(int pin) { OneWire ow(pin); uint8_t address[8]; uint8_t count = 0; if (ow.search(address)) { do { count++; for (uint8_t i = 0; i < 8; i++) { DigiKeyboard.print("0x"); if (address[i] < 0x10) DigiKeyboard.print("0"); DigiKeyboard.print(address[i], HEX); if (i < 7) DigiKeyboard.print(","); } DigiKeyboard.println(""); } while (ow.search(address)); } return count; } ``` #### 環境設定 "Arduino_IDEを使っています" ボードマネージャー ”http://digistump.com/package_digistump_index.json” を 追加してdigisparkをインストールしますが 現在リンク切れのようで  [Unofficial list of 3rd party boards support urls](https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls)に記載のある  "Digistump maintained: https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json" を基本設定に追加してdigisparkをインストールします。 #### 使い方  エクセルなどを起動して文字入力可能な状態にします  DigisparkをUSB端子に接続するとLEDが点滅し5秒後位にDS18B20のIDが表示されます。 もしもIDが途中までしか表示されない場合は→キーを何回か押すと表示されます ![制作例](https://camo.elchika.com/dbbf4e72515af2a0e3445174f1855fa9d9b0a9e8/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f66373831653764372d303336352d343131662d613663362d3663623238333931346464342f30393565363061352d366437642d343336392d393531372d303535363835343166323239/) #### 気付いた事 パソコンのUSB端子に差してから何らかの応答がDigisparkから無いとUSBのエラーになってしまうので DigiKeyboard.update();の後にDigiKeyboard.print("");を実行しています。 DS18B20のVCCとGND逆に接続して電気入れると5秒くらいでDS18B20が焦げ臭くなります 危険なのでポリスイッチなどを経由してVCCを供給するようにしましょう

+

これが便利だと感じる人はいなかったりして。。。