Está en la página 1de 29

Universidad Autónoma de Baja California

Facultad de Ingeniería, Arquitectura y Diseño

Desarrollo de prototipos nanotecnológicos

Arduino y transductores

Alexa Fernanda Robles Sandez

Ensenada B.C a 03 de octubre de 2021

1
ARDUINO
● Definición

Arduino es una plataforma electrónica de código abierto basada en hardware y software


fáciles de usar que se utilizan para construir proyectos electrónicos. Consta de una placa de
circuito programable física (a menudo denominada microcontrolador) y una pieza de
software, o IDE (entorno de desarrollo integrado) que se ejecuta en su computadora, que se
utiliza para escribir y cargar el código de la computadora en la placa física. Arduino está
diseñado para hacer que la electrónica sea más accesible para artistas, diseñadores,
aficionados y cualquier persona interesada en crear objetos o entornos interactivos.

Todas las placas Arduino tienen una cosa en común que es un microcontrolador. Un
microcontrolador es básicamente una computadora realmente pequeña. Con Arduino,
puede diseñar y construir dispositivos que puedan interactuar con su entorno. Las placas
Arduino son básicamente una herramienta para controlar la electrónica. Pueden leer
entradas con su microcontrolador integrado (por ejemplo, luz en un sensor, un objeto cerca
de un sensor) y convertirlo en una salida (conducir un motor, hacer sonar una alarma,
encender un LED, mostrar información en una pantalla LCD).

A diferencia de la mayoría de las placas de circuitos programables anteriores, Arduino no


requiere una parte separada de hardware para programar un nuevo código en la placa, solo
puede usar un cable USB. Además, el IDE de Arduino utiliza una versión básica de C ++, lo
que facilita el aprendizaje del programa. Por fin, la placa Arduino ofrece un factor de forma
típico que divide las funciones del microcontrolador en un paquete más disponible.

● Antecedentes (historia pequeña)

Fue en el año 2005 cuando nació la primera placa Arduino en las aulas del Instituto de
Diseño Interactivo en Ivrea, Italia. Fue en el Instituto de Diseño Interactivo donde un
estudiante colombiano llamado Hernando Barragán aportó una tesis de hardware para un
diseño de cableado. El título de la tesis fue “Arduino – La rivoluzione dell'open hardware”
(“Arduino - La revolución del hardware abierto”). Sí, sonaba un poco diferente a la tesis
habitual, pero nadie hubiera imaginado que se haría un hueco en el campo de la
electrónica. Un equipo de cinco desarrolladores, Massimo Banzi, David Cuartielles, David
Mellis, Gianluca Martino y Tom Igoe trabajó en esta tesis y cuando se completó la nueva
plataforma de cableado, trabajaron para hacerla mucho más liviana, menos costosa y
disponible para la comunidad de código abierto.

● Componentes

Hay muchas variedades de placas Arduino que se pueden usar para diferentes propósitos.
Algunas placas se ven un poco diferentes a la siguiente, pero la mayoría de los Arduinos
tienen la mayoría de estos componentes en común:

2
· Alimentación USB (1) y conector de barril (2)

El Arduino UNO se puede alimentar desde un cable USB proveniente de su computadora o


una fuente de alimentación de pared que termina en un conector de barril. En la imagen de
arriba, la conexión USB está etiquetada (1) y el conector de barril está etiquetado (2).

o La conexión USB también es la forma en que cargará el código en su placa Arduino.


Puede encontrar más información sobre cómo programar con Arduino en nuestro tutorial de
instalación y programación de Arduino.

o El conector de alimentación de CC permite que su placa Arduino se alimente desde un


adaptador de pared para que pueda suministrar más energía a su proyecto si es necesario.

· Pines (5V, 3.3V, GND, Analógico, Digital, PWM, AREF)

