Conceptos Fundamentales de Programación y Sistemas Digitales

1. ¿Qué es una variable en programación?

Es un espacio de memoria que permite almacenar ciertos datos cuyo valor no es constante, sino que puede ir cambiando a lo largo de la ejecución del programa.

2. Nombra, al menos, 5 tipos de datos y su uso.

  • Numéricos: magnitudes numéricas.
  • Tablas: estructuras compuestas por filas y columnas.
  • Booleanos: solo admite dos valores (verdadero/falso).
  • Caracteres o cadena: conjunto de caracteres reconocidos por el PC.
  • Árboles o grafos: elementos no lineales enlazados.

3. ¿Qué diferencia existe entre el bucle for y el bucle while?

El bucle for se usa cuando sabemos cuántas veces se repetirá el ciclo.

El bucle while se usa cuando no sabemos cuántas repeticiones habrá y depende de una condición.

4. ¿Qué es el lenguaje máquina?

Es el que entiende directamente el ordenador, usando el código binario.

5. ¿Qué es y para qué se usa un algoritmo?

Es una sucesión de pasos que se deben llevar a cabo para resolver un problema.

6. ¿Qué es un programa informático?

Es una secuencia de instrucciones entendibles por un ordenador que permiten la realización de las acciones para las que ha sido creado.

7. ¿Qué es el código fuente?

Las instrucciones que el programador indica que deben ser ejecutadas a fin de realizar las acciones para las que el programa ha sido diseñado.

8. ¿Para qué se utiliza un diagrama de flujo? Dime 3 símbolos que se usen en un diagrama de este tipo.

Para representar el flujo de información a lo largo del programa desarrollado.

Tres símbolos comunes son: Terminal, Proceso y Pantalla.

9. ¿Para qué se compila un programa?

Se compila un programa para traducirlo a un lenguaje que entienda el ordenador.

La compilación permite detectar errores antes de ejecutarlo.

El resultado suele ser un archivo ejecutable listo para correr.

10. Indica los pasos para desarrollar un programa.

  1. Definición y análisis del problema.
  2. Diseño del algoritmo mediante diagramas de flujo.
  3. Codificación del programa.
  4. Compilación.
  5. Depuración de errores y verificación del programa.
  6. Explotación.

11. Las órdenes o instrucciones de un programa pueden dividirse en tres grandes secciones. ¿Dime cuáles?

Las órdenes o instrucciones de un programa pueden dividirse en tres grandes secciones, cada una de las cuales corresponde a una parte de la codificación del programa:

  • Entrada de datos: Aquí se engloban todas aquellas instrucciones que recogen datos de un dispositivo o periférico (por ejemplo, el teclado o un sensor), que se almacenan después en la memoria central o principal para su proceso posterior.
  • Proceso o algoritmo: En esta parte del programa se escriben las instrucciones o sentencias encargadas de procesar los datos recogidos en la sección anterior, conforme al propósito o finalidad del programa. Los resultados obtenidos se almacenan nuevamente en la memoria principal.
  • Salida de datos o resultado: Este bloque está formado por las instrucciones que toman los resultados obtenidos en la etapa de proceso, que se envían a los dispositivos de salida de la información (por ejemplo, la pantalla o un actuador).

12. ¿Qué tres procedimientos distinguimos en la depuración de un programa?

  1. Detección de errores de compilación.
  2. Detección de errores en el funcionamiento.
  3. Optimización de la programación.

13. Explica cómo se usa la estructura if/else.

Es una sentencia de selección, es decir, se toma una decisión basada en el resultado de una condición. Se inicia con la instrucción if. Si la expresión es cierta, se ejecutan las sentencias del primer bloque (entre llaves), y en cualquier otro caso (else) se ejecuta la instrucción del segundo bloque.

14. ¿Qué es un bucle y qué se ha de proporcionar siempre que se programe?

Son instrucciones que se repiten un número limitado de veces o hasta que se cumple una determinada condición. Por lo que para que funcionen necesitan tener una salida (una condición de fin).

15. ¿Qué diferencia existe entre void setup() y void loop()?

void setup() se ejecuta una sola vez al iniciar el programa y se usa para configurar el entorno (inicializar pines, comunicaciones, etc.).

void loop() se ejecuta continuamente y contiene las acciones que deben repetirse. Contiene el programa principal.

