デジタルノギス

ee9king に投稿

Mitutoyoのデジマチック(デジタルノギス)の制御信号から信号を取り出し表示する。(リモートビュー?)

どなたかも、やられているのを見かけましたが、手元に有るMitutoyoのデジタルノギスもデジタル出力が付いていました。実は使いにくいなぁと思って、あまり使ってませんでした。何がって?、そりゃデジタル表示部がノギスの目盛りの上に付いてるからです。液晶なので、そこを見ないと見えないし、上からだと見えにくい。被測定物から外せば当然見えますが、、、外す際にメモリ狂いますよね。これはデジタルでしか使えない。。。

なので、アナログのノギスをいつも使っています。デジタル部が取り外せれば良いのに。。。ああ、これを使えば、取り出せるのか。

ということで。。。

仕様

たぶんこれですね。多少型番ちごても、おなじですやろ。  99mad014m4_digimatic_caliper.pdf すげー名前や。

ピン配列 接続ピン配列
タイミング図 データ構造

動作波形

REQをGNDにすると、データが繰り返し出てくるようだ 1個分のデータ

 

回路

nogisu-Project.pdf

ソース

受信パルスはポート割り込みで処理

#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{
//	if( (P2IN&BIT2)==BIT2 )P2OUT &= ~BIT2;
	P2OUT &= ~BIT2;
	P2IFG &= ~0x02;			// P2.1 IFG cleared
	ndata[byte_count] |= ( (P2IN&0x01)<<bit_count);
	if(bit_count<3){
		bit_count++;
	} else {
		bit_count=0;
		byte_count++;
	}
	if(byte_count>13){
		byte_count=1;
		read_stat=0;	// 読み込み終了
	}
}

読み込みI2C-LCDへの送信部

			for(i=7;i<(11-ndata[12]);i++){	// ndata[12] sub-decimal
				if( LeadZero==1 ){
					if( ndata[i]==0 ){
						i2c_send(0x20);
					} else {
						i2c_send(ndata[i]+0x30);
						LeadZero=0;
					}
				} else {
					i2c_send(ndata[i]+0x30);
				}
			}
			i2c_send( ndata[ 9]+0x30 );
			i2c_send( 0x2E );		// "."
			i2c_send( ndata[10]+0x30 );
			i2c_send( ndata[11]+0x30 );
			if(ndata[13]==0){
				lcd_puts("mm");
			} else {
				lcd_puts("in");
			}