Los pines de su Arduino son los lugares donde conecta los cables para construir un circuito
(probablemente en conjunción con una placa de pruebas y algún cable.

o GND (3) : Abreviatura de 'Tierra'. Hay varios pines GND en el Arduino, cualquiera de
los cuales puede usarse para conectar a tierra su circuito.

o 5V (4) y 3.3V (5) : Como puede imaginar, el pin de 5V suministra 5 voltios de potencia
y el pin de 3.3V suministra 3.3 voltios de potencia. La mayoría de los componentes
simples utilizados con Arduino funcionan felizmente con 5 o 3.3 voltios.

● Analógico (6): el área de pines debajo de la etiqueta 'Entrada analógica' (A0 a A5 en


UNO) son pines de entrada analógica. Estos pines pueden leer la señal de un
sensor analógico y convertirla en un valor digital que podamos leer. Aunque la
función principal de los pines analógicos para la mayoría de los usuarios de Arduino
es leer sensores analógicos, los pines analógicos también tienen toda la
funcionalidad de los pines de entrada / salida de propósito general (GPIO).
● Digital (7): Frente a los pines analógicos están los pines digitales (0 a 13 en UNO).
Estos pines se pueden usar tanto para entrada digital (como saber si se presiona un
botón) como para salida digital (como encender un LED). Permiten que Arduino lea
entradas digitales como un botón que se presiona y salida digital como encender un
LED.

3
o PWM (8) : Es posible que haya notado la tilde (~) junto a algunos de los pines
digitales (3, 5, 6, 9, 10 y 11 en UNO). Estos pines actúan como pines digitales normales,
pero también se pueden usar para algo llamado Modulación de ancho de pulso (PWM).

o AREF (9) : Significa Referencia analógica. La mayoría de las veces puedes dejar este
pin solo. A veces se utiliza para establecer un voltaje de referencia externo (entre 0 y 5
voltios) como límite superior para los pines de entrada analógica.

· Botón de reinicio

Arduino tiene un botón de reinicio (10). Al presionarlo, se conectará temporalmente el pin de


reinicio a tierra y se reiniciará cualquier código que esté cargado en el Arduino. Esto puede
ser muy útil si su código no se repite, pero desea probarlo varias veces.

· Indicador LED de encendido

Justo debajo ya la derecha de la palabra "UNO" en su placa de circuito, hay un pequeño


LED al lado de la palabra "ON" (11) . Este LED debería encenderse cada vez que conecte
su Arduino a una fuente de alimentación. Si esta luz no se enciende, es muy probable que
algo esté mal.

· LED TX RX

TX es la abreviatura de transmitir, RX es la abreviatura de recibir. Estas marcas aparecen


bastante en la electrónica para indicar los pines responsables de la comunicación en serie .
En nuestro caso, hay dos lugares en el Arduino UNO donde aparecen TX y RX: una vez por
los pines digitales 0 y 1, y una segunda vez junto a los LED indicadores TX y RX (12) .
Estos LED nos darán algunas indicaciones visuales agradables cada vez que nuestro
Arduino esté recibiendo o transmitiendo datos (como cuando estamos cargando un nuevo
programa en la placa). Funcionan automáticamente y le permiten saber cuándo la placa
está enviando o recibiendo datos, respectivamente, como cuando está cargando un
programa en su placa Arduino.

· IC principal

El IC principal del Arduino es ligeramente diferente de un tipo de placa a otro, pero


generalmente es de la línea ATmega de IC de la empresa ATMEL. Esto puede ser
importante, ya que es posible que deba conocer el tipo de IC (junto con el tipo de placa)
antes de cargar un nuevo programa desde el software Arduino. Esta información
generalmente se puede encontrar por escrito en la parte superior del CI. Este es el chip
principal que actúa como el cerebro de su placa Arduino. Le permiten programar su Arduino
para que pueda ejecutar comandos y decisiones basadas en el código. Deberá saber qué
tipo de microcontrolador está usando su placa antes de cargar un nuevo programa desde el
software Arduino. Aunque el microcontrolador de las placas Arduino es diferente, su
diferencia no es grande. La única diferencia que puede notar son las diferentes cantidades
de memoria incorporada.

Regulador de voltaje

El regulador de voltaje (14) no es realmente algo con lo que pueda (o deba) interactuar en el
Arduino. Pero es potencialmente útil saber que está ahí y para qué sirve. El regulador de

4
voltaje hace exactamente lo que dice: controla la cantidad de voltaje que ingresa a la placa
Arduino. Piense en ello como una especie de guardián; eliminará un voltaje adicional que
podría dañar el circuito. Por supuesto, tiene sus límites, así que no conecte su Arduino a
nada superior a 20 voltios.

● Cómo funciona

El Arduino es una placa basada en un microcontrolador ATMEL AVR. Los


microcontroladores son circuitos integrados donde se pueden grabar instrucciones, que se
escribe con el lenguaje de programación que se puede utilizar en el entorno Arduino IDE.
Estas instrucciones le permiten crear programas que interactúan con los circuitos de la
placa. Por ello, veremos todo el proceso para poder desarrollar tu propio proyecto en
Arduino:

1. Conseguir una placa Arduino y el cable USB

La placa Arduino es una tarjeta I/O simple la cual se basa en el procesador ATmega8 de
Atmel. La tarjeta está compuesta por un circuito impreso (PCB) y componentes electrónicos.
Hay varias formas de obtener una placa Arduino, la forma más sencilla es comprando una
ya lista, tambien si quieres construir tu propio placa PCB descarga los archivos CAD desde
la página de Hardware. Extrae el archivo .brd y envíalo a un fabricante de PCB, o por ultimo
comprar las partes tu tienda de electrónica preferida.

2. Descargar el entorno de desarrollo Arduino

Para programar la tarjeta necesitas el entorno de desarrollo Arduino. El software Arduino


(IDE) le permite escribir programas y cargarlos en su placa. En la página del software
Arduino encontrará dos opciones:

o Si tiene una conexión a Internet confiable, debe usar el IDE en línea (Arduino Web
Editor). Te permitirá guardar tus bocetos en la nube, teniéndolos disponibles desde
cualquier dispositivo y respaldados. Siempre tendrá la versión más actualizada del IDE
sin la necesidad de instalar actualizaciones o bibliotecas generadas por la comunidad.

o Si prefiere trabajar sin conexión, debe utilizar la última versión del IDE de escritorio .

3. Instala el entorno de desarrollo de Arduino (IDE)

Ejecuta el instalador del programa y sigue los pasos de instalación. Acepta los términos y
condiciones de la licencia. Selecciona todas las opciones para que instale todos los
complementos y drivers necesarios. Espera un par de minutos que termine el proceso de
instalación. Si estás utilizando la placa Arduino Picaro, necesitarás instalar los drivers del
chip FTDI. Si está usando una placa Arduino Uno original, los driver se instalan
automáticamente con el IDE.

5
4. Conectar la tarjeta Arduino

La alimentación puede ser provista por el puerto USB o por una fuente externa (6-12V).
Cualquiera sea el modo de alimentación conecta el cable USB al PC. El LED de encendido
debería iluminarse.

5. Ejecuta el ambiente de desarrollo de Arduino y carga el programa a la tarjeta

Ve a escritorio y haz doble click en la aplicación Arduino. Abre el sketch de ejemplo: Archivo
> Ejemplos > 01.Basics > Blink

Selecciona el puerto COM en el que tienes conectada la tarjeta Arduino en el menú


Herramientas > Puerto.

6
Necesitarás también especificar el microcontrolador que estás utilizando. Mira el chip que
está instalado en tu tarjeta y seleccionalo en Herramientas >Placa:

Si tienes la nueva Arduino Diecimila, simplemente haz click en el botón “Upload”. Si estás
utilizando una Arduino Mini o una Arduino NG u otra tarjeta, necesitarás presionar el botón
de reset presente en la placa inmediatamente antes de apretar el botón “Upload”. Espera
unos segundos y deberías ver los LED’s RX y Tx de la tarjeta parpadeando. Si el programa
se cargó satisfactoriamente un mensaje aparecerá en la barra de status “Done uploading”.

6. Mirar como pestañea el LED

Unos segundos después de que se haya cargado el programa el LED empezará a


parpadear.

7. Inicia tu proyecto en Arduino

● Tabla comparativa (modelos, características, ventajas y aplicaciones)

7
Arduino Descripción Ventajas

Usa un microcontrolador -Primer modelo a la venta


Uno (R3) ATmega328P, con 6 pines -Accesible en cualquier parte
analógicos, 14 pines digitales, un del mundo
conector USB, un conector de -Bajo costo
alimentación y un ICSP
encabezamiento y es el más
utilizado de todas las placas
Arduino disponibles.

-Dimensiones reducidas
Nano Usa un microcontrolador -Idoneo para proyectos en
ATmega328P o ATmega628, donde se requiera ahorar
incluye un conjunto de pines de E espacio
/ S de 14 pines digitales y 8 pines -Costo menor
analógicos. También incluye 6 -Placa completa
pines de alimentación y 2 pines
de reinicio.

Usa un microcontrolador -Autonomía elevada


ATmega32U4, incluye 20 juegos -Tamaño reducido
de pines, donde 7 son pines -Precio bajo
Micro PWM, mientras que 12 son pines
de entrada analógica el botón de
reinicio, el oscilador de cristal de
16 MHz, el encabezado ICSP y
una conexión micro USB.

Usa un microcontrolador CPU -Potencia de calculo superior


Due Atmel SAM3X8E ARM Cortex-M3 -Alta capacidad de
ya que se basa en el núcleo ARM procesamiento
de 32 bits, siendo la placa que se -Acceso directo a la memoria
ha desarrollado sobre la base del por controlador DMA
microcontrolador ARM. Consta de
54 pines de entrada/salida digital
y 12 pines analógicos.

Usa un microcontrolador -Ideal para prendas y textiles


LilyPad ATmega168. Es una tabla -Portatil
redonda y liviana con un número -Flexible
mínimo de componentes debido a -Placa completa
su menor tamaño. La placa
Arduino Lilypad tiene 9 pines de
E / S digitales, alimentación y
también placas de sensores que
se construyen especialmente
para e-textiles.

8
Usa un microcontrolador -Conexión inalámbrica
Bluetooth ATmega168, cuenta con 16 pines - Placa completa
digitales, 6 pines analógicos,
botón de reinicio, oscilador de
cristal de 16MHz, cabezal ICSP y
terminales de tornillo para la
alimentación. La programación de
este microcontrolador se puede
realizar con Bluetooth.

Usa un microcontrolador -Edicion de 10.000 placas


Diecimila ATmeg628, consta de 6 entradas -Completa como Arduino
de clavijas analógicas, 14 clavijas UNO
de entrada/salida digitales, un -Activar usando batería o
conector USB, un conector de adaptador AC-DC
alimentación, un encabezado
ICSP y un botón de reinicio.

-Programar usando cable


RedBoard Usa un microcontrolador Mini-B USB
ATmega328 con Bootloader -Funciona con Windows 8
Optiboot (UNO). La RedBoard
tiene todos los dispositivos
periféricos de hardware: 14 pines
digitales I/O con 6 pines PWM, 6
entradas análogas, UART, SPI e
interrupciones externas. El PBC
de la placa es color rojo y soporta
de 7 a 15 V.

Usa un microcontrolador -Capacidad de procesamiento


Mega (R3) ATmega2560 de 8 bits, incluye superior
54 pines digitales de E/S y 16 -Más pines con mayor
entradas/salidas analógicas potencia (54 pines)
(E/S), encabezado ICSP, un -Util para proyectos que
botón de reinicio, 4 puertos necesiten muchas
UART, conexión USB y un entradas/salidas
conector de alimentación.

Usa un microcontrolador -Bajo consumo


Leonardo ATmega32U4, con 20 pines -Maneja 20 pines digitales
analógicos y digitales, un botón -Tamaño menor
de reinicio, un oscilador de cristal -Ahorra espacio
de 16MHz, un encabezado ICSP
y una conexión micro USB.

9
Es la primera placa Arduino sobre -Dos procesadores
Robot ruedas, incluye dos procesadores -Sobre ruedas
en cada una de sus placas. Se - Útil para proyectos de
trata de placas de robótica
microcontroladores que -Controla sensores y
dependen del ATmega32u4 que actuadores
incluye un altavoz, una pantalla a
color, botones, motores, una
brújula digital, un lector de
tarjetas SD, potenciómetros y
sensores de piso.

Usa un microcontorlador -Reducción de tamaño


Esplora ATmega32u4 que trabaja a -Forma redondeada
16MHz y 5v, con SRAM de 2,5KB -Incluye variedad de sensores
y 1KB de EEPROM. Incluye unos y joystick
sensores (acelerómetro, -Bueno para principiantes
temperatura, luz), zumbador, -Util para proyectos de
botones, joystick, micrófono y un videojuegos
socket para conectar una pantalla
a color TFT LCD.

-Flexibilidad
Mini Pro Usa microcontrolador -Bajo precio
ATmega32U4. Tiene 14 -Tamaño reducido
entradas/salidas digitales, 6 -Ideal para proyectos muy
entradas análogas, trabaja compactos
perfectamente con módulos GPS
o sensores que utilicen 3.3V.
Aunque no posee conector USB,
LEDs de estado incorporados
(para alimentación y pin 13).
Dimensiones 18 x 33mm y peso
menor a 2 gramos.

Usa un microcontrolador -Conexión a internet por


Ethernet ATmega328. La placa consta de Ethernet
6 pines analógicos, 14 pines de E -Capacidad similar a Arduino
/ S digitales, oscilador de cristal, 1
botón de reinicio, encabezado
ICSP, un conector de
alimentación y una conexión
RJ45. Con la ayuda del la
cubierta Ethernet, se puede
conectar dicha placa Arduino a
Internet.

10
Usa un microcontrolador MCU -Más potencia de
Zero SAM21 de ATmel, tiene 6 procesamiento
entradas de pines analógicos, 14 -Simplicidad similar a Arduino
clavijas de entrada/salida UNO
digitales, un conector USB, un -Sirve para proyectos más
conector de alimentación y un demandantes en potencia de
encabezado ICSP, clavijas de cómputo
puerto UART, un encabezado de -Poderosa para robótica,
alimentación y un botón AREF. automatización de alta
tecnología

--- Programación
❖ Básico de programación en Arduino
El IDE (Integrated Development Environment) es un conjunto de herramientas de software
que permiten a los programadores desarrollar y grabar todo el código necesario para hacer
que nuestro Arduino funcione como queramos. El IDE de Arduino nos permite escribir,
depurar, editar y grabar nuestro programa (llamados “sketches” en el mundo Arduino) de
una manera sumamente sencilla, en gran parte a esto se debe el éxito de Arduino, a su
accesibilidad.

La estructura básica del lenguaje de programación de Arduino es bastante simple y se


compone de al menos dos partes. Estas dos partes necesarias, o funciones, encierran
bloques que contienen declaraciones, estamentos o instrucciones.
void setup()
{
estamentos;
}
void loop()
{
estamentos;
}
En la función Setup() se incluye la declaración de variables y se trata de la primera función
que se ejecuta en el programa. Esta función se ejecuta una única vez y es empleada para
configurar el pinMode (p. ej. si un determinado pin digital es de entrada o salida) e inicializar
la comunicación serie. La función loop() incluye el código a ser ejecutado continuamente
(leyendo las entradas de la placa, salidas, etc.)

Función setup()
se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar los modos de
trabajo de los pins, o el puerto serie. Debe ser incluido en un programa aunque no haya
declaración que ejecutar.

Función loop()
Hace precisamente lo que sugiere su nombre, se ejecuta de forma cíclica, lo que posibilita
que el programa esté respondiendo continuamente ante los eventos que se produzcan en la
tarjeta.

11
Ejemplo:
Int pin = 10;
void setup()
{
pinMode(pin, OUTPUT); // Establece 'pin' como salida
}
void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el ´pin´
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el ´pin´
delay(1000); // espera un segundo (1000 ms)
}

