# ------Need help with this project-----
# import utime
# from machine import Pin, I2C
# from lcd_api import LcdApi
# from pico_i2c_lcd import I2cLcd
from machine import Pin
from utime import sleep
# # Define pins for IR sensors
# ir_sensor_pins = [Pin(2, Pin.IN), Pin(3, Pin.IN), Pin(4, Pin.IN)]
# # Define pin for ultrasonic sensor
# ultrasonic_trigger = Pin(28, Pin.OUT)
# ultrasonic_echo = Pin(27, Pin.IN)
# Define pins for LEDs
red_led = Pin(19, Pin.OUT)
orange_led = Pin(20, Pin.OUT)
green_led = Pin(21, Pin.OUT)
# # Define pin for servo motor
# servo_pin = Pin(22)
# # Initialize LCD display
# i2c = I2C(0, scl=Pin(17), sda=Pin(16), freq=400000)
# lcd = I2cLcd(i2c, 0x27, 2, 16)
# # Function to check distance using ultrasonic sensor
# def check_distance():
# ultrasonic_trigger.low()
# utime.sleep_us(2)
# ultrasonic_trigger.high()
# utime.sleep_us(10)
# ultrasonic_trigger.low()
# pulse_time = machine.time_pulse_us(ultrasonic_echo, 1)
# distance = pulse_time / 58.0
# return distance
# # Function to check available parking slots using IR sensors
# def check_parking():
# available_slots = 0
# for pin in ir_sensor_pins:
# if pin.value() == 0: # IR sensor detects car
# available_slots -= 1
# return available_slots
# # Function to control servo motor for gate opening/closing
# def control_gate(open):
# duty = 69 if open else 31 # Duty cycle for servo
# servo = machine.PWM(servo_pin, freq=50)
# servo.duty_u16(duty * 655)
# # Main loop
# while True:
# available_slots = check_parking()
# distance = check_distance()
# # Display available parking slots on LCD
# lcd.move_to(0, 0)
# lcd.putstr("Slots: {}".format(available_slots))
# # Control LEDs based on available slots
# if available_slots <= 0:
# red_led.on()
# orange_led.off()
# green_led.off()
# elif available_slots == 1:
# red_led.off()
# orange_led.on()
# green_led.off()
# else:
# red_led.off()
# orange_led.off()
# green_led.on()
# # Control gate based on distance
# if distance < 10: # Adjust this threshold based on your setup
# control_gate(open=True)
# else:
# control_gate(open=False)
# utime.sleep(1) # Adjust sleep time based on your requirements
while True:
red_led.on()
orange_led.off()
green_led.off()
sleep(2)
red_led.off()
orange_led.off()
green_led.off()
sleep(1)
red_led.off()
orange_led.on()
green_led.off()
sleep(2)
red_led.off()
orange_led.off()
green_led.off()
sleep(1)
red_led.off()
orange_led.off()
green_led.on()
sleep(2)
red_led.off()
orange_led.off()
green_led.off()
sleep(1)