Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a...

26
Mundo Arduino ¡Manos a la obra! Introducción a Arduino Lucas Martire - Santiago Rodríguez - Germán Scillone - Jorge Anderson - Sebastián Millán - Facundo Aparicio - Juan C. Scattuerchio Depto. ELECTROTECNIA - FI - UNLP CDR - 2015 Electrotecnia - FI - UNLP

Transcript of Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a...

Page 1: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Introducción a Arduino

Lucas Martire - Santiago Rodríguez - Germán Scillone - JorgeAnderson - Sebastián Millán - Facundo Aparicio - Juan C.

Scattuerchio

Depto. ELECTROTECNIA - FI - UNLP

CDR - 2015 Electrotecnia - FI - UNLP

Page 2: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Índice

1 Mundo Arduino

2 ¡Manos a la obra!

CDR - 2015 Electrotecnia - FI - UNLP

Page 3: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Índice

1 Mundo Arduino

2 ¡Manos a la obra!

CDR - 2015 Electrotecnia - FI - UNLP

Page 4: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

¿Por qué Arduino?

El Arduino es una plataforma de desarrollo que nos brindará unarápida y fácil introducción al mundo de los microcontroladores,permitiendo tanto la creación como implementación de una granvariedad de proyectos sin un conocimiento demasiado extenso sobrela materia.

CDR - 2015 Electrotecnia - FI - UNLP

Page 5: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Entorno de Desarrollo Integrado (IDE)

La IDE es el lugar donde trabajaremosnuestra programación, para luego podercargarla al Arduino. Se comunica a travésdel puerto UART del microcontrolador,creando una interfaz USB.

¿En que lenguaje programaremos?

El Arduino tiene la facilidad deadaptación para un sin fin de lenguajesde programación posibles, nosotros nosdedicaremos a la programación en ellenguaje C.

CDR - 2015 Electrotecnia - FI - UNLP

Page 6: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Un poco de programación

Poniendo manos a la obraPara hacer uso del microcontrolador, habrá que especificar lasinstrucciones que deberá seguir para realizar las tareas deseadas.Para ello, recurrimos a la programación usando el lenguaje C talcomo se anticipó.

Fundamentos de C para Arduino

La IDE de Arduino hace uso varias librerías (Las cuales sonconjuntos de funciones predefinidas) para facilitar la tarea deprogramación. En tanto, este entorno consta de dos funcionesfundamentales. Estas son las funciones setup() y loop() y lasdestacamos por ser indispensables para cualquier proyecto.

CDR - 2015 Electrotecnia - FI - UNLP

Page 7: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

Las siguientes funciones están relacionadas con el módulo depuertos Entrada/salida:

pinMode(pin,mode)

digitalRead(pin)digitalWrite(pin,value)

CDR - 2015 Electrotecnia - FI - UNLP

Page 8: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

Las siguientes funciones están relacionadas con el módulo depuertos Entrada/salida:

pinMode(pin,mode)digitalRead(pin)

digitalWrite(pin,value)

CDR - 2015 Electrotecnia - FI - UNLP

Page 9: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

Las siguientes funciones están relacionadas con el módulo depuertos Entrada/salida:

pinMode(pin,mode)digitalRead(pin)digitalWrite(pin,value)

CDR - 2015 Electrotecnia - FI - UNLP

Page 10: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

La siguiente función está relacionada con el módulo del conversorAnalógico/Digital:

analogRead(pin)La siguiente función está relacionada con el módulo deltemporizador:

analogWrite(pin,value)

Las siguientes funciones están relacionadas con el módulo decomunicación:

Serial.begin(speed)Serial.write(val)Serial.read()

CDR - 2015 Electrotecnia - FI - UNLP

Page 11: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

La siguiente función está relacionada con el módulo del conversorAnalógico/Digital:

analogRead(pin)La siguiente función está relacionada con el módulo deltemporizador:

analogWrite(pin,value)

Las siguientes funciones están relacionadas con el módulo decomunicación:

Serial.begin(speed)Serial.write(val)Serial.read()

CDR - 2015 Electrotecnia - FI - UNLP

Page 12: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

La siguiente función está relacionada con el módulo del conversorAnalógico/Digital:

analogRead(pin)La siguiente función está relacionada con el módulo deltemporizador:

analogWrite(pin,value)Las siguientes funciones están relacionadas con el módulo decomunicación:

Serial.begin(speed)Serial.write(val)Serial.read()

CDR - 2015 Electrotecnia - FI - UNLP

Page 13: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

La siguiente función está relacionada con el módulo del conversorAnalógico/Digital:

analogRead(pin)La siguiente función está relacionada con el módulo deltemporizador:

analogWrite(pin,value)Las siguientes funciones están relacionadas con el módulo decomunicación:

Serial.begin(speed)Serial.write(val)Serial.read()

CDR - 2015 Electrotecnia - FI - UNLP

Page 14: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

