Měření runtime motoru

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
Queb
Příspěvky: 6
Registrován: 26 bře 2019, 21:20
Reputation: 0

Měření runtime motoru

Příspěvek od Queb » 21 lis 2019, 11:53

Ahoj, jsem začátečník a potřeboval bych poradit. Snažím se vytvořit více méně "stopky" abych mohl říct jak dlouho mi běží DC motor. Chtěl bych, aby program vypsal každé 2 sekundy že motory běží.

Kód: Vybrat vše

#include <AFMotor.h>
AF_DCMotor motorL(3);
AF_DCMotor motorR(4); 

unsigned long MovementTimer = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
 Forward();
 if ((millis()- MovementTimer) > 1500)
 {
    Serial.println("moving 1.5 sec");
  }
}

void Forward()
{
  MovementTimer = millis();
  motorL.setSpeed(85);
  motorR.setSpeed(85);
  motorL.run(FORWARD);
  motorR.run(FORWARD);
}
Zkoušel jsem to tímto způsobem, ale program nic nevypíše.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Měření runtime motoru

Příspěvek od KamilV » 21 lis 2019, 12:12

Protože v každém loopu voláš Forward();
takže se ti neustále posouvá MovementTimer a o řádek níž ta podmínka nemá šanci nikdy být splněna.

Když si zavoláš Forward() pouze jednou např. v setup(), uvidíš rozdíl.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: luger a 21 hostů