Entradas y salidas digitales y analógicas en microcontroladores / Digital and analog inputs and outputs on microcontrollers

Español

Como se comentó en una entrada anterior del Blog (¿Qué son los dispositivos progrmables?) los microcontroladores se llaman también sistemas empotrados o embebidos, porque están contenidos en el dispositivo que pretenden controlar. Por ejemplo, aparecen embebidos en los coches en los que controlan la climatización, la velocidad, los elevalunas, etc. Otra característica importante de este tipo de sistemas es que se utilizan para controlar dispositivos del mundo real. Se utilizan en coches, aviones, lavadoras, etc. Esto hace que sea muy importante que este tipo de dispositivos pueda comunicarse con su entorno, adquiriendo información del mismo y actuando sobre él. Por ejemplo, el control de la climatización de un coche necesita adquirir la temperatura del vehículo, que se enviará a un microcontrolador, que hará sus cálculos, decidirá a qué velocidad debe girar el ventilador del coche y enviará esta señal al ventilador.

Los dispositivos que se encargan de comunicar el microprocesador con el mundo exterior se denominan periféricos de entrada/salida y son muy variados. En un microcontrolador los periféricos que se emplean van a depender mucho del tipo de variable con la que vayamos a interactuar.

Si se va a a leer o escribir sobre una variable binaria, es decir, sobre una variable que solo puede tomar dos valores, 1 ó 0 (encendido o apagado), se utilizarán lo que se denomina entradas salidas digitales. En los microcontroladores suele haber varios puertos que son entradas y salidas digitales, normalmente cuando se programan, se puede elegir que actúen como entradas o como salidas. Si el puerto es una entrada, cuando por ese puerto circule corriente (normalmente en los microcontroladores se utiliza un voltaje de 3.3v o de 5 v), se interpretará que esa entrada está a 1, es decir encendida, y se enviará esa señal al microcontrolador. Si el puerto es de salida, por ese puerto se enviará hacia fuera una corriente eléctrica.

En la Figura 1, puede verse una placa Arduino, que posee 13 entradas digitales en la parte superior.

Si la variable que necesita leerse es analógica, es decir, puede tomar cualquier valor, no únicamente 0 ó 1, se utilizaran entradas y salidas analógicas. Entradas analógicas son por ejemplo la temperatura, la velocidad o la luminosidad. Hay que tener en cuenta que los sistemas empotrados son sistemas digitales, es decir solo entienden ceros y unos, por lo que las entradas, aunque sean analógicas, se transformaran en digitales internamente, en lo que se denominan conversores analógico-digitales (ADC por sus siglas en inglés), ya que convierten una señal exterior analógica, normalmente un voltaje, representativo de la variable medida, en una señal digital. Por ejemplo, si se quiere medir una temperatura, se necesitará un sensor, que mida la temperatura y la convierta en un voltaje (normalmente un valor entre 0 y 5v). Este voltaje se envía a la placa microcontroladora, que a su vez lo transformará en un valor digital y se lo enviará al microprocesador.

En el caso de las salidas analógicas, el microprocesador enviará al exterior una señal digital (p.e. 10101110), esta señal debe transformarse en una señal de voltaje, para poder ser entendida por el actuador exterior. Esto se realizará un conversor digital-analógico (DAC por sus siglas en inglés). Por último, señalar que las entradas y salidas analógicas, necesitan estar conectadas a una señal de voltaje, y a una señal de tierra. Por ejemplo, en la Figura 1 puede verse un sensor de temperatura conectado a una placa Arduino. Este sensor está alimentado mediante un cable rojo que le proporciona un voltaje de 5 v. Podemos ver también como el sensor de temperatura también están unidos utilizando un cable negro a tierra (GND). Por último, la señal de temperatura en forma de voltaje se envía a la placa utilizando un cable naranja. Esta temperatura se transformará a una señal digital en el interior del procesador.

Figura 1. Placa Arduino con un sensor de temperatura conectado. Esquema realizado utilizando el software circuito.io (www.circuito.io)

 

English

As mentioned in an earlier Blog post (What are programmable devices?), microcontrollers are also called embedded systems, because they are contained in the device they intend to control. For example, they appear embedded in cars to control the air conditioning, the speed, the windows, etc. Another important feature of this type of systems is that they are used to control real-world devices. They are used in cars, airplanes, washing machines, etc. For that reason, it is very important that these devices are able to communicate with their environment, acquiring information and acting on it. For example, the control of the air conditioning of a car needs to measure the car temperature, which will be sent to a microcontroller, which will make some calculations, decide at what speed the car fan should turn and send this signal to the fan.

The devices that are responsible for communicating the microprocessor with the outside world are called input / output peripherals and there is a variety of them.

In a microcontroller the used peripherals will depend a lot on the type of variable to interact.

If you are going to read or write a binary variable, that is, a variable that can only take two values, 1 or 0, ON or OFF, digital output/inputs (Digital I/O) will be used. In microcontrollers there are usually several ports that are digital inputs and outputs, usually when programmed, they can act as inputs or outputs. If the port is an input, when current flows through that port (normally a voltage of 3.3v or 5v is used in the microcontrollers), that input is interpreted to be 1 (ON), and that signal will be sent to the microcontroller. If the port is an outlet, an electric current will be sent out through that port. In Figure 1, an Arduino board can be seen, which has 13 digital inputs at the top.

If the variable that needs to be read is analog, that is, it can take any value, not only 0 or 1, analog inputs and outputs will be used. Analog inputs are for example temperature, speed or brightness. Keep in mind that embedded systems are digital systems, that is, they only understand zeros and ones. Thus, the inputs, even if they are analog, will become digital internally, in what are called Analog to Digital converters (ADC), since they convert an analog external signal, usually a voltage, representative of the measured variable, in a digital signal. For example, if you want to measure a temperature, you will need a sensor that measures the temperature and converts it into a voltage (usually a value between 0 and 5v). This voltage is sent to the microcontroller board, which will transform it into a digital signal and send it to the microprocessor.

For the case of analog outputs, the microprocessor will send a digital signal abroad, this signal must be transformed into a voltage signal, in order to be understood by the external actuator. This will be done by a Digital to Analog converter (DAC). Finally, it should be noted that the analog inputs and outputs need to be connected to a voltage signal, and a ground signal. For example, a temperature sensor connected to an Arduino board can be seen in Figure 1. This sensor is powered by the red wire that provides a voltage of 5 v. We can also see how the temperature sensor is connected using a black ground wire (GND). Finally, the voltage signal in the form of voltage is sent to the board using an orange wire. This temperature will be transformed to a digital signal inside the processor.