# ############################################################################
# ** Proyecto : Led y Boton
# ** Herramienta : https://www.wokwi.com
# ** : Thonny aplicacion de escritorio descargar en www.thonny.org
# ** Compilador : wokwi Simulador online
# ** Version : 1.0
# ** Fecha/Hora : 24-09-2024, 3:45 am,
# **
# ** Descripción del programa :
# ** El programa prende y apaga un led (salida), utlizando un boton (entrada)
# **
# ** Versión : 1
# ** Revisión : A
# ** Release : 0
# ** Bugs & Fixes :
# ** Date : 24/09/2024
# **
# ** By : Jorge Anzaldo
# ** contact : [email protected]
# ** twitter x : @janzaldob
#############################################################################
# ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# : Librerias / Bibliotecas / Modulos | :
# ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
from machine import Pin #https://docs.micropython.org/en/latest/library/machine.Pin.html
import time #https://docs.micropython.org/en/latest/library/time.html
# +-------------------------------------------------------------------------------
# | V A R I A B L E S / O B J E T O S - I N S T A N C I A S |
# +-------------------------------------------------------------------------------
estadoBoton = 0
estadoLed = 0
boton = Pin(4, Pin.IN, Pin.PULL_UP) #Entrada (boton)
led = Pin(15, Pin.OUT) #Salida(led)
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# | Definición y Desarrollo de Funciones |
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# ===============================================================================
# || ||
# || P R O G R A M A / F U N C I O N P R I N C I P A L ||
# || ||
# ===============================================================================
if __name__ == '__main__':
while True:
ultimoEstado = estadoBoton
estadoBoton = boton.value()
if estadoBoton == 0 and ultimoEstado == 1:
estadoLed = not(estadoLed)
led.value(estadoLed)
time.sleep(0.1)
# ********************************************************************************
#
# R E F E R E N C I A S / C O M E N T A R I O S
#
# *** ¿QUÉ ES PYTHON? ***
#
# Python es un lenguaje de programación de alto nivel, limpio, elegante, ágil y sencillo,
# con una curva de aprendizaje muy corta.
#
# Durante su ejecución no se compila, sino que un intérprete lo procesa (scripting),
# lo que permite experimentar –de forma interactiva– mientras se programa.
#
# Gracias al uso de expresiones comunes Python requiere menos líneas de código
# para realizar tareas básicas. También dispone de una librería estándar así como
# multitud de librerías no oficiales, que permite ejecutar funciones y tareas
# complejas con mayor facilidad que otros lenguajes.
#
# Permite programar en varios estilos (programación multiparadigma):
# programación orientada a objetos, imperativa o funcional y sus aplicaciones
# son muy versátiles: desarrollo web, cómputo científico, procesamiento de datos,
# inteligencia artificial, etc.
#
# https://www.python.org/
#
# *** ¿QUÉ ES MICROPYTHON? ***
# Es un pequeño pero eficiente interprete del Lenguaje de Programación Python,
# optimizado para funcionar en microcontroladores y ambientes restringidos.
#
# Un intérprete se define como la capa lógica de software entre el código y el hardware,
# dicho de otro modo, es el encargado de procesar el código de programación y
# hacer posible que el hardware (ordenador, microcontrolador…) ejecute las acciones
# en él descritas.
#
# MicroPython está implementado a partir del intérprete estándar de Python 3.4
# con características seleccionadas de versiones posteriores-.
#
# Debido a las limitaciones de recursos de los microcontroladores, en su mayoría los módulos
# de la biblioteca estándar se han simplificado, pero proporcionando sus funcionalidades
# principales –un subconjunto de las funcionalidades totales-.
#
# MicroPython también dispone de módulos específicos dentro de la biblioteca estándar que
# permiten al programador el acceso al hardware del microcontrolador.
#
# Hay algunas características que MicroPython tiene y es lo que lo hace único y
# diferente de otros sistemas embebidos:
#
# Dispone, así como el Lenguaje de Programación Python, de multitud de librerías
# para la ejecución de tareas.
#
# Tiene un editor de código propio muy sencillo.
#
# Es extensible. Para los usuarios avanzados de MicroPython, pueden extender de Python
# a funciones de más bajo nivel como C o C++, pudiendo mezclar códigos que requieran
# de ejecución más rápida a bajo nivel con MicroPython.
#
# Con MicroPython, se pueden hacer muchas cosas, como controlar las entradas/salidas de un
# microcontroladores haciendo parpadear un LED, obteniendo lecturas de señales
# analógicas y digitales, generando señales PWM, controlando servomotores, pantallas OLED,
# pantallas NeoPixel, realizando comunicación I2C, SPI, etc.
#
# En algunos microcontroladores como el ESP32 también permite conexiones de Red y WiFi.
#
# https://docs.micropython.org/
#
# https://docs.micropython.org/en/latest/esp32/tutorial/intro.html
#
# *********************************************************************************