Funciones
Una función es un bloque de código que tiene un nombre y un conjunto de estamentos que
son ejecutados cuando se llama a la función. Son funciones setup() y loop() de las que ya
se ha hablado. Las funciones de usuario pueden ser escritas para realizar tareas repetitivas
y para reducir el tamaño de un programa. Las funciones se declaran asociadas a un tipo de
valor “type”. Este valor será el que devolverá la función, por ejemplo 'int' se utilizará cuando
la función devuelva un dato numérico de tipo entero. Si la función no devuelve ningún valor
entonces se colocará delante la palabra “void”, que significa “función vacía”. Después de
declarar el tipo de dato que devuelve la función se debe escribir el nombre de la función y
entre paréntesis se escribirán, si es necesario, los parámetros que se deben pasar a la
función para que se ejecute.

Elementos de sintaxis:

LLaves
Las llaves sirven para definir el principio y el final de un bloque de instrucciones. Se utilizan
para los bloques de programación setup(), loop(), if.., etc.
type funcion()
{
estamentos;
}

Una llave de apertura “{“ siempre debe ir seguida de una llave de cierre “}”, si no es así el
programa dará errores. El entorno de programación de Arduino incluye una herramienta de
gran utilidad para comprobar el total de llaves. Sólo tienes que hacer click en el punto de
inserción de una llave abierta e inmediatamente se marca el correspondiente cierre de ese
bloque (llave cerrada).

