from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import utime
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
oled = SSD1306_I2C(128, 64, i2c)
red = Pin(16, Pin.OUT)
green = Pin(18, Pin.OUT)
blue = Pin(20, Pin.OUT)
trigger=Pin(3,Pin.OUT)
echo=Pin(2,Pin.IN)
def ultra():
trigger.low()
utime.sleep_us(2)
trigger.high()
utime.sleep_us(5)
trigger.low()
while echo.value()==0:
apagado=utime.ticks_us()
while echo.value()==1:
encendido=utime.ticks_us()
duracion=encendido-apagado
distancia=duracion/29.4/2
return int(distancia)
while True:
distancia = ultra()
oled.fill(0)
oled.text("Distancia al", 0, 0)
oled.text("objeto:", 10,15)
oled.text(str(distancia) + " cm", 20, 28)
if distancia <= 50:
red.value(0)
green.value(1)
blue.value(1)
elif distancia >= 50 and distancia <=75:
red.value(1)
green.value(1)
blue.value(0)
elif distancia >= 75 and distancia <=100:
red.value(1)
green.value(0)
blue.value(1)
elif distancia > 100:
red.value(1)
green.value(1)
blue.value(1)
oled.fill(0)
oled.text(" Sin", 0, 0)
oled.text(" Movimiento", 10,15)
oled.show()
utime.sleep(1)