Paso 3: Leyendo la salida de Mitutoyo
La parte de levantar cosas pesadas del código, que lee la secuencia de datos, lo vuelve a ensamblar en el orden correcto y las impresiones que una medición es el siguiente:
int req = 5; micro línea REQ va al pin 5 a través de q1 (arduino tira alta solicitud de línea baja)
int dat = 2; micro línea de datos va al pin 2
int clk = 3; micro línea de reloj va al pin 3
int i = 0; int j = 0; int k = 0;
mydata Byte [14];
num de flotador;
void setup() {}
Serial.Begin(9600);
pinMode (req, salida);
pinMode (clk, INPUT_PULLUP);
pinMode (dat, INPUT_PULLUP);
digitalWrite(req,LOW); sistema de solicitud en baja
}
void loop() {/ / obtener los datos del mic
digitalWrite (req, HIGH); generar solicitud set
para (i = 0; i < 13; i ++) {}
k = 0;
para (j = 0; j < 4; j ++) {}
mientras que (digitalRead(clk) == LOW) {/ / hasta que el reloj es alto
}
mientras que (digitalRead(clk) == HIGH) {/ / hasta que el reloj es baja
}
bitWrite (k, j, (digitalRead(dat) y 0 x 1)); leer bits de datos e invertir orden)
}
extraer datos
mydata [i] = k;
signo = mydata [4];
decimal = mydata [11];
unidades = mydata [12];
}
montar medida de bytes
char buf [7];
para (int lp = 0; lp < 6; lp ++)
buf [lp] = mydata [lp + 5] + '0';
buf [6] = 0;
Num=atol(BUF); medición montado, ninguna posición decimal agregado
Serial.println (num/1000, 3); Añadir decimales
}