Punto y coma
El punto y coma “;” se utiliza para separar instrucciones en el lenguaje de programación de
Arduino. También se utiliza para separar elementos en una instrucción de tipo “bucle for”.

Variables
Una variable es una manera de nombrar y almacenar un valor numérico para su uso
posterior por el programa. Como su nombre indica, las variables son números que se

12
pueden variar continuamente en contra de lo que ocurre con las constantes cuyo valor
nunca cambia.

Una variable debe ser declarada y opcionalmente asignada a un determinado valor. En la


declaración de la variable se indica el tipo de datos que almacenará (int, float, long).

Una variable puede ser declarada en el inicio del programa antes de setup(), localmente a
una determinada función e incluso dentro de un bloque como pueda ser un bucle. El sitio en
el que la variable es declarada determina el ámbito de la misma. Una variable global es
aquella que puede ser empleada en cualquier función del programa. Estas variables deben
ser declaradas al inicio del programa (antes de la función setup()).

Ejemplo:
int v=9; // 'v' es visible en todo el programa.
void setup()
{
pinMode(v,OUTPUT). //configuramos la variable entera “v) o el pin 8, como una salida
}
void loop()
{
digitalWrite(v,HIGH); //Escribimos que “v” envíe un pulso atreves de la constante HIGH.
}

Tipos básicos de variables:

❖ byte:Byte almacena un valor numérico de 8 bits sin decimales. Tienen un rango


entre 0 y 255
❖ int:Enteros son un tipo de datos primarios que almacenan valores numéricos de 16
bits sin decimales comprendidos en el rango 32,767 to -32,768.
❖ long:El formato de variable numérica de tipo extendido “long” se refiere a números
enteros (tipo 32 bits) sin decimales que se encuentran dentro del rango -2147483648
a 2147483647.
❖ float:El formato de dato del tipo “punto flotante” “float” se aplica a los números con
decimales. Los números de punto flotante tienen una mayor resolución que los de 32
bits con un rango comprendido 3.4028235E +38 a +38-3.4028235E
❖ char:se utilizan para almacenar caracteres, ocupan un byte.

Operadores
Las comparaciones de una variable o constante con otra se utilizan con frecuencia en las
estructuras condicionales del tipo if.. para testear si una condición es verdadera. En los
ejemplos que siguen en las próximas páginas se verá su utilización práctica usando los
siguientes tipo de condicionales:
x == y : x es igual a y x
!= y :x no es igual a y
x < y : x es menor que y
x > y : x es mayor que y

13
Los operadores lógicos son usualmente una forma de comparar dos expresiones y devolver
un VERDADERO o FALSO dependiendo del operador. Existen tres operadores lógicos,
AND (&&), OR (||) y NOT (!).

If
Las sentencias if comprueban si cierta condición ha sido alcanzada y ejecutan todas las
sentencias dentro de las llaves si la declaración es cierta. Si es falsa el programa ignora la
sentencia.

if (unaVariable ?? valor)
{
ejecutaInstrucciones;
}

En el ejemplo anterior se compara una variable con un valor, el cual puede ser una variable
o constante. Si la comparación, o la condición entre paréntesis se cumple (es cierta), las
declaraciones dentro de los corchetes se ejecutan. Si no es así, el programa salta sobre
ellas y sigue.

if/else
viene a ser un estructura que se ejecuta en respuesta a la idea “si esto no se cumple haz
esto otro”. Por ejemplo, si se desea probar una entrada digital, y hacer una cosa si la
entrada fue alto o hacer otra cosa si la entrada es baja, usted escribiría que de esta manera:
if (inputPin == HIGH) // si el valor de la entrada inputPin es alto
{
instruccionesA; //ejecuta si se cumple la condición
}
else
{
instruccionesB; //ejecuta si no se cumple la condición
}

