Download ROBO Pro Coding App
Antes de empezar, tienes que descargar la aplicación. Sólo tiene que seleccionar el sistema operativo adecuado y hacer clic en el enlace:
Download Voice Control
Dígale al robot dónde tiene que ir de largo. Descargue nuestra aplicación de control por voz y dé al robot órdenes individuales:
Es imposible imaginar nuestro mundo moderno sin ordenadores. Nos rodean no sólo en forma de PC, portátiles o tabletas: los llevamos en el bolsillo como smartphones, están en nuestros coches, en lavavajillas y lavadoras, en controles de calefacción, en e-bikes y en cafeteras.
Año tras año se hacen más potentes y, al mismo tiempo, más pequeños y compactos. Esto también aumenta sus campos de aplicación, porque ahora pueden adaptarse a la aplicación respectiva e integrarse en ella como "sistemas embebidos". Detectan y "miden" su entorno con sensores y controlan motores, LED u otros actuadores. Mediante modernas tecnologías de radiocomunicación, como WLAN o Bluetooth, pueden conectarse en red e intercambiar datos entre sí o con un centro de control.
Pero, ¿cómo funcionan estos sistemas empotrados y su respectivo "corazón", el microprocesador? ¿Qué es un microcontrolador y cómo se utiliza para registrar y evaluar los datos de los sensores? ¿Cómo se controlan los sistemas móviles, por ejemplo robots o vehículos? ¿Cómo pueden comunicarse los sistemas entre sí e intercambiar datos?
Esta unidad de aprendizaje se centra en la comprensión de los microcontroladores y su uso. Se explican los fundamentos centrales y se profundiza en su aplicación práctica en los ejercicios (tareas). Se presentan varias áreas importantes de aplicación de los microcontroladores: Medición, comunicación, codificación y encriptación, control y regulación, robótica y conducción autónoma.
Definición
Un microcontrolador es un sistema de control compuesto por un microprocesador y una serie de entradas y salidas. A las entradas se conectan sensores o memorias, y a las salidas, actuadores como motores, LED o pantallas. Los microcontroladores disponen de una memoria de trabajo volátil (RAM), que se borra cuando se apaga el aparato, y normalmente también de una EEPROM, en la que se pueden almacenar programas y datos de forma permanente. A diferencia de los portátiles y los PC, no disponen de teclado como unidad de entrada ni de pantalla como unidad de salida, sino que deben controlarse por separado.
Los representantes más conocidos y extendidos de este tipo de microcontroladores son, por ejemplo, el Arduino, el BBC micro:bit, el Calliope Mini y el TXT Controller de fischertechnik.
El corazón del microcontrolador es un microprocesador. En sí mismo, un microprocesador es un circuito integrado (CI) que carga instrucciones y datos de una memoria (temporal) -llamada memoria de acceso aleatorio (RAM)- en los registros del CI, los procesa en una unidad de cálculo y almacena el resultado de nuevo en la RAM. Un microprocesador se compone esencialmente de transistores, "interruptores" electrónicos que conocen exactamente dos estados: "encendido" y "apagado". Estos transistores pueden utilizarse para construir circuitos lógicos como conexiones "y", "o" y "no". Los resultados se almacenan en un "flip-flop", un interruptor basculante estable (más detalles en el recuadro educativo "Electrónica").
Un cristal de cuarzo ajusta el reloj del microprocesador, es decir, la velocidad a la que éste procesa las órdenes y los pasos de cálculo internos. Las órdenes se especifican en un código máquina (que varía en función del tipo de microprocesador) y constan de una orden (por ejemplo, "sumar dos valores") y, en función de la orden, varios parámetros (por ejemplo, los dos valores que hay que sumar o los registros en los que se almacenan los valores).
El rendimiento del microprocesador viene determinado por la velocidad del reloj, la anchura de los datos en bits (que indica lo grandes que pueden ser las direcciones y valores que las instrucciones del microprocesador pueden procesar en un solo paso) y el propio código máquina: Por regla general, cuanto más complejas sean las instrucciones que puede ejecutar el CI, más rápido será el procesamiento de los datos. Para acelerar el acceso a la RAM, muchos microprocesadores actuales contienen su propia memoria caché en la que almacenan temporalmente las instrucciones y los datos durante el procesamiento.
Los microprocesadores que se utilizan hoy en día en ordenadores portátiles y PC pueden procesar datos de 64 bits de longitud (valores, direcciones RAM), contienen varios miles de millones de transistores y funcionan a varios GHz (miles de millones de oscilaciones por segundo). Pueden compartir el trabajo ("multinúcleo") y tienen muchos megabytes de memoria caché. En los microcontroladores actuales se suelen utilizar microprocesadores con una anchura de palabra de 32 bits y una frecuencia de reloj inferior a un GHz, lo que es, con mucho, suficiente para las tareas de un microcontrolador.
Historia
Desde la antigüedad se ha experimentado con autómatas, construcciones que, impulsadas por aire o agua, realizan trabajos de forma autónoma, ejecutan secuencias predeterminadas de movimientos a la orden o incluso producen música. En el siglo XV d.C., Leonardo da Vinci (1452-1519) construyó numerosas máquinas que impresionaron al pueblo y a la nobleza en teatros y cortes principescas. Wolfgang von Kempelen (1734-1804) construyó en 1791 un aparato funcional de síntesis del habla. Se considera que el primer "autómata programable" fue el control de tarjetas perforadas para telares mecánicos desarrollado por Joseph-Marie Jacquard (1752-1834) en 1805.
Sin embargo, el gran avance para el desarrollo de controles de uso flexible no llegó hasta el desarrollo del ordenador. La invención del circuito integrado (CI) en 1958/1959 por Jack Kilby (1923-2005) y Robert Noyce (1927-1990) y el desarrollo del microprocesador en 1971, inventado y patentado por ingenieros de la empresa Texas Instruments, hicieron posibles unos mandos muy flexibles, ligeros, rápidos y sin desgaste, pero sobre todo programables. El primer microprocesador, el TMS1000, contenía 8.000 transistores. Desde entonces, el número de transistores de un microprocesador se ha duplicado aproximadamente cada 18 meses. Esta evolución también se conoce como "Ley de Moore", en honor a Gordon Moore (*1929), quien dedujo esta relación en 1965 a partir del desarrollo ulterior de los circuitos integrados en los años precedentes. Los microprocesadores actuales constan de varios miles de millones de transistores y apenas son mayores que el TMS1000.
¿Cómo se programa un microcontrolador?
El microcontrolador no suele programarse en el propio microcontrolador, sino en un entorno de programación o desarrollo especial (entorno de desarrollo integrado, IDE) en un PC, portátil, tableta o incluso un smartphone. Los programas creados con éste se transfieren después a la memoria del microcontrolador a través de una interfaz de comunicación, por ejemplo USB, WLAN o Bluetooth, y se ejecutan allí.
Así es exactamente como se programa el TXT 4.0: Los programas se desarrollan en ROBO Pro Coding en un PC, portátil o tableta en el lenguaje de programación Blockly o Python y luego se transfieren a la TXT 4.0, donde se ejecutan.
¿Qué es un "autómata finito"?
Un "autómata finito" es un sistema cuyo comportamiento puede describirse como un conjunto finito de estados. La transición de un estado a otro se desencadena por condiciones (como sucesos, por ejemplo cambios en los valores de los sensores), a cada una de las cuales sigue una acción. Por eso, los autómatas finitos también se denominan "máquinas de estados" y se describen mediante diagramas de transición de estados.
Los autómatas finitos desempeñan un papel importante en la descripción de microcontroladores: casi todos los sistemas embebidos (como un controlador de ascensor o un robot) pueden entenderse como un sistema de un número finito de estados. La representación como diagrama de transición de estados suele simplificar considerablemente la comprensión del sistema y facilita la programación (sobre todo, sin errores). Esto se debe a que en cada estado sólo deben tenerse en cuenta los sucesos que conducen a un cambio de estado, como la solicitud de una señal "verde" en un semáforo peatonal (véase el ejemplo de la figura).
¿Qué son los datos analógicos y digitales?
Los microcontroladores sólo pueden procesar estados "on" y "off", es decir, valores binarios que pueden asumir dos estados diferentes. La evaluación de sensores que también sólo conocen dos estados, como un pulsador, un contacto de láminas (interruptor magnético) o un fototransistor, es por tanto muy sencilla, y el estado del sensor puede almacenarse como dato digital en un bit.
Pero en la realidad, por supuesto, no sólo hay estados binarios. Por ejemplo, la luminosidad, la temperatura o las distancias pueden adoptar valores muy diversos. También podemos medir esos datos analógicos con sensores, como una fotorresistencia, un termistor (conductor caliente) o un sensor de distancia por ultrasonidos. Sin embargo, para que nuestro microcontrolador pueda procesar estos valores analógicos, tiene que convertirlos en números, es decir, en datos digitales. Sin embargo, se trata de valores más complejos que los binarios que nos proporcionan los sensores digitales: Partiendo de los estados binarios, el microprocesador puede representar todos los valores numéricos mediante el sistema dual (y, mediante una codificación adecuada, también otros caracteres, como letras, pero de eso hablaremos más adelante).
La conversión del valor analógico del sensor en un número (es decir, un dato digital más complejo) se realiza en un microcontrolador mediante un convertidor analógico-digital (A/D): para ello, el valor presente del sensor, normalmente una resistencia eléctrica o una tensión, se "muestrea" electrónicamente. Si la resistencia o la tensión son altas, el convertidor A/D entrega un valor numérico grande; si el valor analógico aplicado es bajo, el valor numérico entregado al microcontrolador es pequeño. La precisión con la que puede determinarse el valor analógico aplicado a la entrada depende de la resolución del convertidor A/D. Ésta suele especificarse en la longitud de bits. Ésta suele especificarse en la longitud de bits del valor resultante.
Las ocho entradas del controlador TXT 4.0 pueden utilizarse como entradas digitales (binarias) y analógicas. Los convertidores A/D de las entradas muestrean valores analógicos como la resistencia eléctrica del conductor caliente, que cambia en función de la temperatura, con una precisión de 12 bits, es decir, convierten la resistencia en un número entre 0 y 4096. Utilizando diferentes tensiones de referencia, el TXT 4.0 puede incluso determinar con bastante precisión no sólo resistencias en el rango de medición de 5 kOhmios, sino también valores de resistencia considerablemente mayores.
¿Qué es la concurrencia?
La concurrencia es la propiedad de un sistema de ejecutar diferentes procesos simultáneamente (o "en paralelo"). La concurrencia se implementa (técnicamente) bien distribuyendo los procesos entre varios microprocesadores ("multinúcleo"), bien utilizando el microprocesador la multitarea para ejecutar los procesos paso a paso por turnos, de modo que se crea la impresión de un auténtico paralelismo.
Los procesos concurrentes son especialmente adecuados para programar procesos o eventos independientes, sobre todo si uno o varios de los procesos dependen del tiempo y se producen a un ritmo fijo (como el parpadeo de una luz). Para sincronizar los procesos concurrentes entre sí, se utilizan "semáforos": suelen ser variables accesibles a ambos procesos, cuyo valor puede ser utilizado, por ejemplo, por los procesos para informarse mutuamente de su estado o para esperarse unos a otros.
¿Cómo se determina la temperatura con un termistor?
Un termistor (también llamado termistor o resistencia NTC) es una resistencia cuyo valor de resistencia cambia en función de la temperatura. Los termistores tienen un coeficiente de temperatura negativo (NTC), es decir, el valor de la resistencia disminuye al aumentar la temperatura. El siguiente diagrama muestra la característica de resistencia del termistor fischertechnik.
El termistor fischertechnik tiene un valor de resistencia de 1,5 kOhmios a 25°C. Como puede observarse en el gráfico, la curva característica del termistor no es lineal. Pero se puede aproximar el valor de la temperatura con bastante exactitud utilizando una curva lineal. Para ello, hay que determinar un segundo valor medido y calcular a partir de él la ecuación de la función lineal.
A 25°C, el termistor fischertechnik tiene un valor de resistencia de 1,5 kOhmios. Como puede verse en el gráfico, la curva característica del termistor no es lineal. Sin embargo, se puede aproximar el valor de temperatura con bastante exactitud utilizando una curva lineal. Para ello, hay que determinar un segundo valor medido y calcular a partir de él la ecuación de la función lineal.
Para un cálculo más preciso del valor de temperatura T (en Kelvin) a partir del valor de resistencia R de una resistencia NTC, se suele utilizar la siguiente ecuación de Steinhart-Hart:
1/T=a+b(lnR)+c(lnR)³
La temperatura en °C se obtiene a partir de T restando 273,15.
Con dos valores medidos adicionales (además del valor de resistencia de 1,5 kOhmios a 25 °C), podemos establecer un sistema de ecuaciones con las tres incógnitas a, b y c. No es necesario que resolvamos nosotros mismos este sistema de ecuaciones: En la página web de Stanford Research Systems hay una "Calculadora de termistores" que calcula los parámetros de la ecuación de Steinhart-Hart a partir de los tres valores medidos.
¿Cómo funciona el sensor ultrasónico?
La distancia se mide emitiendo varias señales de 40 kHz de 200 µs de duración (en el espectro no audible para el ser humano) y midiendo el tiempo que tardan en recibir sus ecos, es decir, las ondas sonoras reflejadas por un objeto. A partir del tiempo de tránsito de las señales de eco, se puede calcular la distancia mediante la velocidad del sonido de la siguiente manera. Para la velocidad del sonido (en el aire) se aplica
c = (331,5+0,6∙t/°C) m/s
A temperatura ambiente (t=20°C), c es por tanto de unos 343,5 m/s o 0,03435 cm/µs. Para obtener la distancia en cm a partir del tiempo de recorrido de la señal (en µs), primero hay que dividirla por dos y luego multiplicarla por 0,03435 - o dividirla por 58,224 inmediatamente. Este trabajo lo realiza un circuito integrado en el sensor ultrasónico y proporciona la distancia en cm; el sensor también compensa automáticamente la influencia de la temperatura en la medición.
El alcance del sensor ultrasónico es de unos 4 m. A temperatura ambiente transcurren, por tanto, 400 ∙ 58,224 = 23,3 ms hasta que vuelve el eco de la señal de disparo de un objeto situado a 4 m de distancia. Si durante este tiempo no llega ningún eco al sensor, éste devuelve como resultado el valor "0" (ningún objeto dentro del alcance). El retardo causado por el tiempo de propagación de la señal debe tenerse en cuenta en el sistema de control de un sistema móvil (como un vehículo).
Las ondas sonoras se propagan en círculo, por lo que el sensor tiene una cierta dispersión. Así, no sólo detecta los obstáculos situados directamente delante de él, sino también los objetos situados a los lados (véase la figura).
Por último, es importante señalar que los ecos sólo llegan al sensor cuando las ondas sonoras chocan con el objeto en un ángulo no demasiado agudo. Esto puede comprobarse fácilmente de forma experimental.
¿Qué es un código?
Un código es -en general- un acuerdo sobre la representación inequívoca de cierta información. Los códigos son necesarios para la transmisión, pero también para la visualización de la información. A cada carácter de un código se le asigna un significado determinado. Los códigos que encontramos a diario son, por ejemplo, los números (arábigos) para representar cifras o el lenguaje escrito para representar palabras y frases. Otros códigos son las notas de los pentagramas para representar el tono y la duración de los tonos o los símbolos de los circuitos para representar los componentes electrónicos. Cuando una persona quiere documentar información para otra o intercambiar información entre sí, necesita un código que tanto el emisor como el receptor conozcan.
Sin embargo, los códigos no sólo desempeñan un papel importante entre las personas: ni siquiera los ordenadores pueden intercambiar información sin códigos, ni con las personas ni entre sí. Los códigos que utilizan o entienden los ordenadores deben ser especialmente claros e inequívocos para evitar malentendidos. Por esta razón, muchos códigos se diseñan de forma que puedan detectarse errores, por ejemplo, debidos a un mal funcionamiento durante la transmisión. Incluso hay códigos que detectan errores y pueden corregirlos.
¿Cómo se comunican los ordenadores?
Si quieres "comunicarte" con la ayuda de microcontroladores, primero tienes que convertir la información (mensajes) en datos que el microcontrolador va a transmitir. El mensaje puede ser casi cualquier cosa: un texto, una imagen, música, voz. Para transmitirlo, esta información debe codificarse. Para ello, el emisor y el receptor deben ponerse de acuerdo sobre una codificación que ambos conozcan (en la práctica, las normas técnicas se encargan de ello).
El flujo de datos resultante de la codificación puede entonces transmitirse mediante sonidos (ondas sonoras), señales visibles, corrientes eléctricas en una línea, como impulsos luminosos en una conexión de fibra óptica o como onda electromagnética "a través del aire". Las señales de bandera en un aeropuerto, las señales de sirena o de alarma de incendios, los correos electrónicos, los chats, las conversaciones telefónicas, las videoconferencias, la navegación por smartphone... todos ellos son ejemplos de comunicación de información representada en una codificación acordada.
¿Cómo funcionan los códigos de barras?
Un código de barras es un "código de barras" o código de barras formado por barras verticales blancas y negras de diferentes anchuras. Los códigos de barras son códigos unidimensionales porque la información está contenida únicamente en la anchura de las barras (por ejemplo, barra estrecha = "0", barra ancha = "1"). El color de las barras (b/n) sólo sirve para distinguirlas. Los códigos de barras son "códigos ópticos", es decir, pueden ser leídos por un sensor capaz de distinguir "claro" y "oscuro" o por una cámara con evaluación de imagen. Los códigos de barras se utilizan principalmente para identificar objetos; pueden encontrarse, por ejemplo, en libros y revistas (ISBN/ISSN), en etiquetas de mercancías o en pegatinas para paquetes postales. Hay muchos códigos de barras distintos, que difieren en la densidad de la información y en los dígitos de control utilizados. Los códigos de barras tienen la ventaja de ser muy robustos y fáciles de leer; los lectores son también muy baratos.
Un código de barras típico es el Código 39, desarrollado por Intermec ya en 1973 y recogido desde entonces en especificaciones y normas de diversas organizaciones de normalización (incluidas ANSI e ISO) (por ejemplo, ISO/IEC 16388). Un carácter del Código 39 consta de nueve barras -cinco negras y cuatro blancas (los espacios intermedios)- de dos anchos diferentes. Una barra ancha representa un "1" y una barra estrecha representa un "0"; un carácter Código 39 corresponde, por tanto, a un número binario de nueve dígitos.
Cada carácter va precedido y seguido de un espacio en blanco (estrecho) para que puedan distinguirse los caracteres individuales. Los códigos de barras Código 39 tienen siempre la misma anchura, ya que el número de barras anchas por carácter es exactamente tres: dos negras y una blanca. Por lo tanto, un carácter del Código 39 siempre consta de seis barras estrechas y tres anchas, o seis "0" y tres "1". La norma Code 39 define un total de 44 caracteres: las 26 letras del alfabeto, los diez dígitos del "0" al "9" y los ocho caracteres especiales "*" (carácter de inicio/parada), espacios, "-", "+", ".", "/", "%" y "$".
Otra evolución de los códigos de barras son los códigos QR, que consisten en puntos sobre una superficie cuadrada. Son códigos bidimensionales y requieren una cámara para su lectura y descodificación.
¿Qué es el código Morse?
Uno de los primeros códigos "técnicos" utilizados para que las máquinas pudieran leer los caracteres fue el código Morse, desarrollado en 1838 por Alfred Vail (1807-1859), socio de Samuel Morse (1791-1872), y normalizado por primera vez en 1865. El código Morse representa los dígitos y las letras del alfabeto como secuencias diferentes de señales cortas ("Dit") y largas ("Dah"). Por tanto, no sólo puede utilizarse para la telegrafía eléctrica, sino que también puede emplear otras señales, como señales luminosas, tonos o guiones de dos longitudes diferentes, por lo que es totalmente independiente de la técnica de transmisión.
La codificación de las letras del alfabeto se muestra en el siguiente árbol de códigos. Una "E" se codifica con un "Dit", una "A" con un "Dit" seguido de un "Dah" y una "N" con un "Dah" seguido de un "Dit". Así pues, los caracteres del código tienen longitudes diferentes.
Esto confiere al código Morse otra propiedad muy valiosa: es muy eficaz porque utiliza secuencias de señales cortas para las letras de uso frecuente y más largas para las raras, compensando así parcialmente la redundancia de las lenguas naturales.
La longitud de un "dah" corresponde a la longitud de tres "dit". Se envía una pausa de un "dit" de longitud entre dos símbolos, una pausa de tres "dits" de longitud entre dos letras de una palabra y una pausa de siete "dits" de longitud entre dos palabras. La velocidad de transmisión viene determinada por la longitud de un "dit".
¿Cómo funciona el código de color RGB?
El código RGB es una codificación de tres bytes de los componentes de color R (rojo), G (verde) y B (azul, cada uno de 0-255) en un matiz. A partir de un valor RGB, el matiz puede determinarse del siguiente modo:
Determina el máximo Max:=max(R, G, B) y el mínimo Min:=min(R, G, B).
Calcula la diferencia Diff:=Max-Min
Si Diff > 0
Si Max = R: Tono := (G-B)/Diff
Si Max = G: Tono := 2+(B-R) Diff
Si Max = B: Tono := 4+(R-G) Diff
Tono := Tono/6
Si Tono < 0: Tono := Tono + 1
Ángulo del círculo cromático: Ángulo := Tono - 360
El resultado es el ángulo en el que se encuentra este color en la rueda cromática (véase la ilustración).
¿Qué es la redundancia?
En teoría de la información, la redundancia son los datos que pueden omitirse sin pérdida de información. Un código es redundante si requiere más bits de los que serían mínimamente necesarios para la representación de los distintos caracteres. Si todos los caracteres del código tienen la misma longitud, el número de bits adicionales del código que no son realmente necesarios para la representación de la información indica su redundancia. Por ejemplo, si queremos codificar una simple señal 1/0, necesariamente sólo necesitaremos un bit para ello. Sin embargo, si codificamos la señal con los dígitos "1" y "0" (como caracteres ASCII), nuestro código requiere ocho bits. Por tanto, la codificación tiene una redundancia de siete (bits):
Redundancia = log₂ (número de palabras de código posibles/número de caracteres a codificar).
En nuestro ejemplo, la redundancia es log₂ (2⁸/2) = log₂ (2⁷) = 7.
¿Cómo funciona la encriptación?
La encriptación de datos (también llamada cifrado) sirve para mantener en secreto el contenido de un mensaje entre emisor y receptor e impedir eficazmente que personas no autorizadas puedan "leerlo". Para ello, se utilizan procedimientos de cifrado que "modifican" el mensaje de una manera acordada entre emisor y receptor. Si es posible, no se mantiene en secreto el método de cifrado en sí, sino sólo una clave que sólo conocen el emisor y el receptor ("principio de Kerkhoff"). En la mayoría de los casos, los caracteres del mensaje se sustituyen por otros (sustitución) o se intercambian (permutación).
En el pasado, se utilizaban principalmente cifrados de sustitución simples. Uno de los procedimientos más conocidos es el llamado "cifrado César". En él, las letras del mensaje a transmitir se "desplazan" en el alfabeto un número fijo de dígitos (la clave). Así, con la clave "3", una "A" se convierte en una "D", una "B" en una "E" y así sucesivamente, hasta que una "Z" se convierte finalmente en una "C". El descifrado en el extremo del destinatario es exactamente lo contrario.
Un cifrado César es fácil de descifrar, porque la distribución de frecuencias de las letras de un lenguaje natural no cambia con el cifrado: En un texto largo, la letra más frecuente con diferencia es la "E". Si se conoce la letra más frecuente del texto cifrado, se sabe cuántos lugares hay que "desplazar" en el alfabeto para descifrar el texto escuchado.
Además, sólo hay 25 formas distintas de desplazar las letras del alfabeto: Es un número muy pequeño de claves posibles. Así que también podrías probar diferentes desplazamientos hasta que al descifrar salga un texto con sentido.
Mucho más difícil de descifrar es un cifrado publicado por Blaise de Vigenère (1523-1596) en 1586, en el que los caracteres del mensaje no están todos desplazados el mismo número de lugares en el alfabeto, sino según un esquema predeterminado. Así, la clave "1 5 12 4 8 7 11" significa que el primer carácter del mensaje se desplaza un lugar en el alfabeto, el segundo cinco, el tercero 12 y así sucesivamente, y finalmente el séptimo 11 lugares. El octavo carácter se desplaza de nuevo en uno, el noveno en cinco, y así sucesivamente. El método de cifrado de Vigenère se consideró indescifrable durante casi trescientos años.
A menudo, la clave no está representada por una secuencia de números, sino por las letras correspondientes del alfabeto - en el ejemplo anterior por "AELDHGK". Esto también facilita mucho la programación de la sustitución de los caracteres ("sumando" las posiciones en el alfabeto).
¿Qué es un regulador?
A diferencia de un control por microcontrolador, en el que un actuador se ajusta a un valor predefinido (por ejemplo, un LED a un valor de luminosidad o un motor codificador a una posición determinada), un controlador garantiza automáticamente el mantenimiento de un valor de referencia incluso en caso de perturbaciones (por ejemplo, un seguidor de vía continúa siguiendo la vía incluso en una curva).
Para ello, el controlador necesita un mecanismo de "realimentación" que le informe cuando se produzcan desviaciones respecto a la magnitud de referencia especificada. Esquemáticamente, un controlador puede representarse como en la figura siguiente:
Si la variable controlada se desvía de la variable de referencia (la consigna), el controlador corrige cambiando una variable manipulada para reducir la desviación. Por ejemplo, si se desea mantener constante el número de revoluciones de un eje accionado por motor por unidad de tiempo incluso con carga cambiante, hay que medir las revoluciones y aumentar o disminuir la tensión del motor en caso de desviaciones.
En control, se distinguen distintas formas de incorporar la desviación al cambio de la variable manipulada: Por ejemplo, con un controlador proporcional (también controlador P), la corrección se realiza en proporción a la fuerza de la desviación. Si el regulador se excede, es decir, si un efecto retardado de la regulación hace que la corrección tarde demasiado tiempo, la regulación puede amortiguarse con un elemento diferencial adicional (también elemento D), que tiene en cuenta el cambio de la desviación. De este modo, el control se refuerza en caso de una perturbación fuerte y repentina, y se debilita en caso de una disminución rápida de la desviación.
Un controlador integrador (controlador I o elemento I) también tiene en cuenta la duración de la desviación incorporando a la corrección la suma de las desviaciones medidas, lo que acelera la aproximación al valor deseado.
A la hora de diseñar un regulador adecuado, la determinación de los factores por los que deben multiplicarse los valores que entran en el control (desviación, cambio en la desviación, suma de desviaciones) para conseguir el efecto de control deseado es el mayor reto. A menudo, la forma más rápida de lograrlo es experimentalmente. Normalmente, se empieza determinando el factor para el elemento P y se selecciona de tal forma que el controlador no oscile (es decir, que disminuya el sobreimpulso). A continuación, se añade el factor para el elemento D y se empieza con un factor muy pequeño, que se aumenta lentamente hasta que la oscilación a la variable de referencia se produce con suficiente rapidez.
Con el elemento I, es importante no sumar permanentemente los valores de las desviaciones (por ejemplo, sólo tener en cuenta un número limitado de desviaciones pasadas o reducir el valor de la suma anterior antes de añadir la siguiente desviación, por ejemplo, dividirlo por un valor constante), de lo contrario, el elemento I dominará muy rápidamente los componentes P e I.
Un regulador con un elemento P, D e I también se denomina regulador PID.