From ae0603fbab819cf0f6e4ca43b49eb9405460fd82 Mon Sep 17 00:00:00 2001 From: rafa Date: Sat, 24 May 2025 02:53:19 +0100 Subject: [PATCH] add timers --- code/code.ino | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/code/code.ino b/code/code.ino index c5932a9..c64a1c5 100644 --- a/code/code.ino +++ b/code/code.ino @@ -21,10 +21,10 @@ DallasTemperature temperature_sensors(&oneWire); DistSensor dist_sensor = DistSensor(ULTRASONIC_SENSOR_PIN_TRIG, ULTRASONIC_SENSOR_PIN_ECHO, 25.0); Barrier barrier = Barrier(SERVO_PIN, 2); LCDScreen screen = LCDScreen(); -CarSpotCOntroller car_spot_controller = CarSpotCOntroller(2); -JoySitkController joystick = JoySitkController(JOYSTICK_X_PIN, JOYSTICK_Y_PIN); +CarSpotController car_spot_controller = CarSpotController(2); +JoystickController joystick = JoystickController(JOYSTICK_X_PIN, JOYSTICK_Y_PIN); -unsigned long current_time, sensor_last_time_activated, temperature_last_time_measured, joystick_last_time_activated; +unsigned long current_time, sensor_last_time_readed, sensor_last_time_activated, temperature_last_time_measured, joystick_last_time_activated, joystick_last_time_readed, screen_last_time_updated; float temperature_in_c = 0; @@ -37,50 +37,50 @@ void setup() { screen.init(); } + void loop() { current_time = millis(); - if (dist_sensor.is_in_range()){ - sensor_last_time_activated = current_time; - if(barrier.is_closed()){ - if (!car_spot_controller.is_full()){ - barrier.open(); - car_spot_controller.increment_occupied_spots(); - }else{ - tone(3, 262, 500); + if (current_time - sensor_last_time_readed >= 1000){ + if (dist_sensor.is_in_range()){ + sensor_last_time_activated = current_time; + if(barrier.is_closed()){ + if (!car_spot_controller.is_full()){ + barrier.open(); + car_spot_controller.increment_occupied_spots(); + }else{ + tone(3, 262, 500); + } + } + } else if (!dist_sensor.is_in_range() && barrier.is_open()){ + if (current_time - sensor_last_time_activated >= barrier.open_time_seconds * 1000){ + barrier.close(); } - } - } else if (!dist_sensor.is_in_range() && barrier.is_open()){ - if (current_time - sensor_last_time_activated >= barrier.open_time_seconds * 1000){ - barrier.close(); } } if (current_time - temperature_last_time_measured >= 1000){ temperature_last_time_measured = current_time; + temperature_sensors.setWaitForConversion(false); temperature_sensors.requestTemperatures(); temperature_in_c = temperature_sensors.getTempCByIndex(0); } - joystick.read(); - - if (joystick.is_moving_right() && current_time - joystick_last_time_activated >= 250){ + if (joystick.is_moving_right() && current_time - joystick_last_time_activated >= 450){ joystick_last_time_activated = current_time; screen.set_state((screen.get_next_state())); } - if (joystick.is_moving_left() && current_time - joystick_last_time_activated >= 250){ + if (joystick.is_moving_left() && current_time - joystick_last_time_activated >= 450){ joystick_last_time_activated = current_time; screen.set_state(screen.get_previous_state()); } - - - - - - screen.display(temperature_in_c,car_spot_controller.get_total_spots(), car_spot_controller.get_occupied_spots()); + if (current_time - screen_last_time_updated >= 500){ + screen_last_time_updated = current_time; + screen.display(temperature_in_c,car_spot_controller.get_total_spots(), car_spot_controller.get_occupied_spots()); + } }