For
El bucle for es una estructura que se utiliza cuando queremos que una serie de acciones se
repita un número determinado de veces, para ello se necesita de una variable índice, una
condición y un incrementador. Por tanto, usaremos el bucle “for” para ejecutar un conjunto
de instrucciones (escritas dentro de llaves de apertura y cierre) un número concreto de
veces. vemos el ejemplo de su sintaxis:

for (inicialización; condición; expresión)


{
ejecutaInstrucciones;
}

La inicialización de una variable local se produce una sola vez y la condición se testea cada
vez que se termina la ejecución de las instrucciones dentro del bucle. Si la condición sigue
cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condición no se
cumple, el bucle termina.

14
Switch case
Consta en su interior de una serie de secciones “case” y, opcionalmente, de una sección
“default”. Nada más llegar a la primera línea del “switch”, primero se comprueba el valor de
la variable o expresión que haya entre sus paréntesis. Si el resultado es igual al valor
especificado en la primera sección “case”, se ejecutarán las instrucciones del interior de la
misma y se dará por finalizado el “switch”, en caso de no ser igual el resultado de la
expresión a lo especificado en el primer “case” se pasará a comprobarlo con el segundo
“case”, y si no con el tercero, etc. Por último, si existe una sección “default” (opcional) y el
resultado de la expresión no ha coincidido con ninguna de las secciones “case”, entonces
se ejecutarán las sentencias de la sección “default”.

while
Este bucle repite la ejecución de las instrucciones que están dentro de sus llaves de
apertura y cierre mientras la condición especificada entre sus paréntesis sea cierta
(“true”,1), sin importar el número de veces repita. El número de iteraciones realizadas
depende del estado de la condición definida.

do
La condición es evaluada después de ejecutar las instrucciones escritas dentro de las
llaves. Esto hace que las instrucciones siempre sean ejecutadas como mínimo una vez aun
cuando la condición sea falsa, porque antes de llegar a comprobar esta, las instrucciones ya
han sido leídas (a diferencia del bucle “while”, donde si la condición ya de entrada era falsa
las instrucciones no se ejecutaban nunca).

Señales digitales
● pinMode (pin, mode) : usado para asignar el modo de un pin. pin es el número del
pin que se quiere asignar 0-19. mode puede ser INPUT o OUTPUT.
● digitalWrite (pin, value): una vez un pin es asignado como OUTPUT se puede
asignar a HIGH (5 Volts) o Arduino 24 como OUTPUT se puede asignar a HIGH (5
Volts) o LOW(0 volts). Básicamente significa ON y OFF.
● int digitalRead (pin): una vez un pin es asignado como INPUT se puede usar para
devolver HIGH (5 Volts) o LOW(0 volts).
Señales analógicas
● analogWrite (pin, value); algunos de lo pines soportan pulsos modulados (PWM) (3,
5, 6 ,9, 10, 11). Esto pone el pin en on o off muy rápido comportándose como una
salida analógica. El valor es un número entre 0 (0 v) y 255 (5 v). Arduino 25
● int analogRead (pin); puede leer un voltaje. Devuelve un valor entre 0 (0 v) y 1024 (5
v).
Lenguaje de programación

El equipo que desarrolló la tarjeta Arduino creo un lenguaje propio para programar estas
tarjetas. Este lenguaje esta basado en un lenguaje llamado Wiring. Este es un framework
(Un framework es una especie de plantilla, esquema o estructura conceptual de base
tecnológica que nos permite trabajar de una manera mucho más sencilla) de código abierto
para la programación de microcontroladores.

Arduino se programa no solamente en Sketch o en C, sino que ya hay una serie de


lenguajes de programación que pueden usarse en esta plataforma.

15
Wiring

Wiring está escrito en los lenguajes de programación C y C++. De allí que la sintaxis sea
parecida a la usada en estos lenguajes. La ventaja de usar este framework es la gran
variedad de microcontroladores que soporta, este soporta los microcontroladores atmega
que son los usados por las familias de tarjetas de Arduino.

Por último, al igual que Arduino, wiring cuenta con un IDE basado en Processing donde se
puede realizar la programación de los microcontroladores. Para ello simplemente debemos
ir al sitio web de wiring y descargar este entorno de desarrollo. Está disponible para
Windows, Linux y MAC.

Processing

Para poder escribir el código y darle instrucciones a nuestro microcontrolador o tarjeta de


desarrollo necesitamos un entorno. Estos entornos son conocidos como IDE (Integrated
Development Enviroment) que se define como un entorno de desarrollo integrado.Para el
caso del IDE de Arduino, el cual es el programa donde escribimos nuestro código, está
desarrollado en un lenguaje de programación llamado Processing.

Processing es un lenguaje de programación y entorno de desarrollo basado en Java, se


usa mayormente para la producción de proyectos multimedia de diseño digital.

Lenguaje C/C++

16
Arduino está basado en wiring y este a su vez está basado en C/C++. Por lo cual para
trabajar con proyectos en Arduino debemos tener conocimientos de lenguaje C. Si bien no
se usan todas las funciones de este lenguaje, si se usan los tipos de variables y las
estructuras.

c# (C-Sharp)
En sí, se trata de la biblioteca CmdMessenger, con la que se puede ir más allá de la simple
conexión serial entre el Arduino y la computadora. CmdMessenger puede usarse dentro de
Visual Studio y a través del lenguaje C# poder llamar funciones y mandar y recibir
comandos. En muchos sentidos es un enfoque diferente a los lenguajes para Arduino y
cómo se usan.

MATLAB
Con un paquete de MATLAB puede utilizar MATLAB para comunicarse interactivamente con
una placa Arduino. El paquete le permite realizar tareas como:

● Adquiera datos de sensores analógicos y digitales de su placa Arduino


● Controla otros dispositivos con salidas digitales y PWM
● Accione motores DC, servo y paso a paso (también es compatible con Adafruit Motor
Shield)
● Acceda a dispositivos periféricos y sensores conectados a través de I2C o SPI
● Comuníquese con una placa Arduino a través de un cable USB o de forma
inalámbrica a través de Wi-Fi
● Cree complementos personalizados para interactuar con bibliotecas de hardware y
software adicionales
● Leer y escribir mensajes CAN con escudos CAN-Bus basados en MCP2515 a través
de placas Arduino compatibles
Debido a que MATLAB es un lenguaje interpretado de alto nivel, puede ver los resultados
de las instrucciones de E / S de inmediato, sin compilar. MATLAB incluye miles de funciones
integradas de matemáticas, ingeniería y trazado que puede utilizar para analizar y visualizar
rápidamente los datos recopilados de su Arduino.

