Está en la página 1de 6

LABORATORIO DE ELECTRÓNICA DIGITAL I I-

LABORATORIO N º 7
ENTRADAS Y SALIDAS DISCRETAS APLICADAS
APLICA A LA PLACA
ARDUINO EN CIRCUITOS LÓGICOS COMBINACIONALES
1. Objetivo: Esta práctica tiene como objetivo utilizar los pines de entrada y salida de la
placa Arduino configuradas como entradas discretas para implementar funciones lógicas
combinacionales mediante códigos programados por el estudiante
estudiante.

2. Marco teórico: Arduino cuenta a través de su lenguaje de programación basado en


C/C++ y el entorno de desarrollo (IDE) con un conjunto de funciones que permite
configurar los pines como entrada o salida. Estudiaremos en principio estas funciones:

pinMode(pin, mode)
mode): Esta instrucción se utiliza en la etapa de cconfiguración
onfiguración (setup) del
sketch, pudiéndose configurar los pines como entrada (INPUT) o salida (OUTPUT). Los
terminales de Arduino en el mome
momentoto de energizarlo están como entradas, desde el punto
de vista eléctrico como entradas en estado de alta impedancia. Estos pines tienen a nivel
interno una resistencia de 20 K
KΩΩ que pueden ser activadas por software de la siguiente
forma:

Las resistencias internas se utilizan para conectar las entradas a interruptores. Cuando se
configuran los pines como ssalida,
alida, estos se comportan como terminales en baja impedancia
y pueden proporcionar 40 mA. a otros dispositivos o cargas. Una corriente elevada en los
pines del Arduino configurada como salida pueden destruir el microcontrolador, por lo
tanto es aconsejable conectar una resistencia externa (470 (470Ω
Ω a 1KΩ) a los pines
configurados como salidas.

digitalRead(pin
digitalRead(pin): Lee el valor de un pin digital dando como resultado un valor alto
(HIGH) o bajo (LOW). El pin se puede especificar como una variable o como una
constante
constan (0 - 13):

digitalWrite(pin
digital pin): Envía al pin el valor HIGH o LOW. El pin se puede especificar como
una variable o como una constante (0 - 13):
LABORATORIO DE ELECTRÓNICA DIGITAL I I-

Los pines digitales de la placa Arduino uno R3 son los numerados del 0 al 13, sin embargo
no se deben utilizar los pines 0 y 1 que están reservados para la comunicación serial entre la
computadora y el Arduino.

Figura 1: Descripción de los pines digitales de Arduino


Arduino.. Fuente Taller de Arduino, Tojeiro
2014

3. Procedimiento experimental:
experimental

Programa 11:: Controlar el encendido de un LED mediante un pulsador. El pulsador debe


mantenerse encendido durante dos segundos tras los cuales se apagará hasta que se
vuelva a presionar el pulsador.

Figura 2:: Diagrama de flujo para el programa 11. Fuente Taller de Arduino, Tojeiro 2014
LABORATORIO DE ELECTRÓNICA DIGITAL I I-

El pulsador será conectado al pin 7 digital de la placa Arduino, a través de una resistencia
de pull up de 10 KKΩ.
Ω. Mientras que el pin de salida será el pin 12
2 que se conectará mediante
una resistencia a un LED. Las resistencias de pull up y pull down son resistencias colocadas
en una determinada configuración junto con un interruptor en serie. De esta forma se
eliminan los estados lógicos falsos producidos por ruido eléctrico.

Programa 22: Realizar el control de una secuencia de dos semáforos que deben ser
sincronizados para el cruce de dos calles. Los tiempos de espera deben ser de 5 segundos en
todos los casos.
LABORATORIO DE ELECTRÓNICA DIGITAL I I-

Programa 33: Analizar el siguiente código que utiliza la placa Arduino para realizar
funciones lógicas digitales.

int P4 = 2, P3 = 3, P2 = 4, P1 = 5, P0 = 6;
int R3 = 10, R2 = 11, R1 = 12, R0 = 13;

void setup() {
// put your setup code here, to run once:

/*Entradas*/
pinMode(P4,INPUT_PULLUP);
pinMode(P4,INPUT_PULLUP);
pinMode(P3,INPUT_PULLUP);
pinMode(P2,INPUT_PULLUP);
pinMode(P1,INPUT_PULLUP);
pinMode(P0,INPUT_PULLUP);

/*Salidas*/
pinMode(R3,OUTPUT);
pinMode(R2,OUTPUT);
pinMode(R1,OUTPUT);
pinMode(R0,OUTPUT);

/*Para iniciar led's apagados*/


digitalWrite(R3, HIGH);
digitalWrite(R2, HIGH);
LABORATORIO DE ELECTRÓNICA DIGITAL I I-

digitalWrite(R1, HIGH);
digitalWrite(R0, HIGH);
}

void loop() {
/*
*Entradas negadas para cambiar configuración del pullup
*cuando se lee estado de la entrada
*/
bool a = !digitalRead(P4);
!digitalRead(P4);
bool b = !digitalRead(P3);
bool c = !digitalRead(P2);
bool d = !digitalRead(P1);
bool e = !digitalRead(P0);

/*Salida R3*/
if( a && ( (d&&!e&&!(b^c)) || (b&&!c&&!(d^e)) || (!b&&c&&!d&&e) ) ){
digitalWrite(R3,LOW);
}else{
lse{
digitalWrite(R3, HIGH);
}

/*Salida R2*/
if(!a&&( (b&&e&&!(c^d)) || (c&&!e&&(b^d)) || (!b&&!c&&d&&e) )){
digitalWrite(R2,LOW);
}else{
digitalWrite(R2, HIGH);
}

/*Salida R1*/
if( c&&((a^e)&&(!(b^d))) || b&&!c&& ((!a
((!a&&d&&!e)||a&&!d&&e)
&&d&&!e)||a&&!d&&e) ){
digitalWrite(R1,LOW);
}else{
digitalWrite(R1,HIGH);
}

/*Salida R0*/
if( c && (b^e) && (a^d) ){
digitalWrite(R0,LOW);
}else{
digitalWrite(R0, HIGH);
}
}
LABORATORIO DE ELECTRÓNICA DIGITAL I I-

4. Materiales:

- Placa Arduino
- Cable USB
- 2 resistencias de 1 K Ohms
- 1 resistencia de 330 Ohms.
- 5 pulsadores
- 3 LEDs rojos
- 3 LEDs amarillos
- 3 LEDs verdes
- Fuente de alimentación
- Protoboard
- Cables de conexión.
- Multímetro

5. Tabla resumen
resumen:

También podría gustarte