From 40beda91da2f46c802ce16201292295941c7a310 Mon Sep 17 00:00:00 2001 From: rafa Date: Fri, 23 May 2025 22:08:03 +0100 Subject: [PATCH] Controll screen state with joystick --- code/code.ino | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/code/code.ino b/code/code.ino index 616ecac..6595f90 100644 --- a/code/code.ino +++ b/code/code.ino @@ -6,11 +6,14 @@ #include "DistSensor.cpp"; #include "LCDScreen.cpp"; #include "CarSpotController.cpp"; +#include "JoyStickController.cpp"; #define ULTRASONIC_SENSOR_PIN_TRIG 11 #define ULTRASONIC_SENSOR_PIN_ECHO 12 #define SERVO_PIN 10 #define TEMP_SENSOR_PIN 9 +#define JOYSTICK_X_PIN A1 +#define JOYSTICK_Y_PIN A0 OneWire oneWire(TEMP_SENSOR_PIN); DallasTemperature temperature_sensors(&oneWire); @@ -19,8 +22,9 @@ DistSensor dist_sensor = DistSensor(ULTRASONIC_SENSOR_PIN_TRIG, ULTRASONIC_SENSO Barrier barrier = Barrier(SERVO_PIN, 4); LCDScreen screen = LCDScreen(); CarSpotCOntroller car_spot_controller = CarSpotCOntroller(24); +JoySitkController joystick = JoySitkController(JOYSTICK_X_PIN, JOYSTICK_Y_PIN); -unsigned long current_time, sensor_last_time_activated, temperature_last_time_measured; +unsigned long current_time, sensor_last_time_activated, temperature_last_time_measured, joystick_last_time_activated; float temperature_in_c = 0; @@ -29,8 +33,8 @@ void setup() { dist_sensor.configure_pins(); barrier.configure_pins(); temperature_sensors.begin(); + joystick.configure_pins(); screen.init(); - } void loop() { @@ -55,8 +59,20 @@ void loop() { temperature_in_c = temperature_sensors.getTempCByIndex(0); } - //screen.display_temperature(temperature_in_c); + + joystick.read(); - screen.display_parking_spots(car_spot_controller.get_total_spots(), car_spot_controller.get_occupied_spots()); + 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()); }