Mitutoyoのデジマチック(デジタルノギス)の制御信号から信号を取り出し表示する。(リモートビュー?)
どなたかも、やられているのを見かけましたが、手元に有るMitutoyoのデジタルノギスもデジタル出力が付いていました。実は使いにくいなぁと思って、あまり使ってませんでした。何がって?、そりゃデジタル表示部がノギスの目盛りの上に付いてるからです。液晶なので、そこを見ないと見えないし、上からだと見えにくい。被測定物から外せば当然見えますが、、、外す際にメモリ狂いますよね。これはデジタルでしか使えない。。。
なので、アナログのノギスをいつも使っています。デジタル部が取り外せれば良いのに。。。ああ、これを使えば、取り出せるのか。
ということで。。。
仕様
たぶんこれですね。多少型番ちごても、おなじですやろ。 99mad014m4_digimatic_caliper.pdf すげー名前や。
ピン配列 | 接続ピン配列 |
タイミング図 | データ構造 |
動作波形
REQをGNDにすると、データが繰り返し出てくるようだ | 1個分のデータ |
回路
ソース
受信パルスはポート割り込みで処理
#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");
}