I need someone to code a sketch to interface an Ono Sokki digital linear gauge to a Arduini Serio.
[login to view URL]
[login to view URL]
I found a sketch for a digimatic caliper that might be usefull as a starting point.
In the end I need to get measurements from the gauge through the SerIO to a serial port.
I will be using a VB.net program to trigger the measurement and record the dimension from the gauge.
See example below.
This is a very basic Arduino code that should be compatible with several calliper data protocols.
There are commas in between each value to make it easy to use .CSV files to import the data into spreadsheets.
The main requirement of this code is that the data is read on the falling edge of a clock pulse.
Hopefully this code should mean when you connect your Arduino to the computer
and use the serial monitor at 115200 Baud you will get sensible looking binary out.
Trouble shooting:
If the length of the binary strings changes a lot you may have the clock and data pins the wrong way around.
Code:
//Simple Digital Calliper Reader
//See [login to view URL]
// Pin Declarations
int dataIn = 11;
int clockIn = 12;
// Variables
int clock = 1;
int lastClock = 1;
unsigned long time = 0;
unsigned long timeStart = 0;
int out = 0;
void setup() {
// Pin Set Up
pinMode(dataIn, INPUT);
pinMode(clockIn, INPUT);
[login to view URL](115200);
[login to view URL]("Ready: ");
}
void loop(){
lastClock = clock;
clock = digitalRead(clockIn);
if (lastClock == 1 && clock == 0){
out = digitalRead(dataIn)+digitalRead(dataIn)+digitalRead(dataIn); // Tripple sampling to remove glitches
if((micros() - time) > 800){
[login to view URL](" ");
}
else if((micros() - time) > 400){
[login to view URL](" ");
}
if (out > 1){
[login to view URL]("1");
}
else{
[login to view URL]("0");
}
[login to view URL](",");
time = micros();
}
}
A great reference on reading digital callipers can be found at:
[login to view URL]