print('Reverse sensor')
print('Created by: Ruzaini')
print('Date: 9/11/2024')
# Import libraries/modules
import ultrasonic_library
from machine import Pin, PWM
from utime import sleep
# Pin Declaration
trig_pin = Pin(27, Pin.OUT) # Trigger pin
ech_pin = Pin(26, Pin.IN) # Echo pin
led_pin = Pin(4, Pin.OUT) # Pin for LED
buzzer_pin = Pin(2, Pin.OUT) # Pin for Buzzer
# Object declaration for ultrasonic sensor
buzzer_pwm = PWM(buzzer_pin)
buzzer_pwm.duty(0) # Start with no sound (duty cycle = 0%)
buzzer_pwm.freq(1000) # Set initial frequency to 1000Hz (middle tone)
# Parameter declaration for ultrasonic sensor
ultrasonic_sensor = ultrasonic_library.HCSR04(trigger_pin=trig_pin, echo_pin=ech_pin)
# Main program
blink_interval_close = 0.04 # Interval time in seconds for blinking (close distance)
blink_interval_moderate = 0.2 # Interval time in seconds for blinking (moderate distance)
blink_interval_far = 0.5 # Interval time in seconds for blinking (far distance)
while True:
# Get the distance from the ultrasonic sensor
distance_from_wall = ultrasonic_sensor.distance_cm() # Get distance in cm
print('The car is', distance_from_wall, 'cm from the wall')
print('--------------------------------------------------')
# Set the buzzer sound based on distance (using if-else)
if distance_from_wall <= 30:
buzzer_pwm.freq(2000) # High pitch for close distance
buzzer_pwm.duty(1023) # Loud sound
elif distance_from_wall <= 65:
buzzer_pwm.freq(1500) # Medium pitch for moderate distance
buzzer_pwm.duty(512) # Moderate sound
elif distance_from_wall <= 100:
buzzer_pwm.freq(1300) # Low pitch for far distance
buzzer_pwm.duty(256) # Soft sound
else:
buzzer_pwm.duty(0) # No sound when far
# Control LED and Buzzer Blink (using if-else)
if distance_from_wall <= 30: # Close range
led_pin.on() # Turn on LED
buzzer_pwm.duty(512) # Set buzzer to moderate sound (50% duty cycle)
sleep(blink_interval_close) # Wait for blink interval
led_pin.off() # Turn off LED
buzzer_pwm.duty(0) # Turn off buzzer
sleep(blink_interval_close) # Wait for blink interval
elif distance_from_wall <= 65: # Moderate range
led_pin.on() # Turn on LED
buzzer_pwm.duty(512) # Set buzzer to moderate sound (50% duty cycle)
sleep(blink_interval_moderate) # Wait for blink interval
led_pin.off() # Turn off LED
buzzer_pwm.duty(0) # Turn off buzzer
sleep(blink_interval_moderate) # Wait for blink interval
elif distance_from_wall <= 100: # Far range
led_pin.on() # Turn on LED
buzzer_pwm.duty(256) # Set buzzer to low sound (25% duty cycle)
sleep(blink_interval_far) # Wait for blink interval
led_pin.off() # Turn off LED
buzzer_pwm.duty(0) # Turn off buzzer
sleep(blink_interval_far) # Wait for blink interval
else: # Very far
led_pin.off() # Turn off LED
buzzer_pwm.duty(0) # Turn off buzzer
sleep(1)
Loading
esp32-devkit-v1
esp32-devkit-v1