16. ¿Qué diferencia existe entre un automatismo y un robot?

Un automatismo realiza tareas específicas de forma automática y repetitiva, sin adaptarse a cambios.

Un robot es más complejo: puede percibir su entorno, tomar decisiones y adaptarse.

17. ¿Qué dos tipos de sistema de control existen? Explícalos y pon algún ejemplo.

Existen dos tipos de sistemas de control:

  • Sistemas de lazo abierto: En ellos no se tiene en cuenta la señal de salida en la acción de control. Por ejemplo, cuando encendemos un ventilador, va a funcionar siempre independientemente de la temperatura de la habitación.
  • Sistemas de lazo cerrado: En ellos la señal de salida se compara con la de la entrada para corregir los posibles errores y ajustar la acción de control al valor deseado. Por ejemplo, cuando regulamos el termostato de la calefacción a 21ºC, ya que mide periódicamente la temperatura ambiente y, si detecta que ha bajado, pone en marcha la calefacción.

18. ¿Cuál es la diferencia entre sensor y actuador?

Un sensor capta información del entorno (como luz, temperatura o movimiento).

Un actuador ejecuta una acción física (como mover un motor o encender una luz).

En resumen: el sensor detecta, el actuador actúa.

19. Indica 4 sensores y explica su funcionamiento.

  • Sensor de humedad Arduino: Este sensor da un valor de voltaje analógico (variable) en función del nivel de humedad que detecta.
  • Sensor de temperatura ambiente y humedad relativa (DHT11, DHT22): Mide un rango de temperatura y un rango de humedad relativa.
  • Sensor de intensidad luminosa (LDR): Cuanto más luz recibe, menos resistencia ofrece al paso de la corriente.
  • Sensor de contacto (Conmutador final de carrera): Un conmutador cambia de posición al ser accionada la palanca de NC (Normalmente Cerrado) a NA (Normalmente Abierto).

20. Indica 3 actuadores y explica su funcionamiento.

  • Zumbador: Es un transductor electroacústico que produce un sonido continuo o intermitente de un mismo tono.
  • Display de 7 segmentos: Cada segmento se conecta a un pin digital, de forma que para representar un número hay que encender la combinación de segmentos correspondiente.
  • Una pantalla de cristal líquido o LCD: Es un dispositivo que sirve para presentar imágenes o caracteres. El número de pines y la conexión varían según el tipo de pantalla y lo que se quiera representar.

21. ¿Qué es la IoT?

Es el Internet de las Cosas, o en inglés, Internet of Things (IoT). Hace referencia a la interconexión de dispositivos físicos a través de una red privada, o Internet, de modo que todos ellos pueden ser visibles e interactuar.

22. ¿Qué es un Bus de datos?

Un bus de datos es un conjunto de líneas o cables que transporta información entre los componentes de un sistema (como microprocesador, memoria o periféricos). Permite el intercambio de datos dentro de un dispositivo electrónico.

En resumen: es la “autopista” por donde circulan los datos.

23. ¿Qué es una HMI y para qué se usa?

Una HMI (Interfaz Hombre-Máquina) es un dispositivo o software que permite la comunicación entre un operador y una máquina o sistema. Se usa para visualizar datos, controlar procesos y supervisar el funcionamiento de sistemas automatizados. Es común en industrias para facilitar el monitoreo y manejo de equipos.

24. ¿En qué consiste un sistema SCADA?

Un sistema SCADA es un sistema de control industrial que permite supervisar, controlar y adquirir datos en tiempo real de procesos a distancia.

25. Explica en qué consisten las entradas y salidas analógicas y digitales de Arduino. ¿A qué tensión trabajan?

En Arduino, las entradas y salidas digitales detectan o envían solo dos estados: alto (1) o bajo (0), es decir, 5V o 0V.

Las entradas y salidas analógicas, en cambio, permiten leer o generar valores variables, como una señal de 0 a 5V. Las entradas analógicas leen voltajes variables.

26. ¿Qué diferencia hay entre SPI e I2C?

La principal diferencia entre SPI e I2C es la forma en que se comunican los dispositivos:

  • SPI: usa 4 cables y permite una comunicación más rápida, ideal para cortas distancias y alta velocidad.
  • I2C: usa solo 2 cables y permite conectar varios dispositivos con direcciones únicas en el mismo bus, aunque es más lento que SPI.