Localize prompts and fix seat belt logic
Replace English serial messages with Polish, rename `prevUpdate` to `prevEngineUpdate` for clearer engine timing, simplify RFID checks by removing unused variables, and correct seat‑belt logic to reset when distance ≥ 200 cm.
This commit is contained in:
+10
-14
@@ -13,7 +13,7 @@ Sonar sonar(TRIG_AND_ECHO_PIN, SONAR_MAX_DIST_CM);
|
|||||||
RFIDReader rfid(SS_PIN, RST_PIN);
|
RFIDReader rfid(SS_PIN, RST_PIN);
|
||||||
Engine engine(THROTTLE_PIN, CLUTCH_PIN, BRAKE_PIN);
|
Engine engine(THROTTLE_PIN, CLUTCH_PIN, BRAKE_PIN);
|
||||||
|
|
||||||
unsigned long prevUpdate = 0;
|
unsigned long prevEngineUpdate = 0;
|
||||||
bool carEnabled = false;
|
bool carEnabled = false;
|
||||||
unsigned long prevSonarUpdate = 0;
|
unsigned long prevSonarUpdate = 0;
|
||||||
bool seatBelts = false;
|
bool seatBelts = false;
|
||||||
@@ -21,18 +21,18 @@ bool seatBelts = false;
|
|||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
|
|
||||||
Serial.println(F("Enter car mass in kg (e.g. 1200):"));
|
Serial.println(F("Podaj wagę samochodu w kg (np. 1200):"));
|
||||||
while (true) {
|
while (true) {
|
||||||
if (Serial.available() > 0) {
|
if (Serial.available() > 0) {
|
||||||
float mass = Serial.parseFloat();
|
float mass = Serial.parseFloat();
|
||||||
if (mass > 0) {
|
if (mass > 0) {
|
||||||
engine.setCarMass(mass);
|
engine.setCarMass(mass);
|
||||||
Serial.print(F("Car mass set to "));
|
Serial.print(F("Waga samochodu ustawiona na: "));
|
||||||
Serial.print(mass);
|
Serial.print(mass);
|
||||||
Serial.println(F(" kg"));
|
Serial.println(F(" kg"));
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
Serial.println(F("Invalid value – try again:"));
|
Serial.println(F("Niepoprawna wartość, spróbuj ponownie:"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -50,11 +50,6 @@ void setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
bool check = rfid.check();
|
|
||||||
bool matches = rfid.matches(AUTH_UID, AUTH_UID_SIZE);
|
|
||||||
|
|
||||||
bool rfidOk = check && matches;
|
|
||||||
|
|
||||||
if (rfid.check() && rfid.matches(AUTH_UID, AUTH_UID_SIZE)) {
|
if (rfid.check() && rfid.matches(AUTH_UID, AUTH_UID_SIZE)) {
|
||||||
carEnabled = !carEnabled;
|
carEnabled = !carEnabled;
|
||||||
|
|
||||||
@@ -71,22 +66,23 @@ void loop() {
|
|||||||
display.updateGear(gear.getGearChar());
|
display.updateGear(gear.getGearChar());
|
||||||
|
|
||||||
unsigned long now = millis();
|
unsigned long now = millis();
|
||||||
float dt = (now - prevUpdate) / 1000.0f;
|
float dt = (now - prevEngineUpdate) / 1000.0f;
|
||||||
if (dt >= 0.02f) {
|
if (dt >= 0.02f) {
|
||||||
prevUpdate = now;
|
prevEngineUpdate = now;
|
||||||
engine.update(dt, gear.getGear());
|
engine.update(dt, gear.getGear());
|
||||||
display.updateRPM(engine.getRPM());
|
display.updateRPM(engine.getRPM());
|
||||||
display.updateSpeed(engine.getSpeedKmh());
|
display.updateSpeed(engine.getSpeedKmh());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (millis() - prevSonarUpdate >= 100) {
|
unsigned long now = millis();
|
||||||
prevSonarUpdate = millis();
|
if (now - prevSonarUpdate >= 100) {
|
||||||
|
prevSonarUpdate = now;
|
||||||
long dist = sonar.measure();
|
long dist = sonar.measure();
|
||||||
if (!seatBelts) {
|
if (!seatBelts) {
|
||||||
if (dist < 200) seatBelts = true;
|
if (dist < 200) seatBelts = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (dist >= 200) seatBelts = true;
|
if (dist >= 200) seatBelts = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user