Hall effekt sensorer 2: Synkroniserar rörelse (4 / 6 steg)
Steg 4: Synkronisera räknas
Detta är en subrutin som synkroniserar räkningarna. Det tar skillnaden mellan räkningarna, och beroende på hur stort det är, det kommer att sakta ner andra manöverdonet med ett visst belopp att kompensera. Se kommentarerna i koden för bättre förklaringar av varje rad. Det finns vissa Serial.prints() ingår att kan ha kommentarerna bort för felsökning ändamål.
void FWDsync() {
int diff = räkna [0] - räkna [1], //calculate skillnad
diff = abs (diff); //remove negativa
Serial.Print ("Diff -"), Serial.print(diff);
om (diff > = 10)
{
om (räkna [0] > räkna [1]) spd [0] = FWDspd - 10. om manöverdonet 0 är snabbare, sakta ner
annat spd [2] = FWDspd - 10. annat, långsam manöverdonet 1
om (diff > = 20)
{
om (räkna [0] > räkna [1]) spd [0] = FWDspd - 20; om manöverdonet 0 är snabbare, sakta ner
annat spd [2] = FWDspd - 20; annat, långsam manöverdonet 1
om (diff > = 30)
{
om (räkna [0] > räkna [1]) spd [0] = FWDspd - 30. om manöverdonet 0 är snabbare, sakta ner
annat spd [2] = FWDspd - 30. annat, långsam manöverdonet 1
om (diff > = 40)
{
om (räkna [0] > räkna [1]) spd [0] = 0; om också ut av sync, sluta manöverdonet
annat spd [2] = 0; om också ut av sync, sluta manöverdonet
} //end om diff > 40
} //end om diff > 30
} //end om diff > 20
} //end om diff > 10
annat spd [0] = spd [2] = MaxOmdr; om inte av sync, tillämpa full fart
Serial.Print ("ÄRV1 räknas -"), Serial.print(count[0]);
Serial.Print ("ÄRV2 räknas -"), Serial.print(count[1]);
} //end FWDSync