# ############################################################################
# ** Proyecto : 203 - Clase RGE - Utilizando Herencia de Clase Led
# ** Herramienta : https://www.wokwi.com
# ** : Thonny aplicacion de escritorio descargar en www.thonny.org
# ** Compilador : wokwi Simulador online
# ** Version : 1.0
# ** Fecha/Hora : 17-07-2024, 3:45 am,
# **
# ** Descripción del programa :
# ** Este programa prende y apaga el led RGB, los argumentos son los pines
# ** donde se conecta el led RGB y el tipo de RGB
# ** " c = catodo comun", se utiliza herencia / programacion Orientada a Objetos (POO)
# ** Desarrollar lo necesario para a = anodo comun
#
# T R A B A J A N D O - E N P R O C E S O
#
# **
# ** Versión : 1
# ** Revisión : A
# ** Release : 0
# ** Bugs & Fixes :
# ** Date : 17/07/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 |
# +-------------------------------------------------------------------------------
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# | Definición y Desarrollo de Funciones |
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class Led:
def __init__(self, pin):
self._pin = pin
self.configurar()
def configurar(self):
self._led = Pin(self._pin,Pin.OUT)
def prender(self):
self._led.value(1)
time.sleep(1)
def apagar(self):
self._led.value(0)
time.sleep(1)
class RGB(Led):
def __init__(self, pin):
super().__init__(pin) # Llama al constructor de la superclase
super().configurar()
# Ejemplo de uso
ledInterno = Led(2)
ledRojo = RGB(15)
ledVerde = RGB(16)
ledAzul = RGB(17)
while True:
ledInterno.prender()
ledInterno.apagar()
ledRojo.prender()
ledRojo.apagar()
ledVerde.prender()
ledVerde.apagar()
ledAzul.prender()
ledAzul.apagar()
'''
# ********************************************************************************
#
# R E F E R E N C I A S / C O M E N T A R I O S
#
# --- Herencia ---
# Por supuesto, una característica del lenguaje no sería digna del nombre «clase» si no soportara herencia.
# La sintaxis para una definición de clase derivada se ve así:
#
# class DerivedClassName(BaseClassName):
# <statement-1>
# .
# .
# .
# <statement-N>
# El nombre ClaseBase debe estar definido en un ámbito que contenga a la definición de la clase derivada.
# En el lugar del nombre de la clase base se permiten otras expresiones arbitrarias. Esto puede ser útil,
# por ejemplo, cuando la clase base está definida en otro módulo:
# class DerivedClassName(modname.BaseClassName):
# La ejecución de una definición de clase derivada procede de la misma forma que una clase base.
# Cuando el objeto clase se construye, se tiene en cuenta a la clase base. Esto se usa para resolver
# referencias a atributos: si un atributo solicitado no se encuentra en la clase, la búsqueda continúa por la clase base.
# Esta regla se aplica recursivamente si la clase base misma deriva de alguna otra clase.
#
# https://docs.python.org/es/3.6/tutorial/classes.html
# *********************************************************************************
'''