tutorial arduino

8. Control de servo de 0 a 180º. Tutorial Arduino

Para controlar un servo motor de giro continuo, debemos conectar el motor a la placa
del microcontrolador en función de las indicaciones del manual del motor.
Servomotor: EMAX ES08MA II

Las tres conexiones que debemos realizar son las siguientes:
VCC (Cable Anaranjado)
GND (Cable Negro)
Señal (Cable Amarillo)
Para el control del motor, conectaremos el cable identificado como “señal” al puerto 9
del Arduino UNO.
Para nuestro ejemplo, utilizamos un sensor Shield para Arduino UNO.
El sensor Shield, es una placa auxiliar que se coloca sobre el Arduino y nos permite
hacer las conexiones hacia los sensores, interruptores y en nuestro caso a los motores
de una forma mas sencilla.

Una vez realizadas las conexiones, debemos incluir en el programa del Arduino, la
librería servo.h

Esta librería nos permitirá controlar el servo de una manera muy sencilla.
La librería servo.h ya viene incluida en el ide de Arduino, por lo que no será necesario
descargar otra librería para efectuar el control del servomotor.
Luego debemos declarar el objeto que estará asociado al control de este motor.

Esto lo hacemos mediante la siguiente instrucción:
miservo.attach(9)
donde el argumento de la función, corresponde al pin en donde estará conectado el
cable identificado como “Señal” del motor.
Para nuestro ejemplo, hemos conectado el cable de control al pin 9 del Arduino UNO.
Por ultimo debemos escribir la instrucción con la cual controlaremos el ángulo del
servomotor.
Se trata de la instrucción miservo.write()

Como estamos trabajando con un servomotor de giro limitado, El argumento de esta
función corresponderá a la posición del eje del servomotor.
Si utilizamos (0) como argumento, el motor girara y se posicionara en 0 grados.
Si utilizamos (90), el motor girara y se posicionara en 90 grados.
Si utilizamos (180), el motor girara y se posicionara en 180 grados.

El programa hará que el eje del motor se posicione en 0 grados, haga una pausa de 1
segundo, luego se posicionara en 180 grados, hará una pausa de 1 segundo, luego
regresa a 0 grados, haga una pausa de ½ segundo, luego se posicionara en 45, 90, 135,
180 y regrese a 135, 90, 45 y 0 grados. Volviendo a realizar el ciclo.
Como pueden observar, es muy fácil controlar un servomotor utilizando un Arduino.

7. Control servo continuo. Tutorial Arduino

Para controlar un servo motor de giro continuo, debemos conectar el motor a la placa
del microcontrolador en función de las indicaciones del manual del motor.
Las tres conexiones que debemos realizar son las siguientes:
VCC, GND y Señal.
Una vez realizadas las conexiones, debemos incluir en el programa del Arduino, la librería
servo.h

Esta librería nos permitirá controlar el servo de una manera muy sencilla.
La librería servo.h ya viene incluida en el ide de Arduino, por lo que no será necesario
descargar otra librería para efectuar el control del motor.
Luego debemos declarar el objeto que estará asociado al control de este motor.

Esto lo hacemos mediante la siguiente instrucción:
miservo.attach(9)
donde el argumento de la función, corresponde al pin en donde estará conectado el cable
del motor que corresponde a la señal de control.
Para nuestro ejemplo, hemos conectado el cable de control al pin 9 del Arduino UNO.

Por ultimo debemos escribir la instrucción con la cual controlaremos la velocidad del
motor.
Se trata de la instrucción miservo.write()
Como estamos trabajando con un servomotor de giro continuo, El argumento de esta
función corresponderá a la velocidad con la cual girara el motor.
Si utilizamos (0) como argumento, el motor girara a máxima velocidad hacia un sentido.
Si utilizamos (90), el motor de detendrá.
Si utilizamos (180), el motor girara en sentido contrario.

Como estas instrucciones están escritas en el void loop (), estas se ejecutaran en forma
continua.

