[:es]Aprende a utilizar Arduino, criterios de selección de Arduino, manejo de entradas y salidas básicas, diagramas de conexión y ejemplos de programación con Facilino y Arduino.
¿Qué es Arduino?
- Es una plataforma de hardware libre con placas de desarrollo con microcontrolador y entorno de programación (IDE).
- Tuvo mucho éxito gracias a difundir de forma abierta los esquemas electrónicos.
- Interacciona con elementos físicos de nuestro entorno gracias a su variedad en entradas y salidas digitales y analógicas.
- Trabaja con señales de 5V de baja potencia y tiene una capacidad de procesamiento limitada.
- Placas más conocidas: Arduino Uno, Arduino Mega, Arduino Nano, Arduino Duemilanove, etc…
¿Qué podemos hacer con Arduino?
Proyectos de electrónica, por lo general sencillos. Existen una gran cantidad de fabricantes que proporcionan electrónicas preparadas para conectar todo tipo de sensores, actuadores, placas de expansión a Arduino:
- Mediciones de todo tipo de señales eléctricas, biomédicas, gases, etc…
- Control de motores CC, servo motores, motores paso a paso, etc…
- Comunicación con sensores o dispositivos inteligentes.
- Pantallas, leds, botones, acelerómetros, brújulas, magnetómetros, etc…
Todo a un precio muy asumible!
¿Qué Arduino necesito?
Claro está que depende de la aplicación… Debemos fijarnos concretamente en el número de entradas y salidas que necesitamos y fundamentalmente el tipo (analógica o digital). También es muy importante conocer si tiene hardware adicional incorporado como por ejemplo comunicación bluetooth, zigbee, etc.
Uno de los Arduinos más populares es Arduino Uno, diseñado para realizar montajes sencillos genéricos. Nuestra recomendación sin embargo es utilizar Arduino Nano v3.0 junto con una placa de expansión I/O. El motivo es bien claro, en precio el conjunto es más reducido que Arduino Uno, ofreciendo eléctricamente las mismas funcionalidades. Además tiene la principal ventaja de que la placa de expansión ofrece múltiples pines de +5V y 0V que nos permitirán conectar los diferentes sensores y actuadores de forma mucho más sencilla que con Arduino Uno (sólo dispone de unos pocos pines +5V o GND comunes a todos los dispositivos que tenemos que conectar).

Concretamente Arduino Nano v3.0 dispone de 14 E/S Digitales (numerados desde el 0 hasta el 13) y hasta 8 Entradas Analógicas. Lo que es, a veces, desconocido para mucha gente es que los pines analógicos pueden en cualquier caso utilizarse como pines de E/S Digital en caso de ser necesario (a excepción de los pines A6 y A7). Además, algunos pines pueden ofrecer una funcionalidad adicional, como por ejemplo la comunicación serie a través de los pines 0 y 1 que están conectados al puerto USB a través de un chip (FTDI en la versión oficial y CH340 en la versión china de Arduino). También ofrece funcionalidades para el control de motores con señales PWM, interrupciones (útil para pulsadores o detectores ópticos), I2C y/o SPI para la comunicación con otro tipo de dispositivos, etc. Para mayor información es conveniente mirar las especificaciones de Arduino Nano v3.0.
Entradas Digitales
Sensores tales como botones, interruptores, pulsadores, etc. son típicamente conectados como entrada digital a Arduino. Devuelven un estado de lectura HIGH o LOW en función de si la señal está a +5V o 0V, respectivamente.
A continuación se muestra un ejemplo de conexión a un pulsador, conectado a la entrada 2 digital (el módulo de pulsador incorpora una resistena anti-rebote).

Aquí podéis descargar el fichero Fritzing:
Un código de ejemplo de lectura de este pulsador utilizando Facilino sería como el mostrado a continuación:

Aquí podéis descargar el fichero Facilino:
En éste código se lee el estado del pin digital 2 y se compara con el valor «HIGH» (booleano). En caso de que sean ambos valores iguales, entonces se genera un mensaje por el puerto serie con el valor del pulsador.
Salidas Digitales
Actuadores, típicamente LEDs, zumbador (activo), relés, etc. son utilizados como salidas digitales. Pueden establecerse a dos posibles estados: HIGH o LOW.
Ojo que no podremos conectar cualquier dispositivo de salida a estos pines, ya que debemos tener la precaución que determinados elementos podrían consumir mucha corriente y por tanto debemos utilizar estas señales como señales de control, nunca como señales de potencia. En el siguiente ejemplo se utiliza un módulo de LED, que incorpora ya una resitencia, en caso de utilizar directamente un LED, deberemos incorporarla nosotros en serie. Tened en cuenta que precísamente el pin 13 que se ha utilizado para el ejemplo es el pin que Arduino Nano utiliza para encender su propio LED, con lo que observaréis que al encender el vuestro, también se enciende el LED propio de Arduino Nano.

Aquí podéis descargar el fichero Fritzing:
El siguiente código Facilino permite hacer parpadear al LED, es decir, se enciende y se apaga con una frecuencia de 1Hz (500ms encendido y 500ms apagado)

