Está en la página 1de 37

Controladores

Industriales
2. Arquitectura de los microcontroladores,
selección y programación

• 2.3.1 Programación en Arduino

1
Introducción
• A lo largo de este punto se va a
aprender lo que es un entorno
de programación junto con
todos los componentes que los
hacen posibles y las ventajas de
utilización que proporcionan a la
hora de programar.

Compilador Alto Nivel Compilador Bajo Nivel 2


Introducción
• Arduino es una plataforma de hardware libre, basada en una placa
con un microcontrolador y un entorno de desarrollo, diseñada para
facilitar el uso de la electrónica en proyectos multidisciplinares.

• Por otro lado Arduino nos proporciona un software consistente en un


entorno de desarrollo (IDE) que implementa el lenguaje de
programación de arduino y el bootloader ejecutado en la placa. La
principal característica del software de programación y del lenguaje
de programación es su sencillez y facilidad de uso.

3
Introducción
• Arduino se puede utilizar para desarrollar elementos autónomos,
conectándose a dispositivos e interactuar tanto con el hardware como
con el software.

• Nos sirve tanto para controlar un elemento, pongamos por ejemplo


un motor que nos suba o baje una persiana basada en la luz existente
en una habitación, gracias a un sensor de luz conectado al Arduino, o
bien para leer la información de una fuente, como puede ser un
teclado, y convertir la información en una acción como puede ser
encender una luz y pasar por un display lo tecleado.

4
Introducción
• El Hardware de Arduino es básicamente una placa con un
microcontrolador. Un microcontrolador (abreviado µC, UC o MCU) es
un circuito integrado programable, capaz de ejecutar las órdenes
grabadas en su memoria.

• Está compuesto de varios bloques funcionales, los cuales cumplen


una tarea específica. Un microcontrolador incluye en su interior las
tres principales unidades funcionales de una computadora: unidad
central de procesamiento, memoria y periféricos de entrada/salida.

5
Introducción
• Arduino dispone de una amplia variedad de placas y shields para usar
dependiendo de nuestras necesidades.
• Un shield es una placa compatible que se puede colocar en la parte
superior de los arduinos y permite extender las capacidades del
arduino.
• Las shields se pueden comunicar con el arduino bien por algunos de
los pines digitales o analógicos o bien por algún bus como el SPI, I2C o
puerto serie, así como usar algunos pines como interrupción. Además
estas shields se alimenta generalmente a través del Arduino mediante
los pines de 5V y GND.

6
Introducción
• Cada Shield de Arduino debe tener el mismo factor de forma que el
estándar de Arduino con un espaciado de pines concreto para que
solo haya una forma posible de encajarlo.

7
Introducción
• El software de Arduino es un
IDE, entorno de desarrollo
integrado. Es un programa
informático compuesto por un
conjunto de herramientas de
programación.

8
Conceptos básicos
• IDE son las siglas que se corresponden con Entorno de Desarrollo
Integrado, “Integrated Development Environment”.
• Un IDE es un programa informático que contiene integradas todas las
herramientas, utilidades y funcionalidades necesarias para facilitar la
tarea de desarrollo de sotware. Las tareas de desarrollo de software
que integran los IDE son las siguientes:
• Creación y modificación de proyectos de desarrollo de software.
• Implementación de código fuente.
• Compilación del código fuente.
• Ejecución del programa.
• Depuración del programa.

9
Conceptos básicos
• Un aspecto muy importante que incluyen los IDE es que son entornos
de programación amigables, cuidan la usabilidad de los mismos y la
experiencia de usuario de los desarrolladores.

• Además, todos los IDE tienen más o menos la misma apariencia, lo


que hace que los desarrolladores sean capaces de manejar diferentes
IDE de forma fácil y sencilla para ellos.

10
Conceptos básicos
• Las características principales que presentan los IDE son las
siguientes:

1. Multiplataforma: Están disponibles para los diferentes sistemas


operativos existentes.

2. Múltiples idiomas: Están disponibles en diferentes idiomas para


maximizar el alcance de los mismos.

11
Conceptos básicos
3. Soporte para diversos lenguajes de programación: Permiten el
desarrollo de software ofreciendo la posibilidad de utilizar
diferentes lenguajes de programación. No todos los IDE soportan
mas de un lenguaje de programación. Existen IDE que únicamente
están destinados a un único lenguaje.

4. Reconocimiento de Sintaxis: Son capaces de reconocer el conjunto


de reglas que debe seguir el desarrollador al escribir un programa
de forma correcta en un lenguaje concreto.

12
Conceptos básicos
5. Extensiones y Componentes para el IDE: Permiten la posibilidad de
añadir funcionalidades extras al IDE con el fin de mejorar el proceso
del desarrollo de software por parte del desarrollador.
6. Integración con Framework populares: Permiten la integración de
los programas desarrollados con los frameworks de desarrollo de
terceros de forma dinámica y fácil.
7. Integración con Sistemas de Control de Versiones: Ofrecen la
posibilidad de utilizar un sistema de control de versiones para el
código fuente.

