clase 01 - caj programacion de arduino

Upload: srvblues

Post on 07-Jul-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    1/25

    Programación de ArduinoCAJ EET Nº5

    Ing. Juan Manuel López

    19/03/2016

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    2/25

    ¿Qué es un microcontrolador?

    • Circuito integrado programable.

    • Contiene CPU, memoria (RAM, Flash, EEPROM) y periféricos de

    entrada/salida.

    • Existen gran cantidad de fabricantes: Freescale, Microchip, Atmel, NXP.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    3/25

    ¿Qué es Arduino?

    • Placa de desarrollo abierta, tanto en software como en hardware.

    • Basada principalmente en microcontroladores de la empresa Atmel.

    • Posee conectividad con una PC a través del puerto USB.

    • No es necesario un programador externo.

    • Existen de manera gratuita una gran cantidad de librerías que facilitan elmanejo de módulos externos como GPS, acelerómetros, displays,interfaces de red Ethernet, etc.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    4/25

    Placas Arduino

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    5/25

    Placas Arduino

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    6/25

    Arduino UNO

    • Microcontrolador: ATMega328P

    • Tensión de funcionamiento: 5V

    • Alimentación externa: 7 a 12V

    • Pines digitales de entrada/salida: 14

    • Pines analógicos: 6

    • Frecuencia de reloj: 16 MHz

    • Programación a través de USB

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    7/25

    Microcontrolador ATMega328

    • Microcontrolador de la placa Arduino UNO.

    • Memoria: 32 KB de Flash, 2 KB de RAM, 1024 Bytes de EEPROM.

    • Tensión de operación: 1,8V a 5,5V.

    •Cantidad de pines: 28.

    • Frecuencia máxima de reloj: 20 MHz.

    • Timers: 2 de 8 bits y 1 de 16 bits.

    • Conversor Analógico Digital (ADC): 6 canales, 10 bits.

    • Puertos de comunicaciones: UART (serie), SPI, I2C.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    8/25

    Entorno de desarrollo (IDE)

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    9/25

    Estructura de un programa 1

    • Se utiliza el lenguaje C, pero con muchas funciones que simplifican eldesarrollo de los programas.

    • Los programas se dividen en una sección de configuración y otra deprograma principal que deben ser incluidas en todos los programas.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    10/25

    Estructura de un programa 2

    • void setup(): Esta función se ejecuta por única vez al comienzo del programa.En ella escribiremos las instrucciones para configurar los pines como entradao salida, iniciaremos la comunicación serie, entre muchas otras opciones.

    • void loop(): En esta función se escribe el programa principal. El Arduinorepetirá de manera constante el contenido.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    11/25

    Entradas/Salidas digitales

    • Una señal analógica puede tomar cualquier valor entre su mínimo y su máximo.

    •Una señal digital sólo puede tomar valores discretos.

    • Las salidas digitales del Arduino sólo pueden tomar el valor lógico “0” (apagado,bajo, falso) ó “1” (encendido, alto, verdadero).

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    12/25

    Funciones de Arduino 1

    • pinMode(numero de pin, entrada o salida);: Esta función sirve para configurarun pin digital como entrada o como salida. Tiene dos entradas, el número depin que queremos configurar y separado por una coma, si queremos que sea

    una entrada (INPUT) o una salida (OUTPUT).

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    13/25

    Funciones de Arduino 2

    • digitalWrite(número de pin, estado);: Esta función permite escribir un valorbajo (LOW) o alto (HIGH) en el pin especificado. Previamente, debe serconfigurado como salida con la función pinMode().

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    14/25

    Funciones de Arduino 3

    • delay(tiempo): Permite generar retardos de tiempo. Este retardo hace queel microcontrolador no siga ejecutando las líneas de código siguientes,durante un tiempo especificado en milisegundos.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    15/25

    Resumen: Sintaxis 1

    • Funciones: Una función es un bloque de código que se ejecuta cada vez quees llamado en el programa. Antes del nombre de la función se escribe el tipode dato que devuelve, sino devuelve ninguno, se escribe void. Entre

    paréntesis se escriben los parámetros que se le envían a la función (siexisten). Las llaves { } indican el principio y el final del conjunto deinstrucciones que ejecuta la función.

    • Para separar las distintas instrucciones que escribimos, se utiliza el punto ycoma ;.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    16/25

    Resumen: Sintaxis 2

    • Comentarios: El uso de comentarios permite documentar el código. Con //se comenta una línea entera. Si queremos comentar varias líneas, lasescribiremos entre /* */. Los comentarios son ignorados por el compilador.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    17/25

    Ejemplo

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    18/25

    Tipos de variables en C 1

    • En C existen distintos tipos de variables que se utilizarán dependiendo deltamaño del número que queramos guardar. Algunos de estos tipos son lossiguientes:

    •char: Se utiliza para guardar valores de 8 bits (1 byte), equivalente a unrango en decimal de -128 a 127.

    • int: Permite guardar valores de 16 bits (2 bytes), lo que en formato decimalequivale a un rango de -32.768 a 32.767 .

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    19/25

    Tipos de variables en C 2

    • Los tipos char e int son del tipo con signo (signed). Si deseamos guardarsolo valores positivos debemos agregar la palabra unsigned.

    • unsigned char: Al igual que la variable del tipo char, permite almacenarnúmeros de 8 bits, pero en este caso el rango decimal es de 0 a 255.

    • unsigned int: Permite almacenar valores de 16 bits como la variable int,pero el rango decimal va de 0 a 65535.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    20/25

    Condicionales 1

    • If (condicional): Permite ejecutar un bloque de código solo si se cumple lacondición especificada (la condición es verdadera).

    • Ejemplo: Si la variable contador llega al valor 100, entonces se ejecuta elcódigo entre llaves, de lo contrario, se ignora.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    21/25

    Condicionales 2

    • En el caso anterior, el código solo se ejecuta si la condición es verdadera.También es posible ejecutar otro código en caso de que la condición seafalsa. Esto se logra agregando la palabra “else”.

    • Ejemplo: Si la variable contador llega al valor 100, entonces se ejecuta elcódigo entre llaves, de lo contrario, se ejecuta el código que continúa al“else”.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    22/25

    Condicionales 3

    • while(expresión): Ejecuta el código entre llaves mientras se cumpla lacondición.

    • Ejemplo: Mientras la variable entrada sea igual a 1, se ejecutará el código.Cuando sea distinta de 1, no se ejecutará.

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    23/25

    Ejemplo 2

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    24/25

    Ejemplo 3

  • 8/18/2019 Clase 01 - CAJ Programacion de Arduino

    25/25

    Algunos operadores