'''
/****************************************************
* PRÁCTICA NO. 03 *
* *
* Nombre: Eduardo Vicente Reyna Villela *
* Hora lab: V1-V2 *
* Día: Jueves *
* N° de lista: 22 *
* N° de Equipo: No aplica *
* Dispositivo: Raspberry Pi Pico *
* Lenguaje: MicroPython *
* Rev: 1.0 *
* Propósito de la actividad: *
* Crear compuertas AND, OR Y EXOR *
* *
* Fecha: 28/08/2022 *
****************************************************/
'''
# Se importa la librería machine para los pines
from machine import Pin
import time
# Se declaran los pines a usar para los botones
Pin1 = 0
Pin2 = 5
# Se declaran los pines a usar para los LEDs
Pin3 = 28
Pin4 = 27
Pin5 = 22
# Se declaran los pines como entrada
# Las entradas tienen una pull up interna
BTN1 = Pin(Pin1, Pin.IN, Pin.PULL_UP)
BTN2 = Pin(Pin2, Pin.IN, Pin.PULL_UP)
# Se declaran los pines como salida
GATE_AND = Pin(Pin3, Pin.OUT)
GATE_OR = Pin(Pin4, Pin.OUT)
GATE_EXOR = Pin(Pin5, Pin.OUT)
# Ciclo infinito
while True:
# Se coloca el signo ! para negar ya que se está usando
# una pull up interna
# Compuerta AND
if not BTN1.value() and not BTN2.value():
GATE_AND.on()
else:
GATE_AND.off()
# Compuerta OR
if not BTN1.value() or not BTN2.value():
GATE_OR.on()
else:
GATE_OR.off()
# Compuerta EXOR
if ( BTN1.value() and not BTN2.value() ) or ( not BTN1.value() and BTN2.value() ):
GATE_EXOR.on()
else:
GATE_EXOR.off()