Está en la página 1de 22

Entradas y salidas digitales,

entradas análogas y salidas


PWM
Descripción de las entradas
Nuestro Arduino no sólo puede enviar señales sino que
también puede recibirlas con dos propósitos principales como
son leer datos de sensores y recibir mensajes de otros
dispositivos (shield, otro Arduino, PC, etc.). Las entradas las
clasificaremos en analógicas y digitales.
Entradas y salidas digitales
Las entradas digitales son las mismas que las salidas digitales,
es decir, los pines que van del 1 al 13. Se diferencian de las
analógicas porque éstas son capaces de “entender” sólo dos
niveles de señal, LOW o valores cercanos a 0 V y HIGH o
valores cercanos a 5 V. Puede parecer una desventaja pero en
realidad puede ser todo lo contrario. Y no sólo porque a veces
únicamente necesitemos saber dos estados (interruptor,
pulsador, sensor de presencia, final de carrera....) sino porque
así es capaz de leer señales de pulsos digitales. Esto significa
que puede comunicarse .
Probar entradas y salidas digitales
Encender Led sucesivos
Encender los 3 Leds al mismo tiempo
Ejercicio
Coloque 6 leds en un circuito del pin 2 al 7; genere 1 número aleatorio
del 2 al 7 y encienda el led respectivo.
Entradas y salidas analógicas
Las entradas analógicas del modelo Uno son las
correspondientes a los pines de A0 a A5. Se caracterizan por
leer valores de tensión de 0 a 5 Voltios con una resolución de
1024 (10 bits). Si dividimos 5 entre 1024 tenemos que ser
capaz de detectar variaciones en el nivel de la señal de
entrada de casi 5 mV
Para hacer la lectura de uno de estos pines escribiremos en
nuestro código.
lectura = analogRead(pinentrada);
“lectura” lo sustituimos por el nombre de la variable donde
queramos almacenar el valor leído y en “pinentrada”
tendremos que poner el número del pin analógico que hemos
elegido (0,1,...5) o el nombre de la variable que almacena
dicho número.
Esta función nos devolverá un valor que va de 0 a 1023 en
proporción al nivel de la señal de entrada. Para una entrada
nula obtendremos el valor 0, para una entrada de 2.5 Voltios
511 (la mitad de 1023) y para 5 Voltios 1023.
Probar entradas y salidas analógicas
SALIDAS ANALÓGICAS PWM EN ARDUINO
Ya hemos visto cómo usar las entradas digitales y las entradas analógicas
para recibir señales del mundo. También hemos visto como interactuar con
el entorno mediante las salidas digitales.

Sin embargo, en ocasiones no será suficiente con una señal digital (ON/OFF),
si no que necesitaremos proporcionar un valor analógico de tensión, por
ejemplo, para regular la intensidad de iluminación de un LED, o variar la
velocidad de un motor DC.

En esta parte vamos a ver cómo utilizar una salida PWM para emular una
señal analógica de tensión desde Arduino.
¿CÓMO FUNCIONA UNA SALIDA
ANALÓGICA?
Las salidas analógicas son algo más complicadas que las digitales (como
ya pasaba con las entradas analógicas y digitales).

Lo primero que tenemos que entender es que la mayoría de


automatismos (y Arduino no es una excepción) no son capaces de
proporcionar una auténtica salida analógica. Ni siquiera pueden
suministrar una salida analógica discretizada (es decir, a saltos) de
tensión. Lo único que pueden proporcionar es una salida digital de -Vcc
o Vcc. (por ejemplo, 0V y 5V)
Para salvar esta limitación y simular una salida analógica la mayoría de
los automatismos emplean un "truco", que consiste en activar una
salida digital durante un tiempo y mantenerla apagada durante el resto.
El promedio de la tensión de salida, a lo largo del tiempo, será igual al
valor analógico deseado.

Existe más de una forma de hacer esta aproximación. Una de las más
sencillas, y por ello muy empleada en automatización, es la modulación
de ancho de pulso (PWM). En esta modulación se mantiene constante
la frecuencia (es decir, el tiempo entre disparo de pulsos), mientras que
se hace variar la anchura del pulso.
SALIDAS ANALÓGICAS EN ARDUINO
Arduino implementa por hardware salidas PWM en varios de sus pines,
que aparecen identificados en la placa con el símbolo "~" junto al
número del pin. También podemos emular por software señales PWM,
pero con la carga de trabajo adicional que ello supone para el
procesador.

En Arduino Uno, Mini y Nano, disponemos de 6 salidas PWM de 8bits


en los pines 3, 5, 6, 9, 10 y 11.
Cambiar la intensidad con PWM
Escritura en pines análogos, es posible?
Tarea
• Haga una aplicación que cambie la intensidad de 1 led de 0 a 255 y de
254 a 1.
• Utilice 1 contador a positivo y negativo con ciclos for o While.

También podría gustarte