diff --git a/code/CarSpotController.cpp b/code/CarSpotController.cpp index bb040e2..300cab5 100644 --- a/code/CarSpotController.cpp +++ b/code/CarSpotController.cpp @@ -28,4 +28,8 @@ class CarSpotCOntroller { void increment_occupied_spots () { this->occupied_spots++; } + + bool is_full() { + return this->occupied_spots == this->total_spots; + } }; \ No newline at end of file diff --git a/code/code.ino b/code/code.ino index 6595f90..c5932a9 100644 --- a/code/code.ino +++ b/code/code.ino @@ -19,9 +19,9 @@ OneWire oneWire(TEMP_SENSOR_PIN); DallasTemperature temperature_sensors(&oneWire); DistSensor dist_sensor = DistSensor(ULTRASONIC_SENSOR_PIN_TRIG, ULTRASONIC_SENSOR_PIN_ECHO, 25.0); -Barrier barrier = Barrier(SERVO_PIN, 4); +Barrier barrier = Barrier(SERVO_PIN, 2); LCDScreen screen = LCDScreen(); -CarSpotCOntroller car_spot_controller = CarSpotCOntroller(24); +CarSpotCOntroller car_spot_controller = CarSpotCOntroller(2); JoySitkController joystick = JoySitkController(JOYSTICK_X_PIN, JOYSTICK_Y_PIN); unsigned long current_time, sensor_last_time_activated, temperature_last_time_measured, joystick_last_time_activated; @@ -44,8 +44,12 @@ void loop() { if (dist_sensor.is_in_range()){ sensor_last_time_activated = current_time; if(barrier.is_closed()){ - barrier.open(); - car_spot_controller.increment_occupied_spots(); + 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){ @@ -64,15 +68,19 @@ void loop() { if (joystick.is_moving_right() && current_time - joystick_last_time_activated >= 250){ 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){ 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()); }