Étape 3: Lecture de la sortie de Mitutoyo
La partie de soulever des objets lourds du code qui lit le flux de données, il rassemble dans le bon ordre et imprime qu'une mesure est la suivante :
int req = 5 ; MIC REQ ligne va à la broche 5 par l’intermédiaire de q1 (arduino tire haute demande de bas de ligne)
dat int = 2 ; micro ligne de données va à la broche 2
int clk = 3 ; micro ligne horloge va à la broche 3
int i = 0 ; int j = 0 ; int k = 0 ;
octet mydata [14] ;
float n ;
void setup() {}
Serial.Begin(9600) ;
pinMode (req, sortie) ;
pinMode (clk, INPUT_PULLUP) ;
pinMode (dat, INPUT_PULLUP) ;
digitalWrite(req,LOW) ; définition de demande à faible
}
void loop() {/ / récupérer des données de mic
digitalWrite (req, HIGH) ; générer une demande ensemble
pour (i = 0; i < 13; i ++) {}
k = 0 ;
pour (j = 0; j < 4; j ++) {}
même si (digitalRead(clk) == faible) {/ / jusqu'à ce que l’horloge est élevé
}
même si (digitalRead(clk) == HIGH) {/ / jusqu'à ce que l’horloge est faible
}
bitWrite (k, j, (digitalRead(dat) & 0 x 1)) ; lire les bits de données et inverser ordre)
}
extraire des données
mydata [i] = k ;
signe = mydata [4] ;
décimal = mydata [11] ;
unités = mydata [12] ;
}
Assembler les mesure de bytes
char buf [7] ;
pour (int lp = 0; lp < 6; lp ++)
buf [lp] = mydata [lp + 5] + « 0 » ;
buf [6] = 0 ;
num=ATOL(BUF) ; mesure Assemblée, sans décimale ajouté
Serial.println (num/1000, 3) ; Ajouter décimal
}