17
Python
Python trabaja en general como un intérprete, es posible usarlo para comunicar el
dispositivo a través del puerto serial. Esto se hace de forma muy simple en cualquier
sistema Unix, pero si se usa PC o Mac, entonces PySerial puede ser de mucha ayuda. Se
requiere una copia de Python en la computadora para poder interactuar con el Arduino.

Labview
La interfaz de LabVIEW para Arduino (LIFA) Toolkit es una herramienta gratuita que
se puede descargar desde el servidor de NI (National Instruments) y que permite a los
usuarios de Arduino adquirir datos del microcontrolador Arduino y procesarlos en el
entorno de programación gráfica de LabVIEW

Programación por bloques de arduino

ArduBlock
construido para aquellos que empiezan a programar. En lugar de escribir código aquí se
construyen los programas de forma visual usando bloques que contienen las instrucciones.
Es lo equivalente a Scratch, un lenguaje de bloques creado en el MIT para enseñar a los
niños a programar. Cabe decir que aunque parece un lenguaje de principiantes, puede

18
servir como una introducción a lenguajes ya más sofisticados más adelante.

Snap4Arduino:Basado en el lenguaje de programación visual de arrastrar y soltar


desarrollado en Berkeley, Snap4Arduino ofrece una experiencia ligeramente diferente a la
de ArduBlock.Snap4Arduino no compila código, pero interactúa con el Arduino mientras
está conectado a la computadora.

Minibloq
Es un entorno de desarrollo gráfico para Arduino y otras plataformas. Su objetivo principal
es ayudar en la programación de la enseñanza. Se utiliza especialmente en robótica en
escuelas primarias, intermedias y secundarias.

19
Scratch for arduino
S4A es una modificación de Scratch que permite programar la plataforma de hardware libre
Arduino de una forma sencilla. Proporciona bloques nuevos para tratar con sensores y
actuadores connectados a una placa Arduino. También cuenta con un panel de sensores
similar al de la PicoBoard.

La finalidad principal del proyecto es atraer a gente al mundo de la programación. Otro de


sus objetivos es proporcionar una interfaz de alto nivel para programadores de Arduino con
funcionalidades tales como la interacción con un conjunto de placas mediante eventos de
usuario.

eBlock

20
Es un programa derivado de mBlock 3.4 que permite la programación de diversos
dispositivos, incluido entre ellos Arduino.

Está basado en Scratch, por lo que su manejo puede ser muy sencillo.

BitBloq2
es una plataforma web creada por la empresa española BQ, que nos permite la
programación de Arduino desde el navegador.Bitbloq 2 está recomendado a partir de 8
años

21
--- Comunicaciones
● UART
La comunicación serial entre dos dispositivos se realiza a través del intercambio de
una secuencia de bits, donde se transmite bit a bit, uno por vez, donde, aunque es
lenta la comunicación, tiene la ventaja de poder ser transmitida a mayores distancias
y utilizar menos líneas de comunicación.

En sistemas embebidos es común referirse a los puertos series como UART


(universally asynchronous receiver/transmitter) la cual simplemente es una unidad
que nos indica la conversión de los datos a una secuencia de bits donde
posteriormente son transmitidos o recibidos a una velocidad determinada.

La comunicación serial también se da mediante variaciones de voltaje, donde


dispositivos TTL (transistor transistor logic) realizan la comunicación mediante
variaciones de señal entre 0 y 5v o entre 0 y 3.3v.

Por último, también es conocida como comunicación serial RS232 el cual es un


protocolo muy común utilizado industrialmente por diversos dispositivos y equipos.
La comunicación serial de Arduino RS232 puede ser utilizada para adquisición de
datos, control, depuración de código, etc. El sistema UART usa los pines digitales 0
(RX) y 1 (TX) y con otro PC a través del puerto USB.Este periférico, que se
encuentra en todas las placas Arduino, permite que Arduino se comunique
directamente con un PC gracias al hecho de que Arduino tiene un convertidor de
USB a serie incorporado (ATmega16U2).Con este componente, los programas
escritos en Windows, Mac o Linux se pueden usar con un Arduino conectado a
través de USB como si fuera un puerto serie.

● I2C
I2C es un puerto y protocolo de comunicación serial, define la trama de datos y las
conexiones físicas para transferir bits entre 2 dispositivos digitales. El puerto incluye
dos cables de comunicación, SDA y SCL. Además el protocolo permite conectar
hasta 127 dispositivos esclavos con esas dos líneas, con hasta velocidades de 100,
400 y 1000 kbits/s. También es conocido como IIC ó TWI – Two Wire Interface.

Si bien este periférico casi nunca se usa para la comunicación entre dispositivos
PCs, es increíblemente popular entre los módulos y sensores, lo que lo hace útil
para proyectos que requieren muchos componentes trabajando juntos. De hecho,
I2C permite conectar casi hasta 128 dispositivos a tu placa Arduino.

Cuando conectas dos circuitos entre sí, piensa en el dispositivo principal como el
"maestro" y los dispositivos conectados, como sensores, expansiones de pines y
controladores, como "esclavos". I2C hace posible la conexión de múltiples maestros
y esclavos a tu placa, a la vez que mantiene una vía de comunicación clara.

22
El MAESTRO I2C se encarga de controlar al cable de reloj, por sus siglas en inglés
llamada SCL – Serial CLock. Además el MAESTRO se encarga de iniciar y parar la
comunicación. La información binaria serial se envía sólo por la línea o cable de
datos seriales, en inglés se llama SDA – Serial DAta. Dos Maestros no pueden hacer
uso de un mismo puerto I2C. Puede funcionar de dos maneras, como maestro-
transmisor o maestro-receptor. Sus funciones principales son:

● Iniciar la comunicación – S
● Enviar 7 bits de dirección – ADDR
● Generar 1 bit de Lectura ó Escritura – R/W
● Enviar 8 bits de dirección de memoria
● Transmitir 8 bits de datos –
● Confirmar la recepción de datos – ACK – ACKnowledged
● Generar confirmación de No-recepción, NACK – No-ACKnowledged
● Finalizar la comunicación

