Gränsyta för en Digital mikrometer till en Arduino & VGA-skärm (3 / 7 steg)
Steg 3: Läsa Mitutoyo utdata
Den tunga lyft delen av koden, som läser datan strömmer, slår samman det i rätt ordning och utskrifter en mätning är följande:
int req = 5; mic REQ linjen går till stift 5 genom q1 (arduino hög drar begäran linje låg)
int dat = 2; mic datalinje går till stift 2
int clk = 3; mic klocka linjen går till stift 3
int jag = 0; int j = 0; int k = 0;
byte mydata [14].
float num;
void setup() {
Serial.BEGIN(9600);
pinMode (req, produktionen);
pinMode (clk, INPUT_PULLUP);
pinMode (dat, INPUT_PULLUP);
digitalWrite(req,LOW); ställa in begäran vid låga
}
void loop() {/ / få data från mic
digitalWrite (req, hög); Skapa uppsättning begäran
för (jag = 0; jag < 13; i ++) {
k = 0;
för (j = 0; j < 4; j ++) {
medan (digitalRead(clk) == låg) {/ / håll tills klockan är hög
}
medan (digitalRead(clk) == hög) {/ / håll tills klockan är låg
}
bitWrite (k, j, (digitalRead(dat) & 0x1)); Läs databitar och omvänd ordning)
}
extrahera data
MYDATA [i] = k;
tecken = mydata [4].
decimal = mydata [11].
units = mydata [12].
}
montera mätning från bytes
char buf [7].
för (int lp = 0; lp < 6; lp ++)
BUF [lp] = mydata [lp + 5] + '0';
BUF [6] = 0;
NUM=Atol(BUF); monterade mätning, inga decimaler lagt till
Serial.println (num/1000, 3). Lägg till decimal
}