#----Import de Bibliothèques----------------------------------------------
from machine import Pin, I2C
from time import sleep_ms
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd
#----Sortie LED----------------------------------------------
led1 = Pin(18, Pin.OUT)
#----Entrée Bouton----------------------------------------------
button = Pin(13, Pin.IN, Pin.PULL_UP)
#----Sorties Ecran LCD----------------------------------------------
I2C_ADDR = 39 #adresse I2D
I2C_NUM_ROWS = 2 #nombre de lignes
I2C_NUM_COLS = 16 #nombre de colonnes
i2c = I2C(1, sda=Pin(2, Pin.OUT), scl=Pin(3, Pin.OUT), freq=400000)
lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)
#----CREATION de fonctions----------------------------------------------
def eteindre_ecran():
lcd.backlight_off()
def allumer_ecran():
lcd.backlight_on()
def clear_ecran():
lcd.clear()
def LCD_text():
lcd.move_to(1,0) #se positionner colonne_1, ligne_0
lcd.putstr("!! ligne 1 !!") #Ecrire ce texte
lcd.move_to(1,1) #se positionner colonne_1, ligne_1
lcd.putstr("** ligne 2 **") #Ecrire ce texte
#-----Conditions initiales---------------------------------------------
#-#----Compteur pour le Bouton-------------------------
comptBout = 0
etatLed = 0
#-#----LED éteintes---------------------------------------------
led1.value(0)
#-#----Ecran LCD éteint---------------------------------------------
eteindre_ecran()
#----Début du programme----------------------------------------------
print(i2c.scan()) #scanner un bus I2C et renvoyer une liste d'adresses I2C valides qui sont connectées à ce bus
while True:
if button.value() == 0 and comptBout == 0 : #si bouton appuyé
comptBout = 1 #alors compteur bouton = 1
if etatLed == 0: #et si compteur led est à 0
etatLed = 1 #alors compteur led = 1
led1.value(1) #allumer qqchose
LCD_text()
allumer_ecran()
print("allumé") #donner une information via l'ordinateur
else: #sinon
etatLed = 0 #alors compteur led = 0
led1.value(0) #éteindre qqchose
eteindre_ecran()
lcd.clear()
print("éteint") #donner une information via l'ordinateur
sleep_ms(100) #pause nécessaire pour éviter les rebonds
elif button.value() == 1 and comptBout == 1 : #si bouton appuyé et compteur bouton = 1
comptBout = 0 #alors compteur bouton = 0
sleep_ms(100) #pause nécessaire pour éviter les rebonds