13
Conceptos básicos
8. Depurador: Poseen herramientas para realizar depuraciones de
código fuente.

9. Importar y Exportar proyectos: Permiten trabajar con proyectos que


han sido creados con el mismo IDE pero en instalaciones diferentes.

10. Incluyen Manual de Usuario y Ayuda

14
Componentes de un IDE
• Los componentes principales que incluyen los IDE son los siguientes:
1. Editor de texto: Herramienta que sirve para escribir el código fuente
del programa.

2. Compilador: Herramienta que permite traducir de código fuente a


lenguaje máquina.

3. Depurador: Herramienta que permite probar y eliminar errores en


el código fuente.

15
Componentes de un IDE
4. Editor gráfico: Herramienta que permite crear y diseñar las
interfaces gráficas con las que interactuará el usuario de la
aplicación.
5. Intérprete: Herramienta que es capaz de ejecutar el código fuente
sin necesidad de utilizar lenguaje máquina, únicamente
interpretando el lenguaje en el que esta escrito el programa.

• Normalmente, los IDE suelen incorporar muchos más componentes,


es más, tal y como te hemos expuesto en el punto anterior, una de las
características más relevantes que poseen es que tienen que permitir
la posibilidad de incluir extensiones y componentes externos.
16
La placa Arduino
• Entre todos los modelos que existen de Arduino, vamos a centrar la
explicación en el modelo más utilizado y que es considerado el
estándar dentro de todos ellos, la placa Arduino UNO. El modelo
actual de Arduino UNO es la revisión 3, por eso es comúnmente
conocida como Arduino UNO R3 o Arduino UNO Rev3.

17
La placa Arduino
• Alimentación. La alimentación eléctrica que necesita la placa de
Arduino puede obtenerse de tres formas diferentes:
• Conexión de la placa Arduino a una fuente externa.
• Conexión de la placa Arduino mediante USB a un ordenador.
• Conexión a un puerto de alimentación. La placa de Arduino necesita 5V de
alimentación para poder funcionar correctamente.

• En el caso de conexiones externas, la placa esta preparada para recibir


voltajes entre 6 y 20 voltios, pero esta regulado mediante un circuito
regulador de tensión que tiene incorporado la placa y que convierte el
voltaje de entrada en 5V continuos.

18
La placa Arduino
• En el caso de conexión mediante USB, el voltaje recibido siempre es
de 5V, y en el caso de recibir una tensión superior mediante el puerto
USB la placa de Arduino detiene la conexión mediante el polifusible
reseteable que incorpora hasta que se restauren los 5V.

• En el caso de una conexión a un puerto de alimentación, el voltaje


que recibe dicho puerto tiene que estar previamente regulado a 5V.

19
La placa Arduino
• Puerto USB. El puerto USB de la placa Arduino es el puerto mediante
el cual nos comunicaremos con la placa de Arduino desde el exterior.
Sus funciones principales son:

• Alimentación de la placa.

• Cargar los programas en el microcontrolador desde el ordenador.

• Envío de información desde la placa al ordenador, y viceversa.

20
La placa Arduino
• Entradas y salidas digitales. La placa de Arduino dispone de 14
entradas y salidas digitales que se encuentran en la placa en la
sección de pines indicados como DIGITAL. Los pines se encuentran
numerados del 0 al 13.

• Comúnmente son conocidos como GPIO, “General Purpose


Input/Output. La función principal de las entradas y salidas digitales
es la conexión de sensores y actuadores para recibir y enviar
información de y hacia dichos componentes.

21
La placa Arduino
• Todos funcionan a 5V y disponen de una resistencia interna, pull-up,
que deberemos de activar mediante código fuente si deseamos
utilizarla.

• Los pines, a la hora de proporcionar intensidad a los componentes


conectados a ellos, se encuentra agrupados en dos grupos, pines del 0
al 4 y pines del 5 al 13.

• Cada grupo de pines proporcionará un máximo de 100 mA de tensión


a la vez, siendo 40 mA el máximo que cada pin puede proporcionar.

22
La placa Arduino
• Entradas Analógicas. La placa de Arduíno dispone de 6 entradas
analógicas que se encuentra en la placa en la sección de pines
indicados como ANALOG IN. Los pines se encuentra numerados
empezando por el A0 y acabando en el A5 y pueden recibir valores de
voltaje dentro del rango 0V y 5V.

• No debes llevarte a engaño, la placa de Arduino únicamente trabaja


con valores digitales, por lo que los valores obtenidos en dichos pines
son transformados a valores digitales aproximados por el circuito
conversor analógico/digital que incorpora la placa.

23
La placa Arduino
• El nivel de precisión de dicha conversión viene dado por el número de
bits que incorpora el circuito de conversión, a mayor número de bits
mayor será la precisión.

• Los pines puede ser utilizados como pines de entradas y salidas


digitales en caso de necesitarlo por el circuito que estamos
montando, pero en ese caso, cambiaría la numeración, en lugar de
usar de A0 a A5, estarían numerados del 14 al 19.

