¿Qué es una señal digital?
Una señal digital es aquella que sólo puede tomar ciertos valores (alto o bajo). Su forma característica es conocida como señal de onda cuadrada y las representaciones se realizan en el dominio del tiempo. La función principal de las salidas digitales es entregar una señal de control que le dará funcionalidad a un circuito electrónico que será el encargado de cumplir con las funciones que el usuario requiera.
Los sistemas electrónicos manejan este tipo de señales binarias.
Las entradas digitales permiten recibir señales de voltaje. En Arduino disponemos de 14 pines digitales serigrafiados con los números del 0 al 13, utilizados para entradas y salidas digitales.
La entrada digital toma los valores 0V (bajo) ó 5V (alto).
🦾Entradas digitales en Arduino
Es importante recordar que no podemos sobrepasar los límites de voltaje permitidos, es decir, si se aplica un voltaje mayor a 5 voltios en una entrada digital, la placa de Arduino se quemará. Lo mismo aplica para voltajes negativos, por lo que debemos asegurar que el voltaje aplicado a una entrada digital se encuentre entre 0 y 5 voltios.
Antes de continuar explicaremos algunos puntos a tener en cuenta para programar en Arduino.
Estructura de un programa en Arduino IDE
Todo programa para Arduino consta de 2 funciones;
la función setup() y la función loop().
La función setup() es la primera función que se ejecuta en nuestro programa, ejecutándose sólo una vez, y se utiliza para configurar la comunicación con nuestro equipo, inicializar los pines de nuestra tarjeta de Arduino e inicialización de las variables.
// La función setup() es la primera función en ejecutarse, una sola vez
void setup(){
Instrucción 1
Instrucción 2
...
Instrucción N
}
La función loop() se ejecuta repetidamente después de la función setup(). Dentro de la misma vamos a introducir el programa que queremos ejecutar dentro de la placa de Arduino.
// La función loop() se ejecuta repetidamente en modo bucle infinito
void loop(){
Instrucción 1
Instrucción 2
...
Instrucción N
}
Sintaxis de programación en Arduino IDE
Es importante tener claras las siguientes reglas del lenguaje de programación:
Toda línea termina en punto y coma ";" excepto las estructuras de control que se acompañan con llaves "{}".
Las instrucciones y variables son sensibles a mayúsculas y minúsculas, es decir, debemos respetar el nombre exacto.
Las instrucciones que comienzan por el símbolo de doble barra "//" se tomará como comentario para el programa. También se dispone de comentarios de múltiples líneas /* */.
Instrucciones de programación: Entradas digitales
Para programar las siguientes prácticas utilizando el lenguaje de programación textual de Arduino IDE, deberás conocer las siguientes instrucciones de programación.
Función pinMode()
La función pinMode(), utilizada en la función setup(), sirve para configurar el modo de trabajo de un pin pudiendo ser INPUT (entrada) u OUTPUT (salida).
Función digitalRead()
La función digitalRead(), utilizada normalmente en la función loop(), sirve para leer un valor (o poner en un estado) un pin digital.
Los valores o estados posibles son HIGH (alto) o LOW (bajo).
El valor leído puede ser almacenado en una variable o comprobarse dinámicamente en una condición.
Función pulseIn()
La función pulseIn() sirve para detectar el cambio de estado en una señal por ultrasonidos, es decir, si se configura el pin echo del sensor de ultrasonidos a un valor alto (HIGH), devolverá el tiempo transcurrido entre el cambio de estado a ese valor. Previamente habrá que establecer el pin del triger en el sensor ultrasonidos a un valor bajo (LOW). De esta forma, sabiendo el tiempo transcurrido se puede calcular una distancia.
Función delayMicroseconds()
La función delayMicroseconds() sirve para detener el flujo del programa durante una cantidad de tiempo. Dicha cantidad de tiempo está representada en milisegundos.