Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Industriales
2. Arquitectura de los microcontroladores,
selección y programación
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.
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.
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.
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.
10
Conceptos básicos
• Las características principales que presentan los IDE son las
siguientes:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
30
Programación en Arduino
• En ambos casos, tienen las siguientes características:
• Nombre: Identificador dentro del código fuente que utilizamos para usarlas.
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
37