0.60mm と−0.60mmでの出力波形です
0.60mm と−0.60mmでの出力波形です
昔amazonで買った1500円程の安いデジタルノギス
電池の横に蓋が有って開けるとUSBっぽい4端子でのコネクタが有るんだけど。これの接続ケーブルって売ってないので諦めてたのですが、ネットで見ると読めそう。最近の電子工作のマイブームでトライ。
まずは信号の確認用に信号取り出し。専用のコネクタなんて無いので、ケーブル無理矢理ハンダ付け
(測定後この配線全て逆になってることに気付きました)
USBのメスコネクタ分解して両サイド削れば差し込み出来るかもとは思ったのですが、まずは半田で無理やりくっつけちゃいました。
このデジタルノギスの場合正しくは右から
GND 写真では赤ケーブルつないでしまいました 普通は黒です
Data
Clock
Vcc(1.6v) 写真では黒ケーブル着けてますが、後で取り外しました
でした
お城に繋いで測定
デジタル信号が出ている様ですが電圧が1.5~1.6vですね。電池がLR44なのでそのままでしょうか
クロックは100μsで6ブロック 120msの周期で出力されていました。
プラス端子は接続すると電池無くても一応動くように見えたのですが。電圧が3vだと壊れはしませんでしたがzeroが設定できませんでした。
300k程の抵抗入れて電圧1.5v程度に落としたつもりですがzeroが合いません。結局電池入れたらzero設定できたのですが、結局電池入れるならプラス線は使わないことにしました。
ESP32入力用には信号電圧を3Vまで上げます。
ESP32は1.6vだとデジタル入力信号ではheight/Lowの中間不安定領域なので。
参考 ESP32のGPIO入力について
波形もそのまま無事3vになりました 当然ながらプラスとマイナスは逆転しますがOK
さてさて後はデジタル値の読取です。
水色がデータで黄色がクロックです
0.07mmだとこんな感じのクロックとデータの波形です。
最初の4bitで111=7 なのでそのまま二進数で24bit表示でした
後はこのデータの取込みプログラム C初心者の私にはここが難題で。
ググルとラジオペンチさんのブログにドンピシャいいのがありました。
Arduinoで作成されていましたのでほぼ使えそう。参照させて(パクらせて)頂きました
コンパイルして書込み無事動作しました。
USBポートには垂れ流しで値出力しているので、Excelなどでボタンクリックでデータ取り込みも出来そうです。
スケッチはこちら
/*******************************************
ESP32 Display SSD1306
デジタルノギスターデータ取得 GPIO34 GPIO35
Ver01 20220130 URK
****************************************/
#define VerNo "T02"
#include <stdio.h>
#include <Wire.h>
#include "SSD1306.h" //ディスプレイ用ライブラリを読み込み
SSD1306 display(0x3c, 21, 22); //SSD1306インスタンスの作成(I2Cアドレス,SDA,SCL)
int clockPin = 34; // クロック入力ピン番号(Trで反転)
int dataPin = 35; // データ入力ピン番号(Trで反転)
float data; //デジタルノギス値
void setup() {
Serial.begin(115200);
pinMode(clockPin, INPUT);
pinMode(dataPin, INPUT);
Serial.print("\n---------------\n");
display.init(); //ディスプレイを初期化
Serial.println("Ver:" + String(VerNo));
Serial.println("Use G34,G35");
}
void loop() {
display.clear();
data = ReadCaliper(); // ノギスからデータを読む
data = data / 100.00;
//画面表示
display.setFont(ArialMT_Plain_10); //フォントを設定 10,16,24
display.drawString(110, 0, VerNo); //Rev.No
display.setFont(ArialMT_Plain_24); //フォントを設定 10,16,24
display.drawString(0, 36, String(data,2)); //LCD表示
display.display();
Serial.println(String(data, 2)); //シリアルポート出力
}
/*********************************************
ノギスからデータ読んで値をintで返す関数
参照:ラジオペンチさん参照 http://radiopench.blog96.fc2.com/blog-entry-324.html
*********************************************/
int ReadCaliper() {
boolean dataStarted = false;
unsigned long t0, bitOpr, oprResult;
int n, outData;
bitOpr = 0x00000001; // ビット操作オペレータ
oprResult = 0x00000000;
// データ転送開始まで待つ
while (dataStarted == false) {
t0 = micros(); // タイミングを記録
while (digitalRead(clockPin) == LOW) { // クロックピンがLOWの期間を検出
}
if (micros() >= t0 + 1000) { // LOWが1mS以上続いていたらデータ開始とみなす
dataStarted = true; // 但し、micros は70分でゼロに戻るのでその時は取りこぼす、ゴメン!
}
} // クロックがHIGHになりデータ転送が始まる
// データのビット列を読み込み
for (n = 1; n <= 24; n++) { // 24ビット読み出しループ
while (digitalRead(clockPin) == HIGH) { // クロックピンがLOWになるまで待つ
}
if (digitalRead(dataPin) == LOW) {
oprResult = oprResult | bitOpr; // 1(負論理なのでLOW)だったらビットを立てる
}
if ( n != 24 ) { // 最後のビットでなければ
bitOpr = bitOpr << 1; // ビット操作オペレータを左にシフト
while (digitalRead(clockPin) == LOW) { // クロックがHIGHになるまで待つ
}
}
}
// データを取り出しint型に整形
outData = oprResult; // データを16ビットint変数に代入
if ( (oprResult & 0x00100000) != 0 ) { // 負の値のフラグ(21ビット目)が立っていたら
outData = 1048576-outData;
}
return outData; // 値を返して関数終了
}
エリア地図で見る限り以前はパートナー回線だったけど現在は普通に4GLTEエリアにやっとなったと思ったけど、でも機内モードON/offで回線再接続やってみても、パートナー回線状態。
速度も1Mbps切る状態。まあ家でやってる分には光回線でWifiなので200Mbps程有るので良いのだけれど、外に出ると全くダメ