El ESCLAVO I2C, generalmente suele ser un sensor. Este elemento suministra de la


información de interés al MAESTRO. Puede actuar de dos formas: esclavo-
transmisor ó esclavo-receptor. Un dispositivo I2C esclavo, no puede generar a la
señal SCL. Sus funciones principales son:

● Enviar información en paquetes de 8 bits.


● Enviar confirmaciones de recepción, llamadas ACK

● SPI
el protocolo SPI que significa Interfaz Periférica Serial. Al igual que I2C, SPI es una
forma diferente de protocolo de comunicaciones en serie especialmente diseñado
para que los microcontroladores se comuniquen entre sí.

El bus SPI tiene una arquitectura de tipo maestro-esclavo. El dispositivo maestro


(master) puede iniciar la comunicación con uno o varios dispositivos esclavos
(slave), y enviar o recibir datos de ellos. Los dispositivos esclavos no pueden iniciar
la comunicación, ni intercambiar datos entre ellos directamente.

Otra característica de SPI es que es bus síncrono. El dispositivo maestro


proporciona una señal de reloj, que mantiene a todos los dispositivos sincronizados.
Esto reduce la complejidad del sistema frente a los sistemas asíncronos.

Por tanto, el bus SPI requiere un mínimo de 3 líneas.


● MOSI (Master-out, slave-in) para la comunicación del maestro al esclavo.
● MISO (Master-in, slave-out) para comunicación del esclavo al maestro.
● SCK (Clock) señal de reloj enviada por el maestro.
Además, se requiere una línea adicional SS (Slave Select) para cada dispositivo
esclavo conectado, para seleccionar el dispositivo con el que se va a realizar la
comunicación.

----Transductores
● Definición

23
Un transductor se define como aquel dispositivo que es capaz de convertir una
variable física en otra que tiene un dominio diferente. De acuerdo con esta
definición, es posible afirmar que un transductor forma parte de un sensor o de un
actuador; pero la diferencia entre un sensor, un actuador y un transductor radica en
que el transductor simplemente cambia el dominio de la variable, mientras que el
sensor proporciona una salida útil para ser usada como variable de entrada a un
sistema de procesamiento de la información y el actuador se encarga de ejecutar la
acción determinada por el sistema de procesamiento de la información. Por ende, de
manera general, se dice que un transductor cambia la variable física medida a una
señal eléctrica. Entonces, de manera general, se dice que un transductor es capaz
de convertir una variable física en un movimiento, en presión, en flujo, en una señal
eléctrica, etcétera.
http://www.eet476.edu.ar/documentos/Aula%20Virtual/ABBONIZIO-6TM%20(2).pdf
Este dispositivo transforma una magnitud física en una señal eléctrica. Así los
medidores pueden detectar magnitudes físicas como: presión, temperatura,
humedad, entre otras. Y convertirlas en señales eléctricas cuya interpretación es
importante para servicios como pruebas no destructivas.

Los transductores se dividen en dos clases principales: sensores y actuadores. A


partir de estas clases tenemos distintos tipos de transductores:

● Electromagnéticos: transforman energía eléctrica en magnética.


● Capacitivos: utilizados en los medidores industriales, miden la presión con alta
precisión.
● De temperatura: convierten la medición de temperatura en corriente eléctrica.
● Magnéticos: se definen como dispositivos electromecánicos compuestos por una
parte mecánica elástica y un transductor eléctrico que genera una señal.
● Fotoeléctricos: transforman luz en electricidad.
● De presión o resistivos: transmiten mediante corrientes con voltaje fijo, un valor de
presión medido por un sensor elástico.
● De fuerza: son capaces de percibir deformaciones provocadas por fuerzas, y
convertir estos datos en señales eléctricas.

● Compatible con Arduino

Tipo de transductor Para que se usa Imagen

Sensor de ultrasonido Los sensores ultrasónicos


son utilizados para medir
distancias y evitar
objetos. Los sensores
HC-SR04 y PING son dos
modelos comunes.se
pueden calcular
distancias de 2 cm a 500
cm.

24
Sensor IR Otro sensor popular es el
sensor IR o infrarrojos.
Este sensor puede ser
usado para detectar
objetos o contrastes. Es
una opción muy usada
para el seguimiento de
líneas o su evitación en la
robótica. El sensor IR
tiene tres pines (Tierra,
Potencia y Señal).
Conecta la clavija de
señal a cualquier clavija
analógica del Arduino.

Receptor IR Otro tipo de sensor IR es


un receptor IR. En lugar
de usar luz IR para
detectar un objeto o leer
una línea, usaremos un
receptor IR para
decodificar la señal del
mando a distancia de un
televisor.Esto resulta útil
si tienes un dispositivo
que deseas controlar o si
deseas usar un mando a
distancia para conducir un
robot.

Fotoresistor Una fotoresistencia


(también conocida como
resistencia dependiente
de la luz o LDR). Los
fotoresistores pueden
detectar el brillo. Si
quieres construir un robot
que siga una luz o un
prototipo que dispare una
acción basada en
condiciones de luz u
oscuridad, deberás usar
un fotoresistor.

Sensor de temperatura El sensor de temperatura


TMP36 lee la
temperatura, la humedad
y también la presión
atmosférica. Este sensor
es ideal para proyectos
de IO o si quieres hacer
una estación
meteorológica.

25
Teclado numérico Un teclado numérico es
otro impresionante sensor
que se puede utilizar con
Arduino para proporcionar
la entrada del usuario.
Aunque no es un sensor
analógico, proporciona
muchas combinaciones
de números, contraseñas
y entradas para Arduino.

Potenciómetro El potenciómetro nos


proporciona una
resistencia variable según
vayamos modificando su
posición. Si está
totalmente cerrado
obtendremos como salida
el máximo voltaje (el de
entrada), si lo tenemos
totalmente abierto,
obtendremos 0 voltios y si
lo tenemos en una
posición intermedia
obtendremos una fracción
del voltaje de entrada
proporcional a la posición
en la que se encuentre.

Joystick Si deseas controlar las


posiciones x-y o enviar
datos de coordenadas a
Arduino, entonces
deberás usar el módulo
de joystick.

Lector RFID El lector (y grabador)


RFID RC522 es una
opción popular para
automatizar las
cerraduras de las puertas
y los sistemas de acceso.