Aquí podéis descargar el fichero Facilino:
Entradas Analógicas
La gran mayoría de los sensores de Arduino proporcionan valores analógicos, esto es valores cuya señal está comprendida entre 0V y +5V. Esta señal es convertida por Arduino en un valor del tipo entero comprendido entre 0 y 1023. Por ejemplo, sensores que miden el cambio de una determinada variable física de forma analógica son los sensores de luz ambiente, potenciómetros, electródos, etc. A continuación se muestra un ejemplo de podríamos conectar una LDR (resistencia variable con la luz) a la entrada analógica A0 (también funciona con el sensor de luz TCRT5000). Si el nivel de luz aumenta, el valor de la resistencia disminuye. Este cambio lo aprovechamos para activar el propio led de Arduino conectado al pin 13.

Aquí podéis descargar el fichero Fritzing:
Un posible código para este ejemplo, en Facilino, sería como el mostrado a continuación:

Aquí podéis descargar el fichero Facilino:
[:en]Learn how to use Arduino, selection criteria, handling of basic inpunt and output, connection diagrams and some basic programming examples with Facilino.
What is Arduino?
- It’s a open hardware platform with breadboard including ATMEL microcontrollers and a programming environment (Arduino IDE).
- It has been very successful because all the sketches are open and because the simplicity of its API.
- Interacts with physical elements activating and deactivating digital and analog signals (inputs and outputs).
- It works with 5V signals and has a limited processing capability (compared to boards such as Raspberry PI).
- Most well known boards: Arduino Uno, Arduino Mega, Arduino Nano, Arduino Duemilanove, etc…
What we can do with Arduino?
Electronic projects, generally simple projects. There exists many manufacturers which provide electronics ready-to-use with Arduino boards with many sensors, actuators, expansion boards:
- Measuring all kind of electrical signals, biomedical signals, gas sensors, etc…
- Motor control (DC motors, servo motors, stepper motors), etc…
- Communications with sensors and smart devices.
- Screens, LEDs, buttons, accelerometers, digital compass, gyros, etc…
Everything at a very low cost!
Which is the most suitable Arduino platform?
Obviously, this basically depends on the application… We must know in advance how many inputs and outputs are required and their type (digital or analog). It is also very important to know is we need some additional required hardware such bluetooth, zigbee, I2C, SPI, wifi, etc.
One of the most popular Arduino boards is Arduino Uno, designed to create generic basic circuits. Our recommendation is to use Aduino Nano v3.0 together with its expansion board. The main reason is that both together can be even cheaper that the original Arduino Uno with the same electrical characteristics. In addition to this, it has, as main advantage to offer rows with pins connected to +5V and 0V which will allow as to directly connect many sensors and actuators, otherwise we need a breadboard to connect +5V and GND pins.

In particular, Arduino Nano v3.0 has 14 E/S available for digital input and output (numbered from 0 to 13) and 8 Analog Inputs (numbered from A0 to A7). Actually, analog inputs can be used as digital inputs and outputs if required, but pins A6 and A7, so potentially we could have up to 20 digital inputs and outputs. In addition to this, some pins can offer an extended features such pins 0 and 1 which are used for Serial communication with USB (through an FTDI chip in the original Arduino brand and CH340 in the Chinese versions). It also offers features to control motors with PWM signals, interrupts (useful to detect switches or optical sensors), I2C and SPI to communicate with other devices, etc. For more information, it is convenient to see the specifications for Arduino Nano v3.0.
Digital Inputs
Sensors such as buttons, switches, push-buttons, etc are typically connected as a digital input to Arduino. They provide a binary state signal HIGH or LOW depending on the signal level +5V or 0V, respectively.
Here we show an example of a push-button connected to digital input 2 (the push-button module includes a resistor to avoid signal rebounds).

Here you can get the Fritzing diagram:
An example code in Facilino to read the state of the push-button is shown below:

Here you can download Facilino code:
In this code, we read the state of the digital pin 2 and it is compared with the HIGH state. In case both are equal, then we print a message on the serial console indicating the HIGH push-button state, otherwise we show a message showing the LOW state.
Digital outputs
Actuators, such as LEDs, active buzzers, relays, are treated as digital outputs. We can set two possible states: HIGH or LOW.
When connecting a device to a digital output, the current to activate such device is provided by Arduino. The total amount of currents through these pins is very limited and we must avoid to connect directly through these pins devices requiring high current consumption. In this example, we use a LED module, which already includes a current limiting resistor. The pin 13 used in this example is used in Arduino Nano board as a built-in LED, so in this example both LEDs will light up simultaneously.

Here you can get the Fritzing connection diagram:
This code in Facilino allows to toggle the LED, that is, lights on and off alternatively at a frequency of 1Hz (500ms ON state and 500ms OFF state)

Here you can download Facilino code:
Analog Inputs
Most of sensors in Arduino provide analog values, range between 0V and +5V. This signal is converted by a ADC (analog to digital converter) to provide values between 0 and 1023. For instance, sensors measuring the change of a physical magnitude such as light ambient sensors (LDR), potentiometers, electrodes measuring body electrical signals, etc. Here we show how to connect an LDR (light dependent resistor) to analog input A0 (it also works with light sensor TCRT5000). If the light light level increases the value of the resistor decreases.This change is used to activate built-in LED connected to pin 13.

Here you can download Fritzing diagram:
Here you can see a Facilino for this circuit:

Here you can download Facilino code:
[:]