#les imports de mes machine
import machine
from machine import Pin, I2C, SoftI2C
from LCD_API import LcdApi
from I2C_LCD import I2cLcd
from HCSR04 import HCSR04
from time import sleep
#la taille de l'ecran LCD
I2C_ADDR = 0x27
totalRows = 2
totalColumns = 16
#appelle la class SoftI2C et donne Pin 22 pour SCL et Pin SDA pour 21
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000)
#appelle aussi la class et ajoute les variables de la taille
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)
#appelle la class du Capteur Ultrason et donne ainsi au Pin 13 pour Trig et echo pour Pin 14
sensor = HCSR04(trigger_pin=13, echo_pin=14, echo_timeout_us=10000)
#pinAnalogique = 0
#nombreLEDs = 2
#Variable des LED donne ainsi le numero des Pin
led_pins = [15, 2, 4, 5, 18, 19, 23, 27, 26, 25]
leds = [Pin(pin, Pin.OUT) for pin in led_pins]
#Boucle qui affiche la distance sur l'ecran LCD
while True:
#efface le LCD
lcd.clear()
#donne la distance en cm
distance = sensor.distance_cm()
#affiche la distance converti en str pour l'afficher
distance_print = str(distance)
#affiche la distance
print('Distance:', distance_print, 'cm')
lcd.putstr("Distance:")
lcd.putstr(distance_print)
#premiere condition, distance - ou égale a 100 donc Fourniture a 20 %
if distance <= 100:
for led in leds[0:5]:
led.value(1)
for led in leds[6:9]:
led.value(0)
sleep(0.1)
lcd.move_to(0, 1)
lcd.putstr("Fourniture à 20%")
#deuxieme condition, distance - ou égale 50 donc Fourniture a 70 %
if distance <= 50:
for led in leds[0:7]:
led.value(1)
for led in leds[8:9]:
led.value(0)
sleep(0.1)
lcd.move_to(0, 1)
lcd.putstr("Fourniture à 70%")
#troisieme condition, distance - ou égale a 20 donc Fourniture a 100 %
if distance <= 20:
for led in leds:
led.value(1)
sleep(0.1)
lcd.move_to(0, 1)
lcd.putstr("Fourniture à 100%")
sleep(1)