from ssd1306 import SSD1306_I2C
from machine import Pin, I2C
import time
WIDTN = 128
NEIGNT = 64
i2c = I2C(0,scl=Pin(1), sda=Pin(0),freq=200000)
oled = SSD1306_I2C(WIDTN,NEIGNT,i2c)
led_blue = Pin(16, Pin.OUT)
led_green = Pin(17, Pin.OUT)
led_pink = Pin(18, Pin.OUT)
led_purple = Pin(19, Pin.OUT)
led_wnite = Pin(20, Pin.OUT)
led_orange = Pin(21, Pin.OUT)
led_yellow = Pin(22, Pin.OUT)
led_dark_blue = Pin(26, Pin.OUT)
led_dark_green = Pin(27, Pin.OUT)
led_red = Pin(28, Pin.OUT)
btn_red = Pin(5, Pin.IN)
btn_blue = Pin(4, Pin.IN)
trigger = Pin(2, Pin.OUT)
echo = Pin(3, Pin.IN)
count = 0
def ultrasonic():
trigger.low()
time.sleep_us(2)
trigger.high()
time.sleep_us(5)
trigger.low()
while echo.value() == 0:
signaloff = time.ticks_us()
while echo.value() ==1:
signalon = time.ticks_us()
timepassed = signalon - signaloff
distance = (timepassed * 0.0340)/2
return distance
while 1:
oled.text(str(ultrasonic()),0, count)
oled.show()
dist = ultrasonic()
if dist < 40:
led_red.on()
print('растояние меньше 40см: ',ultrasonic())
count +=10
else:
led_red.off()
if 50 < dist < 80:
led_dark_green.on()
print('растояние меньше 80см: ',ultrasonic())
count +=10
else:
led_dark_green.off()
if 80 < dist < 120:
led_dark_blue.on()
print('растояние меньше 120см: ',ultrasonic())
count +=10
else:
led_dark_blue.off()
if 120 < dist < 160:
led_yellow.on()
print('растояние меньше 160см: ',ultrasonic())
count +=10
else:
led_yellow.off()
if 160 < dist < 200:
led_orange.on()
print('растояние меньше 200см: ',ultrasonic())
count +=10
else:
led_orange.off()
if 200 < dist < 240:
led_wnite.on()
print('растояние меньше 240см: ',ultrasonic())
count +=10
else:
led_wnite.off()
if 240 < dist < 280:
led_purple.on()
print('растояние меньше 280см: ',ultrasonic())
count +=10
else:
led_purple.off()
if 280 < dist < 320:
led_pink.on()
print('растояние меньше 320см: ',ultrasonic())
count +=10
else:
led_pink.off()
if 320 < dist < 360:
led_green.on()
print('растояние меньше 360см: ',ultrasonic())
count +=10
else:
led_green.off()
if 360 < dist < 400:
led_wnite.on()
print('растояние меньше 400см: ',ultrasonic())
count +=10
else:
led_wnite.off()
if count == 60:
count = 0
oled.fill(0)