Igaging and Mitutoyo Calipers and Micrometers as Input devices

Want to build your own DRO system? Interface your Arduino to a Igaging or Mitutoyo Caliper, Mic, or scale.

int req = 5; //mic REQ line goes to pin 5 through q1 (arduino high pulls request line low)

int dat = 2; //mic Data line goes to pin 2

int clk = 3; //mic Clock line goes to pin 3

int i = 0; int j = 0; int k = 0;

byte mydata[14];

float num;

void setup() {

Serial.begin(9600);

pinMode(req, OUTPUT);

pinMode(clk, INPUT_PULLUP);

pinMode(dat, INPUT_PULLUP);

digitalWrite(req,LOW); // set request at LOW

}

void loop() { // get data from mic

digitalWrite(req, HIGH); // generate set request

for(i = 0; i < 13; i++ ) {

k = 0;

for (j = 0; j < 4; j++) {

while( digitalRead(clk) == LOW) {// hold until clock is high

}

while( digitalRead(clk) == HIGH) {// hold until clock is low

}

bitWrite(k, j, (digitalRead(dat) & 0x1)); // read data bits, and reverse order )

}

// extract data

mydata[i] = k;

// sign = mydata[4];

// decimal = mydata[11];

// units = mydata[12];

}

// assemble measurement from bytes

char buf[7];

for(int lp=0;lp<6;lp++)

buf[lp]=mydata[lp+5]+'0';

buf[6]=0;

num=atol(buf); //assembled measurement, no decimal place added

Serial.println(num/1000, 3); //add decimal

}

micrometer_schematic.jpg