from machine import Pin, ADC # importe le module machine
import time # importe le module time
from hcsr04 import HCSR04 # importe la classe HC-SR04
from machine import I2C, Pin # importe les classes I2C et Pin
import ssd1306 # importe le module ssd1306
# Initialiser l'afficheur OLED
i2c = I2C(0, scl=machine.Pin(5), sda=machine.Pin(4)) # Initialiser le bus I2C
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # Initialiser l'afficheur OLED
# Initialiser le RGB
red = Pin(7,Pin.OUT)
green = Pin(8,Pin.OUT)
blue = Pin(9,Pin.OUT)
# Initialiser le capteur HC-SR04
sensor = HCSR04(trigger_pin=12, echo_pin=14) # Initialiser le capteur
adc = ADC(Pin(26, mode=Pin.IN))
# Boucle principale : mesure la distance et l'affiche sur l'écran OLED
while True: # Boucle infinie
val = adc.read_u16() # lire le potentionmètre
val = val / 65535 * 250 #250 = la distance max du capteur dans la vrai vie pas sur wokwi
distance = sensor.distance_cm()
oled.fill(0) # Effacer l'écran
if val < distance :
distance = val
if distance < (val/4) :
oled.text("Tres proche", 0, 0) # Afficher le texte
red.value(1)
green.value(0)
blue.value(0)
elif distance < (val/2) :
oled.text("Proche", 0, 0) # Afficher le texte
red.value(0)
green.value(1)
blue.value(0)
else :
oled.text("Eloigne", 0, 0) # Afficher le texte
red.value(0)
green.value(0)
blue.value(1)
oled.text("Aveugle apres:", 0, 20) # Afficher le texte
oled.text("{:.1f} cm".format(val), 0, 30) # Afficher la distance
oled.text("Distance:", 0, 40) # Afficher le texte
oled.text("{:.1f} cm".format(distance), 0, 50) # Afficher la distance
oled.show() # Afficher l'écran
time.sleep(1)