#write a code in mircopyhton to display the distace in oled according to the ultrasonic and if the distance is less than 100 cm then turn on the led reverse parking sensor and led intensitry will increase when object is near
import machine
from machine import Pin, PWM, I2C
import time
import ssd1306
Trigger = Pin(12, Pin.OUT)
Echo = Pin(14, Pin.IN)
led_pwm = PWM(Pin(23))
threshold_distance_cm = 100
i2c = I2C(scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
def measure_distance():
Trigger.value(0)
time.sleep_us(2)
Trigger.value(1)
time.sleep_us(10)
Trigger.value(0)
total_time = machine.time_pulse_us(Echo, 1)
distance = (total_time * 0.034) / 2
return distance
def adjust_led_intensity(distance):
intensity = int(1023 - (distance * 10))
intensity = max(0, min(1023, intensity))
led_pwm.duty(intensity)
duty_cycle = int((intensity / 1023) * 100) # Calculate duty cycle percentage
return duty_cycle
def display_distance(distance, duty_cycle):
oled.fill(0)
oled.text("Distance:", 0, 0)
oled.text(str(distance) + " cm", 0, 10)
oled.text("Duty cycle: " + str(duty_cycle) + "%", 0, 20) # Print duty cycle percentage
oled.show()
while True:
distance = measure_distance()
print("Distance in cm:", distance)
if distance < threshold_distance_cm:
duty_cycle = adjust_led_intensity(distance)
else:
led_pwm.duty(0)
duty_cycle = 0
display_distance(distance, duty_cycle)
time.sleep(0.5)
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
led1:A
led1:C
oled1:GND
oled1:VCC
oled1:SCL
oled1:SDA