El motor girara en un sentido a máxima velocidad por 2 segundos,
luego se detendrá por 2 segundos,
el motor girara a máxima velocidad y en sentido opuesto por 2 segundos,
luego se detendrá por 2 segundos,
y se repetirá continuamente mientras el microcontrolador este energizado.
Ustedes pueden experimentar utilizando otros valores entre los señalados y comprueben
que ocurre con la velocidad del motor.

6.Control de una salida analógica. Tutorial Arduino

Antes de escribir un programa para controlar una salida analógica del Arduino,
debemos empezar por identificar que puertos del Arduino están dispuestos para
generar una señal en base a un PWM y en segundo lugar explicaremos que es una señal
PWM.

PWM PINS: 3, 5, 6, 9, 10, 11

¿Qué es PWM y cómo funciona?
La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de
pulse-width modulation) de una señal o fuente de energía es una técnica en la que se
modifica el ciclo de trabajo de una señal periódica (una senoidal o una cuadrada, por
ejemplo), ya sea para transmitir información a través de un canal de comunicaciones o
para controlar la cantidad de energía que se envía a una carga.
El ciclo de trabajo de una señal periódica es el ancho relativo de su parte positiva en
relación con el período. Expresado matemáticamente:

D es el ciclo de trabajo
es el tiempo en que la función es positiva (ancho del pulso)
T es el período de la función

Para las salidas analógicas se usan los pines que están marcados como PWM y es que
en realidad las salidas analógicas no dan una señal continua a un nivel determinado,
sino que mediante pulsos consiguen obtener un nivel de tensión promedio proporcional
al ancho de estos pulsos.

Como se puede ver en la imagen superior, variando en ancho del pulso, podemos
obtener una señal promedio equivalente.
Para la primera señal, cuyo ancho de pulso es del 10%, nos daría una señal analógica de
0.5v (el 10% de 5V).
Para la segunda una señal, cuyo ancho de pulso es del 50%, nos daría una señal
analógica de 2.5v.
Y para la tercera señal obtendríamos una señal, cuyo ancho de pulso es del 90%,
obtendríamos un valor equivalente de 4.5v.
Instrucciones para controlar la salida analógica en un Arduino.
La instrucción que debemos implementar es la siguiente:

analogWrite

Sintaxis:
analogWrite(pin, value)

Parámetros:
pin: el pin Arduino para escribir. Tipos de datos permitidos: int.
value: El ciclo de trabajo: entre 0 (siempre apagado) y 255 (siempre encendido). Tipos
de datos permitidos: int.

Programa de ejemplo:
Para modificar el valor del voltaje en la salida PWM seleccionada (pin 6), solo basta con
modificar el argumento (value) de la función analogWrite.
Value, solo permite un valor entre 0 y 255.
Con value igual a 255, obtendremos aproximadamente 5 Vdc en el pin seleccionado,
para el ejemplo (pin 6).

Con value igual a 127, obtendremos aproximadamente 2.3 Vdc

Con value igual a 0, obtendremos 0 Vdc.

De esta forma podemos controlar el nivel de voltaje que deseamos sobre el pin 6. Para
medir el voltaje utilizamos un multímetro. Recuerden que el parámetro value, solo
admite valores entre 0 y 255.
Para value = 0, El voltaje será 0 Vdc
Para value = 255, el voltaje será 5 Vdc.

5.Lectura de señales analógicas -Tutorial Arduino

¿Qué es una señal Analógica?


En la mayoría de los sistemas automatizados, utilizamos sensores para supervisor el mundo exterior. Estos sensores nos entregan una señal analógica. Como ejemplo mas practico podemos citar  el caso de los sensores de:

  • Temperatura 
  • Distancia
  • Presión
  • PH
  • Intensidad de corriente en un circuito
  • Caudal de agua en una tubería
  • Velocidad de un coche
  • % de Humedad

