Stap 3: Het lezen van de uitvoer van Mitutoyo
Het zware werk-deel van de code, die de gegevensstroom leest, herassembleert het in de juiste volgorde en prints die een meting als volgt is:
int req = 5; Mic REQ lijn gaat naar pin 5 door q1 (arduino hoge trekt verzoek lijn laag)
int dat = 2; Mic Data lijn gaat naar pin 2
int clk = 3; Mic Clock lijn gaat naar 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); verzoek vastgesteldop laag
}
void loop {/ / gegevens ophalen uit mic
digitalWrite (req, hoge); set aanvraag genereren
voor (ik = 0; ik < 13; i ++) {}
k = 0;
voor (j = 0; j < 4; j ++) {}
terwijl (digitalRead(clk) == LOW) {/ / hold tot klok hoog is
}
terwijl (digitalRead(clk) == HIGH) {/ / hold tot klok laag is
}
bitWrite (k, j, (digitalRead(dat) & 0x1)); lezen databits, en omgekeerde volgorde)
}
extraheren van gegevens
myData [i] = k;
teken = mydata [4];
decimaal = mydata [11];
eenheden = mydata [12];
}
meting assembleren van bytes
char buf [7];
voor (int lp = 0; lp < 6; lp ++)
BUF [lp] = mydata [lp + 5] + '0';
BUF [6] = 0;
num=atol(BUF); gemonteerd meting, geen decimaal toegevoegd
Serial.println (num/1000, 3); decimalen toevoegen
}