#L8a - Program control sensor cu ultrasunete de tip # HC-SR04 uilizat pentru generare sunete # Conexiuni: # Vcc - 5V # trig - pin 24 (GP18) # echo - pin 25 (GP19) # GND - GND # Difuzor -pin 21 (Gp16) from machine import Pin, PWM import utime trig=Pin(18, Pin.OUT) echo=Pin(19, Pin.IN, machine.Pin.PULL_UP) led=Pin(25, Pin.OUT) sound=PWM(Pin(16)) trig.value(0) # initializare led.value(0) do=440 re=494 mi=523 fa=587 sol=659 la=698 si=784 while 1: # bucla infinita trig.value(1) # start trig utime.sleep(0.00001) # 10 microsecunde trig.value(0) # porneste emisie US while echo()==0: start_t=utime.ticks_us() # in 1 iese cu ultima valoare while echo()==1: stop_t=utime.ticks_us() # in 0 iese cu ultima valoare durata=stop_t - start_t # durata dus-intors ultrasunete dist= durata*342/2/10000 # in cm print("%.2f" % dist, "cm") # afisare distanta if 2 < dist < 4 : sound.freq(do) # sound.duty_u16(32000) # 50 % utime.sleep(0.3) if 4 < dist < 6 : sound.freq(re) # sound.duty_u16(32000) # 50 % utime.sleep(0.3) if 6 < dist < 8 : sound.freq(mi) # sound.duty_u16(32000) # 50 % utime.sleep(0.3) if 8 < dist < 10 : sound.freq(fa) # sound.duty_u16(32000) # 50 % utime.sleep(0.3) if 10 < dist < 12 : sound.freq(sol) # sound.duty_u16(32000) # 50 % utime.sleep(0.3) if 12 < dist < 14 : sound.freq(la) # sound.duty_u16(32000) # 50 % utime.sleep(0.3) if 14 < dist < 16 : sound.freq(si) # sound.duty_u16(32000) # 50 % utime.sleep(0.3) else: sound.deinit() # stop sunet utime.sleep(0.1) # secunde