-----Conclusiones
● Ventajas y desventajas generales de arduino
Ventajas
● La principal ventaja de Arduino es la facilidad: A la hora de programar chips
electrónicos, cada uno tiene una forma diferente de recibir el código. Arduino

26
simplificó este proceso encargándose de que la programación de sus placas
fuera lo más sencilla posible.
● La fiabilidad: Arduino es un fabricante reconocido y confiable. Cuando pides
una placa a Arduino porque lo has visto en la página web y sus componentes
y características te han interesado, sabes que te va a llegar exactamente el
producto que has pedido, con los componentes concretos, el esquemático
correcto y la documentación al día.
● Abundantes los recursos de aprendizaje: Existen a la venta kits de
aprendizaje que incluyen muchos componentes electrónicos básicos como
resistencias y LEDs. Además, hay infinidad de tutoriales y cursos para
aprender a utilizar cualquier modelo, proyectos de código abierto en los que
basarse o buscar inspiración, buena documentación oficial, foros activos, etc.
● Relativamente bajo consumo de energía: Si bien Arduino no es lo que se
llama Ultra Low Power, al menos consume muchísimo menos que un
Raspberry Pi, haciéndolo aceptable para IoT

Desventajas
● No está diseñado para uso industrial: su uso a nivel industrial se ve limitado
porque trae algunos componentes extra con el propósito de facilitar la tarea
al programador, y otros para dar una flexibilidad que en muchos casos no es
necesaria. En soluciones reales, lo habitual es querer una placa que se
ajuste lo máximo posible a tus necesidades, pero el objetivo principal de
Arduino es la facilidad y el aprendizaje y su diseño está enfocado a estos
aspectos. Arduino no cumple muchos de los requisitos o certificaciones
necesarias para utilizarlos en determinados contextos, como aquellos que
requieren alta tolerancia a fallos o sistemas en los que la seguridad es crítica.
● Programarlos puede resultar más difícil que programar con un sistema
operativo: Su programación es diferente a la programación tradicional dentro
de un sistema operativo, y eso puede resultar difícil de aprender, pero como
ya se ha comentado, abunda la documentación y los recursos de aprendizaje
gratuitos y de calidad.
● Nivel escaso de aprendizaje en términos de electrónica y programación: al
utilizar IDE (el entorno de desarrollo integrado) es un gran apoyo para
controlar el hardware, pero por esta vía los que no tienen muchos
conocimientos sobre programación no aprenden mucho sobre la escritura del
código clásico. En general se da el peligro de no esforzarse en programar
debido a la existencia de bibliotecas listas para usar, y limitar así el posible
radio de acción de forma innecesaria.

● Conclusiones
Como se pudo observar Arduino es una plataforma sencilla de comprender y que
brinda muchas herramientas accesibles para realizar diversos proyectos que
requieren de electrónica. Además de permitir diseñar diversos circuitos gracias a la
entrada y salida de información, su bajo costo hace que sea más llamativo para las
personas que desean realizar su proyecto.
Si bien las placas Arduino han ido creciendo no solo en prestaciones o potencia sino
también en proyectos, historias, polémicas y un sinfín de hechos que hacen que
Arduino sea una gran opción para realizar proyectos de Hardware Libre o
sencillamente, para cualquier proyecto relacionado con la electrónica.

27
Referencias:

[1]Yida (2019) “What is Arduino?: Overview and How to get Started” de Magazine 7.
Sitio web: https://www.seeedstudio.com/blog/2019/12/04/introduction-to-the-arduino-
what-is-arduino/

[2] Techopedia (s/a) “What does Arduino Mean? De Techopedia. Sitio web:
https://www.techopedia.com/definition/27874/arduino

[3] John (2020) “Story and history of development of Arduino” de Circuits Today
https://www.circuitstoday.com/story-and-history-of-development-of-arduino

[4]Ben (2018)”What is an Arduino?” de Sparkfun. Sitio web:


https://learn.sparkfun.com/tutorials/what-is-an-arduino/all

[5] Arduino.cl (s/a) “Como instalar arduino en Windows” de MCI Electronics. Sitio
web: https://arduino.cl/como-instalar-arduino-en-windows/

[6] Arduino (2021) “Getting Started with Arduino products” de Arduino. Sitio web:
https://www.arduino.cc/en/Guide

[7] El Procus (s/a) “¿Cuáles son los diferentes tipos de Arduino” de Electronics
ElProcus. Sitio web: https://www.elprocus.com/different-types-of-arduino-boards/

[8] Aidan (2018) “Arduino Boards, Compared” de Core Electronics. Sitio we.
https://core-electronics.com.au/tutorials/compare-arduino-boards.html

[9] Arduino (2021) “What is Arduino?” de Arduino. Sitio web:


https://www.arduino.cc/en/Guide/Introduction

[10] Ramírez, L. G. C., Jiménez, G. S. A., & Carreño, J. M. (2014). Sensores y


Actuadores. Grupo Editorial Patria. (Transductores)
[11] (2020, mayo 7). Transductor: ¿qué es y para qué sirve? Asesoría y Equipos de
Inspección Sa de CV. https://www.aeisa.com.mx/transductor-que-es-y-para-que-
sirve/

[12] R. (2020, abril 21). 9 Sensores para Arduino que debes aprender a utilizar.
Descubrearduino.com. https://descubrearduino.com/sensores-para-arduino-que-
debes-aprender-a-utilizar/

[13] Arduino vs Raspberry Pi | ¿Cómo elegir? ¿Para qué sirven? 10 Tips. (2021, 26
julio). Tribalyte Technologies. https://tech.tribalyte.eu/blog-arduino-vs-raspberry-
pi#Ventajas_de_utilizar_Arduino

28
[14]Arduino vs. Raspberry Pi: una comparativa. (2018, 11 junio). IONOS
Digitalguide.https://www.ionos.mx/digitalguide/servidores/know-how/arduino-vs-
raspberry-pi/
[15] Michelone, M. L. (2016, 21 abril). Lenguajes para usarse en la plataforma
Arduino.unocero.https://www.unocero.com/noticias/lenguajes-para-usarse-en-la-
plataforma-arduino/
[16]Arduino Support from MATLAB. (s. f.). Hardware Support - MATLAB & Simulink.
Recuperado 4 de octubre de 2021, de
https://es.mathworks.com/hardware-support/arduino-matlab.html

29

También podría gustarte