24
La placa Arduino
• Salidas analógicas. La placa de Arduíno UNO R3 no dispone de pines
de salidas analógicas dedicados exclusivamente a esa función, sino
que incluye en un subconjunto de pines de entrada y salida digitales,
la función de simulación de salida analógica.

• El subconjunto de pines que pueden trabajar como salidas analógicas


son el 3, 5, 6, 9, 10 y 11 y están marcados en la placa de Arduino con
el símbolo N. La razón de que la placa de Arduino no disponga de
dichos pines es porque no es capaz de manejar este tipo de señales y
lo que hace es simularla mediante pines de entrada y salida digitales.

25
La placa Arduino
• Las salidas analógicas simuladas mediante entradas y salidas digitales
se llaman salidas analógicas PWM, Pulse Width Modulation, y su
modo de funcionamiento es enviar señales formadas por pulsos de
frecuencia constante en lugar de enviar una señal continua, es decir,
variando la frecuencia y anchura de los pulsos que se envían se simula
la tensión que se enviaría de forma continua.
• Resumiendo, existe una limitación en las placas (y no solo en las de
Arduino) que no permiten proporcionar salidas analógicas auténticas,
y para ello, utilizan un mecanismo de simulación de salida analógica
para poder comunicarse con actuadores capaces de recibir entradas
analógicas.

26
La placa Arduino
• Pines con doble función. La placa de Arduino incorpora una serie de
pines en los pines de entradas y salidas digitales y de entradas
analógicas que, además de su función propia de entrada y salida,
incorporan una funcionalidad extra a la placa. Son los siguientes:
• Pin 0 (RX): Pin que permite al microcontrolador ATmega328P recibir
directamente datos en serie sin pasar por el conversor USB-Serie del
ATmega16U2.
• Pin 1 (TX): Pin que permite al microcontrolador ATmega328P enviar
directamente datos en serie sin pasar por el conversor USB-Serie del
ATmega16U2.
• Pin 2: Mediante programación software se puede utilizar para gestionar
interrupciones en la placa.

27
La placa Arduino
• Pin 3: Mediante programación software se puede utilizar para gestionar
interrupciones.
• Pines para comunicaciones serie con el protocolo SPI:
• Pin 10: SS.
• Pin 11: MOSI.
• Pin 12: MISO.
• Pin 13: SCK.
• Pin 13: Permite detectar de forma rápida y sencilla señales externas sin
necesidad de conectar componentes extras a nuestro circuito. Esto se debe a
que esta conectado a un LED incrustado en la placa que se encenderá si la
señal recibida es HIGH y se apagara si es LOW. Puedes encontrar el LED en la
placa de Arduino junto a la etiqueta L.

28
Programación en Arduino
• Un programa es el primer concepto que tienes que entender, y no es
otra cosa que un conjunto de instrucciones que se le dan a un
ordenador de forma secuencial para que realice una tarea específica.

• Normalmente los programas reciben una serie de datos por parte del
usuario y obtienen otros datos de salida una vez terminan de ejecutar
la tarea que se les ha ordenador realizar mediante programación.

29
Programación en Arduino
• Las variables y las constantes son datos que residen en la memoria del
ordenador (placa de Arduino para nosotros) y que son utilizadas en la
ejecución de los programas.

• La gran diferencia entre una variable y una constante es que la


variable puede cambiar de valor durante la ejecución del programa,
mientras que la constante no.

30
Programación en Arduino
• En ambos casos, tienen las siguientes características:

• Nombre: Identificador dentro del código fuente que utilizamos para usarlas.

• Tipo: Lo veremos en el siguiente apartado, pero una variable o constante


tiene que ser de un tipo concreto, como por ejemplo, un número entero.

• Valor: Las variables y constantes tienen almacenado un valor. En el caso de las


constantes, el valor permanece fijo durante toda la ejecucion del programa.

31
Programación en Arduino
• Tipos de datos.

32
Programación en Arduino
• Tipos de datos.

33
Programación en Arduino
• OPERADOR ASIGNACIÓN. En programación existe un operador para
asignar valores a las variables, es el operador ‘=’.

34
Programación en Arduino
• OPERADORES ARITMÉTICOS. En programación se pueden realizar
operaciones aritméticas utilizando los propios operadores que
conoces, pero, tienes que tener en cuenta que únicamente pueden
ser tipos de datos numéricos o variables que contengan como valor
un número.

35
Programación en Arduino
• OPERADORES RELACIONALES. En programación los operadores mas
importantes y con mas uso son los operadores relacionales, ya que te
permiten comprobar si se cumplen o no ciertas condiciones para
tomar decisiones dentro de tu programa.

36
Programación en Arduino
• Los operadores se utilizan para comparar el primer elemento con el
segundo, por tanto se utilizan de la siguiente forma:
Elemento 1 Operador Elemento 2

• El resultado de la comprobación puede ser únicamente dos valores:

• algunos ejemplos de uso:

37

También podría gustarte