La siguiente función está relacionada con el módulo del conversorAnalógico/Digital:

analogRead(pin)La siguiente función está relacionada con el módulo deltemporizador:

analogWrite(pin,value)Las siguientes funciones están relacionadas con el módulo decomunicación:

Serial.begin(speed)

Serial.write(val)Serial.read()

CDR - 2015 Electrotecnia - FI - UNLP

Page 15: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

La siguiente función está relacionada con el módulo del conversorAnalógico/Digital:

analogRead(pin)La siguiente función está relacionada con el módulo deltemporizador:

analogWrite(pin,value)Las siguientes funciones están relacionadas con el módulo decomunicación:

Serial.begin(speed)Serial.write(val)

Serial.read()

CDR - 2015 Electrotecnia - FI - UNLP

Page 16: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Algunas funciones básicas

La siguiente función está relacionada con el módulo del conversorAnalógico/Digital:

analogRead(pin)La siguiente función está relacionada con el módulo deltemporizador:

analogWrite(pin,value)Las siguientes funciones están relacionadas con el módulo decomunicación:

Serial.begin(speed)Serial.write(val)Serial.read()

CDR - 2015 Electrotecnia - FI - UNLP

Page 17: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Esquema de pines del Arduino

Poniendo manos a la obraEl Arduino posee su propia enumeración para los puertos delmicrocontrolador, la cual tendremos que tomar en cuenta a la hora decrear nuestras aplicaciones.

Page 18: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Placa de prueba

RX

TX

SW2

13

11

10

9

7

4

2

1

0

3

5

6

8

12

0

0 A1

A3

A4

A5

A2

A0

0

03.3V

GND

Vin

5V

GND

GND

SW1

SW2

SW3

LED3

LED4

LED1 LED2

FT

LDR

POT

LDR

FT

POT SW1

SW3

LED3

LED4

PWM

LED2PWM

LED1PWM

CDR - 2015 Electrotecnia - FI - UNLP

Page 19: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Pin Micro

Pin Micro

CDR - 2015 Electrotecnia - FI - UNLP

Page 20: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

+5V

Pin Micro

CDR - 2015 Electrotecnia - FI - UNLP

Page 21: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

¡A trabajar!

Para concluir, se mostrará un pequeño ejemplo, clásico para laintroducción en el manejo de microcontroladores. El código delproyecto siguiente servirá para mostrar un led resplandeciente conuna frecuencia fija y en dicho código se utilizarán algunas de lasfunciones presentadas anteriormente.

CDR - 2015 Electrotecnia - FI - UNLP

Page 22: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Utilizando los puertos digitales

Para nuestro primer programa en Arduino comenzaremos por probarlos puertos digitales. Prueben encender y apagar uno de los leds conuna espera de 1 segundo, recuerden que para poder utilizar lospuertos digitales deben ser configurados previamente.

PistasUtilice las funciones pinMode() para configurar los puertos comosalida, digitalWrite() para encender o apagar los leds y la funcióndelay() pare generar los retardos. ¿Hay una forma más sencillo dehacerlo?

CDR - 2015 Electrotecnia - FI - UNLP

Page 23: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

¡Hola mundo!

#include <DEF_PP.h>

/* La rutina de inicialización se ejecuta una vez que se

presione "reset" */

void setup() {

// Se inicializa el pin digital como salida.

pinMode(LED1, OUTPUT);

}

/* La rutina de "loop" se ejecuta indefinidamente */

void loop() {

digitalWrite(LED1, HIGH); // encender el LED

delay(1000); // esperar un segundo

digitalWrite(LED2, LOW); // apagar el LED

delay(1000); // esperar un segundo

}

CDR - 2015 Electrotecnia - FI - UNLP

Page 24: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Utilizando los puertos digitales

Continuando con los puertos digitales, intente utilizar alguno de lospulsadores para encender uno de los leds cuando sea presionado.

PistasRecuerde que para poder leer los puertos digitales utilizaremos lafunción digitalRead(). La función para configurar los puertosdigitales era pinMode(). ¿Con que opción tendremos que configurarel puerto de entrada?

CDR - 2015 Electrotecnia - FI - UNLP

Page 25: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

Mundo Arduino¡Manos a la obra!

Para finalizarAhora intentaremos utilizar los puertos de lectura analógicos, trate deleer el valor de tensión en el potenciómetro asignandole intervalos devalores para el encendido de diferentes leds.

PistasPara leer los puertos analógicos podremos utilizar la funciónanalogRead(). Recuerde que la función devuelve valores entre 0 y1023 unicamente, asi que puede dividir los intervalos de 0 a 511 y512 a 1023.

CDR - 2015 Electrotecnia - FI - UNLP

Page 26: Introducción a Arduino - UNLPcdr.ing.unlp.edu.ar/files/presentaciones/007_Introduccion a Arduino.p… · Mundo Arduino ¡Manos a la obra! Utilizando los puertos digitales Para nuestro

¡ Gracias por la atención !