iPhoneでの設定確認
設定⇨モバイル通信⇨ネットワーク選択
初期設定で自動にしていたのでまずはここをoffに
そうすると接続できる電波が表示されると言う事で確認。44011がRakutenのPLMN番号と言うことで、確認してみると
Rakutenは2つ表示されてるけど44011は有りません
まあRakutenが選択されているのでまあいいかで、speedtest
いつもにこんな状態
でもねRakuteってもう一つ有ったので試しに変えてみようで変更
インスタントコーヒーいつも適当に入れてるけど、今日はちゃんと計量してから入れてみた。
「1〜2gで140ccが適量です」って書いてあるし。一回やってみないといつもの適当が如何だったかもわからないし。
まずはコップ乗せて空重量0でセットしてインスタントコーヒー2g スプーン2杯程度。
普段は入れ物から直接パパっと振り入れる感じなので1.99g
案外少ない感じ。

お湯沸かして140cc =140gで
これ難しいよまあ10cc程度オーバーしたけどいいか。
でよくかき混ぜて。
おお、量をまじめに測ると ちゃんとおいしい。
いつもは多過ぎた感じ。
ちなみにこのカップで普通に入れると250ccだから、インスタントコーヒー次回は3~3.6gと言うことで
駐車場に置いていたセンサーライト3年ほど前に購入した1つ点灯しなくなったので分解して遊んでみました。太陽電池まだ何かに使えるかなって思いながら。
太陽電池部分:普通簡単に壊れないよね。
LED部:3V以上に上げるとしっかり光ります。太陽電池に直結すればちゃんと光ります。
バッテリー::あれっこれリチウムイオン電池18650。安いNiH電池入ってると思ってた。
電圧も4v以上あるし、LED直接続しても光るし使える。
100Ωの抵抗入れてLEDに接続してどのくらい持つかなあってやってみたら10時間ほど朝になってもまだ明るく光ってました。朝には3.5Vまで電圧下がってたけど3V切ると多分LEDのところで電流流れなくなるから過放電もないのかなあ。
一旦取り外してXTARで確認。フル充電放電再充電でたぶん1日以上かかりそう。とりあえずは充電もできてるので。
と言う事で壊れているのはボード部分の様で。
こりゃ〜、ガーデンライトみたいに単純じゃあないし、焦電センサーもついてるし、プッシュスイッチでのモード切替もあるし、Li電池だから充電回路も入ってるので、私には修理無理ですね。
Li電池だと充放電回路入れないと危ないし。
でも今これって4〜6個セットだと1つ¥500〜600程度で新品購入できるんだよね。
















