from machine import Pin,Timer
from time import sleep
rouge=Pin(28,Pin.OUT)
vert=Pin(27,Pin.OUT)
bp=Pin(4,Pin.IN)
"""timer=Timer() # création objet timer
def loop(timer): # fonction de clignotement
    vert.toggle()
     # inverse état LED
if bp:
    print(bp)
   
    # rappel fonction loop à fréquence voulue
    timer.init(freq=10, callback=loop)
    rouge.on()
    sleep(2)
    rouge.off()
    sleep(1)
    if bp:
        vert.toggle()
        sleep(2)
        print(vert)
    timer.deinit() # desactive le timer
    rouge.toggle() # inverse l’état de la led
    timer.init(freq=1, callback=loop) # reactivation avec une 
    #autre vitesse
    print(vert.value(),rouge.value())"""
"""while bp:
    sleep(2)
    #rouge.toggle(
    
    vert.toggle()
    
    
    while True:
        sleep(3)
        rouge.toggle()"""
    
"""from machine import Pin # importe la classe Pin
led=Pin(28,Pin.OUT) # déclaration broche en sortie
from machine import Pin, Timer # importe les classes Pin et Timer
led1=Pin(27,Pin.OUT) # déclaration broche en sortie
timer=Timer() # création objet timer
def loop(timer): # fonction de clignotement
    led.toggle() # inverse état LED
# rappel fonction loop à fréquence voulue
timer.init(freq=1, callback=loop)
print("Faire CTRL+D pour stopper")
# Note : La LED clignote à la fréquence f/2$0"""
"""timer.deinit() # desactive le timer
led.toggle() # inverse l’état de la led
timer.init(freq=20, callback=loop) # reactivation avec une autre vitesse$0 """   

"""while True :   
    timer.init(freq=20, callback=loop) # reactivation avec une autre vitesse$0
    led1.on()
    sleep(1)
    led1.off()
    sleep(2) """

#un comptage des appuis :
"""from machine import Pin, Timer
import time
bp=Pin(4, Pin.IN, Pin.PULL_UP) # initialisation de la broche en entrée avec rappel au PLUS actif
timer=Timer() # creation objet Timer
appui=0 # variable état appuyé
compt=0 # variable de comptage
def loop(timer):
    global compt
    if bp.value()==appui: # test si appui
        compt=compt+1
        print (str(compt) + ' Appuis sur BP')
        time. sleep_ms(250) # pause anti rebond entre 2 appuis
timer.init(freq=1, callback=loop) # test le BP 20 fois par seconde"""

"""from machine import Pin, Timer
import time
from time import sleep_ms
bp=Pin(4,Pin.IN,Pin.PULL_UP)
led=Pin(28,Pin.OUT)
timer=Timer()
appui=0
etatbp=0
def boucle(timer):
    #global etatbp
    
    if bp.value()==appui:
        etatbp=1 
        print("etatbp =",etatbp,bp.value())      
        #led.on()
        led.toggle()
        sleep_ms(250)
        
    else:
        etatbp=0
        print("etatbp= ",etatbp,bp.value())
        led.toggle()
        #led.off()
        time.sleep_ms(250)
         
timer.init(freq=20,callback=boucle)"""

"""from machine import Pin, Timer
from time import sleep_ms
bp=Pin(4, Pin.IN, Pin.PULL_UP) # initialisation de la broche en entrée avec rappel au PLUS actif
led=Pin(16, Pin.OUT) # broche en sortie
timer=Timer() # creation objet Timer
appui=0 # variable état appuyé
def loop(timer):
    if bp.value()==appui: # test si appui
        led.toggle()
        sleep_ms(250) # pause anti-rebond
    
timer.init(freq=20, callback=loop) # test le BP 20 fois par seconde"""

from machine import Timer, Pin
from time import sleep
button = machine.Pin(4, machine.Pin.IN, machine.Pin.PULL_UP)
led=Pin(16,Pin.OUT)
compteur = 0
timer=Timer()
def loop(timer):
#while True:
    if button.value():
        global compteur
        led.on()
        sleep(1)
        led.off()
        sleep(1)
        compteur += 1
        print('Button pressed!', compteur)
timer.init(mode=Timer.PERIODIC,freq=0.1,callback=loop)