Para leer este tipo de señales continuas, necesitamos un convertidor analógico a digital (o ADC por sus siglas en ingles) y que nos permite leer el valor de una señal analógica en un momento dado.
Estos convertidores toman una muestra del valor actual de la señal y nos entregan su valor instantáneo, medido en Voltios.
Mediante la lectura repetida de muestras a lo largo del tiempo podemos reconstruir la señal original con mayor o menor precisión, dependiendo de la exactitud de nuestra medida y de la velocidad a la que pueda tomar esas muestras.

¿Cómo usar el Arduino UNO para leer señales Analógicas?

Arduino UNO dispone de seis convertidores analógico a digital, nominados de A0 hasta A5, rotuladas como ANALOG IN:

Los convertidores de Arduino UNO y Mega son de 10 bits de resolución por lo que nos devolverá valores entre 0 y 210 = 1.024 para tensiones entre 0 y 5V.

Asegúrate de no usar sensores que puedan dar más de 5V máximo (con Arduino UNO y Mega), ya que dañarías el chip principal de Arduino.

Para usar las entradas analógicas, utilizaremos un potenciómetro en vez de un sensor, el cual conectaremos como se indica el siguiente circuito. Aplicaremos tensión de 5 Vdc a los extremos del potenciómetro y conectamos el pin central (cursor o variable) a la entrada del puerto A5 del Arduino.

Escribimos el siguiente programa:

Observación:

No necesitamos declarar en el setup() que vamos a usar una puerta analógica. Y la segunda es que para tomar una muestra (leer) del pin A5, usaremos la instrucción:

int sensorValue = analogRead(A5);

Luego de descargar el programa sobre la placa, arrancamos la consola serial y veras que a medida que giras el cursor del potenciómetro, las lecturas varían de forma continua reflejando la posición del potenciómetro, las lecturas reflejan la caída en voltios sobre la resistencia del potenciómetro. Con esto hemos logrado leer el valor de una señal analógica.

4.3.Encender un led con Arduino, programación-Tutorial Arduino

Ya vimos como configurar el IDE de Arduino, preparar la placa seleccionada, cargar un programa ejemplo (Blink) y descargar este programa en el microcontrolador.

 Ahora, le daremos un vistazo al programa  y explicaremos las instrucciones que se han utilizado.

Programa de Ejemplo: BLINK

Empezamos con el contenido de la función “void setup”:

En esta función, debemos escribir las instrucciones necesarias para configurar el hardware del microcontrolador. Para el ejemplo, debemos utilizar una salida digital para energizar al LED. 

Esto lo logramos utilizando la instrucción 

  • pinMode ( )

Descripción:

Configura el pin especificado para que se comporte como entrada o salida.

  • Sintaxis:

pinMode(pin, mode)

  • Parámetros:

pin: el número de pin Arduino a utilizar.

En el ejemplo han utilizado el LED que ya viene conectado por defecto en la placa, este pin es llamado LED_BUILTIN y el compilador del Arduino reconoce que se trata del pin 13. 

mode: INPUT, OUTPUT, or INPUT_PULLUP

Como queremos que se comporte como una salida digital y de esa forma energizar al LED, debemos indicar que el “modo” debe ser OUTPUT.

  Por lo tanto, la instrucción debe escribirse de la siguiente forma:

pinMode(LED_BUILTIN, OUTPUT); 

De esta forma pin digital 13 (LED_BUILTIN), queda configurado como salida. 

Luego, analizaremos la función void loop( ):

En esta función, debemos escribir las instrucciones que se deben ejecutar en forma cíclica.

En el ejemplo han utilizado dos instrucciones dentro de la función void loop, estas son digitalWrite y delay.

  • digitalWrite ( )

Descripción:

Con esta instrucción se escribe un valor ALTO o BAJO en el pin digital. Si el pin se ha configurado como una SALIDA con pinMode (), su voltaje se establecerá en el valor correspondiente: 5V (o 3.3V en placas de 3.3V) para ALTO, 0V (tierra) para BAJO.

Sintaxis:

digitalWrite(pin, valor)

Parámetros:

pin: el número de pin de Arduino.

valor: ALTO o BAJO.

  • delay ( )

Descripción:

Pausa el programa por la cantidad de tiempo (en milisegundos) especificado como parámetro.

