# Scan des Adresses I2C pour les capteurs et les actionneurs
import machine
from i2c_lcd import I2cLcd
from time import sleep_ms
#initiation du Bus I2C ID = 0
i2c = machine.I2C(0, scl=machine.Pin(22), sda=machine.Pin(21))
"""
#Un code Micropython pour le Scanne des interfaces I2C:
print('Scan i2c bus...')
devices = i2c.scan()
if len(devices) == 0:
print("No i2c device !")
else:
print('i2c devices found:',len(devices))
for device in devices:
print("Decimal address: ",device," | Hexa address: ",hex(device))
print()
"""
# Ecrire sur les deux LCD :
AddressOfLcd1 = 0x27 #LCD1
lcd1 =I2cLcd(i2c, AddressOfLcd1, 2, 16)
AddressOfLcd2= 0x28 #LCD2
lcd2 =I2cLcd(i2c, AddressOfLcd2, 2, 16)
# Declarer une fonction pour écrire sur les LCD
def lcd_ecriture(lcd, b_value, som, affichage):
if affichage == 1: # affichage de l'état du bouton
lcd.move_to(3,0)
lcd.putstr('ETAT BOUTON')
if b_value == 0:
lcd.move_to(0,1)
lcd.putstr("BT Pressé ")
else:
lcd.move_to(0,1)
lcd.putstr("BT non Pressé")
else: # affichage du nombre de clique
lcd.move_to(0,0)
lcd.putstr('Nombre de clique')
lcd.move_to(4,1)
lcd.putstr(str(som))
#*****************************************************#
#Configurer le Bouton poussoir
# Configuration de la broche GPIO 2 pour le bouton poussoir
bouton_pin = machine.Pin(2, machine.Pin.IN, machine.Pin.PULL_UP)
# Variable pour stocker le nombre de clics
nombre_clics = 0
# Variable pour stocker l'etat du bouton'
etatBoutonSauvegarde = 1
#Affichage initiale
lcd_ecriture(lcd1, b_value=1, som=0, affichage=1)
lcd_ecriture(lcd2, b_value=0, som=nombre_clics, affichage=0)
while True:
etatBouton = bouton_pin.value() # Lecture de l'état du bouton
if etatBoutonSauvegarde != etatBouton :
sleep_ms(10) # Ajouter un délai de 20 ms (délai antirebonds)
if etatBouton == 0:
nombre_clics += 1
lcd_ecriture(lcd1, b_value=0, som=0, affichage=1)
lcd_ecriture(lcd2, b_value=0, som=nombre_clics, affichage=0)
print("Nombre de clics :", nombre_clics)
etatBoutonSauvegarde = etatBouton
lcd_ecriture(lcd1, b_value=1, som=0, affichage=1)