print("This program is to make an ultrasonic sensor wroking as it principles.")
print("By: Belrz")
print("Date: 22/4/2024")
#Import Library
import ultrasonic_lib #This is ultrasonic lib
import oled_display
from machine import Pin, PWM, SoftI2C
from utime import sleep
#Pin Declaration
TRIG = Pin(13)
ECHO = Pin(12)
Red_LED_pin = Pin(4,Pin.OUT)
Green_LED_pin = Pin(2,Pin.OUT)
Buzzer_pin =PWM(Pin(5,Pin.OUT))
oled_pin = SoftI2C(scl=Pin(22), sda=Pin(21))
#Parameter Declaration
#Create Object Name (yangb ada lib je)
sonic = ultrasonic_lib.HCSR04(trigger_pin=TRIG, echo_pin=ECHO)
screen = oled_display.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
#Main Program
while True:
range_in_cm = sonic.distance_cm()
range_in_mm = sonic.distance_mm()
Red_LED_pin.off() #Initialize
Green_LED_pin.off() #Initiaze
Buzzer_pin.init(freq=1500 , duty=0) #Initialize
print("--------------------------------------------")
print("Distance from an obejct is", range_in_cm,"cm")
print("Distance from an obejct is", range_in_mm,"mm")
print("--------------------------------------------")
sleep(3)
if range_in_cm > 200:
for i in range (3):
Red_LED_pin.on()
Buzzer_pin.init(freq=1500 , duty=10)
sleep(0.5)
Red_LED_pin.off()
Buzzer_pin.init(freq=1500 , duty=0)
sleep(0.5)
screen.fill(0)
screen.text("Far Yet", 5, 10, 1)
screen.text(str(range_in_cm), 5, 20, 1)
screen.show()
print("--------------------------------------------")
print("Distance from an obejct is", range_in_cm,"cm")
print("Distance from an obejct is", range_in_mm,"mm")
print("--------------------------------------------")
elif 50 <= range_in_cm <= 200:
for i in range(5):
Red_LED_pin.on()
Buzzer_pin.init(freq=1500 , duty=100)
sleep(0.2)
Red_LED_pin.off()
Buzzer_pin.init(freq=1500 , duty=100)
sleep(0.2)
screen.fill(0)
screen.text("Near Closed", 5, 10, 1)
screen.text(str(range_in_cm), 5, 20, 1)
screen.show()
print("--------------------------------------------")
print("Distance from an obejct is", range_in_cm,"cm")
print("Distance from an obejct is", range_in_mm,"mm")
print("--------------------------------------------")
else:
for i in range(8):
Red_LED_pin.on()
Buzzer_pin.init(freq=2000 , duty=1000)
sleep(0.1)
Red_LED_pin.off()
Buzzer_pin.init(freq=2000 , duty=0)
sleep(0.1)
screen.fill(0)
screen.text("Too Closed", 5, 10, 1)
screen.text(str(range_in_cm), 5, 20, 1)
screen.show()
print("--------------------------------------------")
print("Distance from an obejct is", range_in_cm,"cm")
print("Distance from an obejct is", range_in_mm,"mm")
print("--------------------------------------------")
sleep(3)