Sintaxis:

delay(ms)

Parámetros:

ms: el número de milisegundos para pausar.

Si observamos el código escrito, vemos que la primera instrucción escribirá un “UNO Lógico” en el pin 13. Esto significa que si medimos con un multímetro, tendremos 5 vdc en el pin 13 correspondiente a la placa Arduino, con lo cual se encenderá el LED_BUILTIN.

digitalWrite(LED_BUILTIN, HIGH);

Luego se ejecuta la instrucción delay , lo cual ejecutara una pausa con duración de 1000 milisegundos, lo cual es equivalente a 1 segundo.

delay(1000);

Luego, se ejecuta la tercera instrucción digitalWrite(LED_BUILTIN, LOW), con lo cual se escribe un “Cero Logico” en el pin 13. De forma que el LED_BUILTIN se apagara.

Luego se ejecuta nuevamente la instrucción delay, manteniendo apagado al led por el tiempo establecido por el argumento de la instrucción, lo cual es equivalente a 1 segundo.

Como explicamos anteriormente, las instrucciones escritas dentro de la función void loop, se repetirán cíclicamente, por lo tanto el led se encenderá durante un segundo y se apagara durante un segundo y se volverá a encender cíclicamente.

Con la instrucción delay, podemos modificar el tiempo de duración de encendido y apagado que tendrá el Led. 

Los invito a modificar el valor del argumento utilizados en las instrucciones delay (1000).

Con delay (100) aumentamos velocidad del parpadeo, debido a que el tiempo de encendido y apagado se han reducido.


4.2.Encender un led con Arduino, el IDE-Tutorial Arduino

Para continuar con el encendido del LED utilizando un Arduino UNO, debemos ahora pasar a la fase de programación del microcontrolador. Por lo tanto, debemos aprender a utilizar el IDE de programación su configuración.

IDE de Programación:

1.- Iniciamos el IDE de Arduino.

Este tendrá el siguiente aspecto.

Encabezado. Contiene el nombre del archivo que se esta modificando.

Barra de Herramientas. Contiene los nombres de las diferentes ventanas con opciones que permitirán la configuración del IDE a utilizar en relación a la placa Arduino a utilizar.

Comandos Rápidos. Botones con varios comandos de acceso rápido muy útiles durante la programación del microcontrolador. Verificación del código, Subir código al microcontrolador, Nuevo boceto, Abrir boceto, Salvar boceto.

Barra de Estado. Mensajes del IDE de Arduino hacia el usuario y códigos de errores luego de la verificación del programa.

Abriremos nuestro primer archivo. 

Hacemos clic sobre “File” contenido en la barra de herramientas, luego en “Examples”, seleccionamos “01.Basics” y luego “Blink”

Con esto tendremos cargado el siguiente código en la IDE de Arduino.

Para proceder a cargar este programa en el microcontrolador, debemos realizar los siguientes pasos:

1-. Seleccionar el tipo de tarjeta que vamos a utilizar, para este ejemplo Arduino UNO. Hacemos clic sobre “Tools”, luego en “Board” y seleccionamos la tarjeta “Arduino/Genuino Uno”.

2-. Seleccionamos el puerto USB que utilizara el IDE de Arduino para comunicarse con la placa del microcontrolador. Hacemos clic nuevamente sobre “Tools”, luego en “Port” y seleccionamos el puerto que el sistema ha seleccionado al microcontrolador, para este ejemplo el “COM6 (Arduino/Genuino Uno)”.

3-. Subimos el programa al Microcontrolador. Hacemos clic sobre el botón “UPLOAD” ubicado en la barra de comandos rápidos y esperamos unos segundos hasta que aparezca el mensaje “Done uploading” en la barra de estado.

La siguiente entrada explicaremos al detalle el programa de ejemplo “Blink” y las modificaciones que podemos hacer para energizar el LED que vimos en la parte 4.

4.1.Encender un led con Arduino, las conexiones-Tutorial Arduino

Antes debemos calcular el valor de la resistencia que limitara la corriente que circulara por el diodo, con la finalidad de proteger a la salida digital del Arduino. 

