Está en la página 1de 21

Sistemas digitales Programables

Puertos de entrada-salida
Introducción

Una señal digital es un tipo de señal en que cada signo que codifica
el contenido de la misma puede ser analizado en término de
algunas magnitudes que representan valores discretos, en lugar de
valores dentro de un cierto rango. Por ejemplo, el interruptor de la
luz sólo puede tomar dos valores o estados: abierto o cerrado, o la
misma lámpara: encendida o apagada.

Los sistemas digitales, como por ejemplo un microcontrolador, usan


la lógica de dos estados representados por dos niveles de tensión
eléctrica, uno alto, HIGH y otro bajo, LOW. Por abstracción, dichos
estados se sustituyen por ceros (0’s) y unos (1’s), lo que facilita la
aplicación de la lógica y la aritmética binaria. Si el nivel alto se
representa por 1 y el bajo por 0, se habla de lógica positiva y en caso
contrario de lógica negativa.

Sistemas Lógicos Programables 2


Introducción
Cabe mencionar que, además de los niveles, en una señal digital
están las transiciones de alto a bajo y de bajo a alto, denominadas
flanco de bajada y de subida, respectivamente. En una señal digital,
se denomina flanco a la transición del nivel bajo al alto (flanco de
subida) o del nivel alto al bajo (flanco de bajada).

Sistemas Lógicos Programables 3


Características

Sistemas Lógicos Programables 4


Características

 Su tensión de alimentación característica se halla comprendida


entre los 4,75V y los 5,25V. Normalmente TTL trabaja con 5V.

 Los niveles lógicos vienen definidos por el rango de tensión


comprendida entre 0,0V y 0,8V para el estado L (bajo) y los 2,4V
y Vcc para el estado H (alto).

 La velocidad de transmisión entre los estados lógicos es su mejor


base, si bien esta característica le hace aumentar su consumo
siendo su mayor enemigo. Motivo por el cual han aparecido
diferentes versiones de TTL como FAST, LS, S, entre otros.

 Las señales de salida TTL se degradan rápidamente si no se


transmiten a través de circuitos adicionales de transmisión (no
pueden viajar más de 2 m por cable sin graves pérdidas).

Sistemas Lógicos Programables 5


Introducción
La placa Arduino UNO posee tres puertos:
B (Pines digitales del 8 al 13).
C (Entrada Analógica)
D (Pines Digitales del 0 al 7)

Sistemas Lógicos Programables 6


Introducción

Sistemas Lógicos Programables 7


Puertos I/O (Nivel de Registro)
El PORTD mapea los pines digitales del 0 al 7 para el puerto D.
DDRD – El registro de configuración del modo del puerto D –
lectura/escritura.
PORTD – Registro de datos del Puerto D – lectura/escritura.
PIND – Registro de pines de entrada – solo lectura.

El PORTB mapea los pines digitales del 8 al 13. Se debe recordar


que los bits altos (6 y 7) están mapeados a los pines del cristal de
cuarzo y no pueden ser usados.
DDRB – El registro de configuración del modo del puerto B –
lectura/escritura.
PORTB – Registro de datos del puerto B – lectura/escritura.
PINB – Registro de pines de entrada – solo lectura.
Sistemas Lógicos Programables 8
Puertos I/O

El PORTC mapea los pines de entrada analógica del 0 al 5.


DDRC – El registro de configuración del modo de los pines del
puerto B – lectura/escritura. PORTC – Registro de datos del
Puerto D – lectura/escritura.
PINC – Registro de pines de entrada – solo lectura.

Cada bit de estos registros corresponde con un solo pin; Ejemplo: El bit
menos significativo de los registros DDRB, PORTB, y PINB hace
referencia al pin PB0 (pin digital 14).

Sistemas Lógicos Programables 9


Puertos como entrada
Se consideran entradas digitales en el momento que se recibe 0
lógico o 1 lógico del exterior, sea desde un sensor, un switch, un
botón, etc. Las entradas digitales solo reconocen dos tipos de
entrada, 0 lógico o 1 lógico donde el umbral de cada uno es el
siguiente:

 0 lógico: 0 voltios y 1,8 voltios


 1 lógico: 2,1 voltios y 5 voltios

El rango entre 1,9 y 2,1 voltios está considerado como error, donde
el sistema puede dar fallos.
Para asegurar el correcto funcionamiento y en los casos que
utilicemos switch o pulsadores, utilizaremos configuraciones con
resistencias de modo Pull-Up o Pull-Down.

Sistemas Lógicos Programables 10


Resistencias de Pull-up y Pull-down

Sistemas Lógicos Programables 11


Puertos como entrada
Para poder recibir datos, es necesario conocer lo que son las
estructuras de control, en este caso el condicional if-else.
La sentencia if-else es una estructura de control que permite
redirigir un curso de acción según la evaluación de una condición
simple, sea verdadera o falsa.

Si la condición es verdadera, se
ejecuta el bloque se sentencias
1, de lo contrario, se ejecutará
el bloque de sentencia 2, todo lo
que está dentro de los
paréntesis.

Cambiando la estructura de
programación para usarla
directamente con el Arduino
sería de la siguiente forma:
Sistemas Lógicos Programables 12
Aplicaciones
Aplicación pines entrada miPuerto.available()>0

Sistemas Lógicos Programables 13


Aplicaciones
Aplicación pines entrada serialEvent(Serial miPuerto)

Sistemas Lógicos Programables 14


Aplicaciones
Aplicación pines salida

Sistemas Lógicos Programables 15


Aplicaciones
Juego de LEDs

Sistemas Lógicos Programables 16


Aplicaciones
Aplicación pines de salida
Controlar un Led RGB con Arduino, muestra los 3 colores principales
uno después de otro (rojo, verde y azul). Permite visualizar entre seis
colores.

Sistemas Lógicos Programables 17


Aplicaciones
Aplicación pines de salida

Sistemas Lógicos Programables 18


Aplicaciones
Aplicación pines de entrada/salida

Sistemas Lógicos Programables 19


Ejercicios

1. Realizar un programa en Arduino y Processing para activar


cualquiera de cuatro posibles juegos de luces navideñas
usando un dip-switch. Use 8 Leds de diferentes colores. La
secuencia de colores es libre.

2. Construya una calculadora en Arduino y presentado en


Processing de una ALU de 4 bits con base en el
comportamiento mostrado en la tabla:

Control Operación
000 R=A+B
001 R=A-B
010 R = A XOR B
011 R = A AND B
100 R = A OR B
101 a 111 R=0

Sistemas Lógicos Programables 20


21

También podría gustarte