from machine import Pin, ADC, I2C
import time
import ssd1306 
from oled import Write, GFX, SSD1306_I2C
from oled.fonts import ubuntu_mono_20, bookerly_20

#Configurar los pines de conexion del SCL y SDA
scl = Pin(22)
sda = Pin(21)

#Configurar interfaz I2C a puerto 1, pines
# sda GPIO21, scl GPIO22, direccion por defecto 0x3C
i2c = I2C(scl=scl, sda=sda)
oled = SSD1306_I2C(128, 64, i2c)
gfx = GFX(128, 64, oled.pixel)

def main_function():
    
    fotocelda = ADC(Pin(33)) #Definir al pin 33 como entrada analoga
    led = Pin(2, Pin.OUT)    #Definir al pin 2 como salida
    contador = 0             #Asignar el valor de 0 a la variable contador
    pul = Pin(14, Pin.IN)    #Definir al pin 14 como entrada

    while(True): # Ciclo repetitivo infinito
        
        led.value(1)                             # Encender el led
        if (fotocelda.read() < 700):             # Estructura if para comprobar si está siendo el valor recibido es menor 700
            contador +=1                         # Sumar 1 a la variable contador
            time.sleep(0.4)
            
        oled.fill(0)                             # Limpiar la pantala Oled
        write20 = Write(oled, ubuntu_mono_20)    # Asignar a la variable write20 el tipo de letra ubuntu_mono_20
        write10 = Write(oled, bookerly_20)       # Asignar a la variable write10 el tipo de letra bookerly_20
        write20.text("CONTADOR", 20, 8)          # Escribir la palabra "CONTADOR"
        gfx.line(15, 32, 105, 32, 1)             # Realizar una linea
        write10.text(str(contador), 55, 35)      # Escribir el valor guardado en la variable contador
        oled.show()                              # Mostrar en pantalla lo escrito
        
        if pul.value():                          # Reiniciar el contador cuando se oprima el boton
            contador = 0
        
if __name__ == "__main__":
    main_function()