Empezamos por obtener las características eléctricas del LED. 

En cuanto a tensiones: 

LED color Verde, Amarillo y Rojo, aproximadamente 2V. 

LED Azul y Blanco, 3V. 

Podemos trabajar con dos supuestos: 

Un LED trabaja con una tensión de 1,5 V y consume una corriente de 0,015 A. 

Ahora, calcularemos la resistencia limitadora para un LED conectado entre dos puntos (Salida Digital ARDUINO UNO) en los que existe una tensión de 5V. 

La caída de tensión que estará presente en la resistencia limitadora será de: 

Vcircuito – Vled –> en este caso: 5 V – 1,5 V = 3,5 V. 

Luego, la resistencia será: 

R = V / I 

donde la V serán los voltios sobre la resistencia y la I será la corriente que consume el LED. 

R = 3,5 V / 0,015 A R = 233,3 Ω 

El circuito que debemos realizar tendrá los siguientes elementos y conexiones:

3.El diodo LED-Tutorial Arduino

Un led o diodo emisor de luz, es un dispositivo electrónico capaz de permitir el paso de la corriente en un único sentido, esto se conoce como polarización directa, mientras el diodo emitirá luz. Cuando el diodo se polariza en sentido contrario, funcionará idealmente como un circuito abierto y no habrá circulación de corriente ni emisión de luz.

Diodo Led

Los diodos leds tienen dos patillas de conexión una larga y otra corta. Para que pase la corriente y emita luz se debe conectar la patilla larga al polo positivo y la corta al negativo. En caso contrario la corriente no pasará y no emitirá luz. 

En la imagen siguiente vemos un diodo led por dentro.

Este es el símbolo que se usa para los diodos led en los esquemas eléctricos, donde el ánodo será la patilla larga.

Los led trabajan a tensiones más o menos de 2V (dos voltios). Si queremos conectarlos a otra tensión diferente deberemos conectar una resistencia en serie con él para que parte de la tensión se quede en la resistencia y al led solo le queden los 2V.

Las grandes ventajas de los led:

 La primera es que consumen menos energía que las lámparas convencionales. ¿Por qué?.

 Las bombillas normales emiten luz pero también calor. El calor es energía que perdemos (lo que queremos es luz no calor). Bien pues los leds también pierden en forma de calor energía pero en cantidades mucho menores. Esto hace que casi toda la energía que consuman se utilice en dar luz y no calor, con el consiguiente ahorro.

 El 80% de la energía que consume un led se transforma en luz, sin embargo, las bombillas convencionales solo transforman el 20% de lo que consumen en luz, todo lo demás se vuelve calor.

 Otra ventaja es que el tiempo de duración es mucho mayor. Mientras que una bombilla normal cuenta con una vida útil de unas 5.000 horas, la vida útil de un LED es superior a las 100.000 horas de luz, estamos hablando de 11 años de continua emisión lumínica.

1.¿Qué es Arduino? ¿por qué usarlo?-Tutorial Arduino

Arduino UNO es un microcontrolador basado en código abierto en la que se implementa el micro ATmega328P y el software Processing con el que esta hecho el entorno de desarrollo integrado IDE de programación.  Se diseñó para facilitar el uso de la electrónica en proyectos multidisciplinares.

Microcontrolador Arduino UNO
IDE Arduino

¿Por qué usar Arduino?

A continuación os enumeramos una pequeña lista de porqué nosotros nos decidimos en la academia a usar y enseñar con Arduino:

  • Son muy económicos.
  • Fácil de comenzar a usar. 
  • Completamente Open Source 
  • Encontramos una alta variedad de sensores compatibles, económicos y con explicaciones de su funcionamiento muy fácil de entender. 
Algunos sensores del mercado

Bienvenidos a una nueva sección de mini tutoriales de Arduino, en esta sección podrás encontrar cada semana una guía sencilla para comenzar tus proyectos. Si tienes alguna sugerencia o consulta puedes comentar y la intentaremos resolver.

Scroll al inicio