1 of 32

INTRODUCCIÓN A ARDUINO

David Santos, Xaime Rodríguez, Iago Fernández y Daniel Fernández

4ºA

2 of 32

QUÉ ES ARDUINO

Arduino es una compañía de hardware libre, la cual desarrolla placas de desarrollo que integran un microcontrolador y un entorno de desarrollo (IDE), diseñado para facilitar el uso de la electrónica en proyectos multidisciplinarios. - Wikipedia

3 of 32

APLICACIONES

  • Ardupilot: software y hardware de aeronaves no tripuladas.
  • ArduinoPhone: un teléfono móvil construido sobre un módulo Arduino.21 22
  • Maquinas de control numérico por computadora (CNC).
  • Open Theremín Uno: Versión digital de hardware libre del instrumento Theremín.
  • Impresoras 3D.

4 of 32

TIPO DE PLACAS

  • ARDUINO MEGA
  • ARDUINO BLUETOOTH
  • ARDUINO PRO
  • ARDUINO UNO
  • ARDUINO NANO
  • ARDUINO MINI
  • ARDUINO PRO MINI
  • ARDUINO DUEMINALOVE

5 of 32

TIPOS DE PLACAS

ARDUINO MEGA

ARDUINO PRO

ARDUINO BLUETOOTH

6 of 32

TIPOS DE PLACAS

ARDUINO UNO

ARDUINO MINI

ARDUINO NANO

7 of 32

TIPO DE PLACAS

ARDUINO PRO MINI

ARDUINO DUEMINALOVE

8 of 32

ARDUINO UNO (1) Características

El arduino UNO es una placa con un microcontrolador de la marca ATMEGA y con toda la circuitería de soporte, que incluye reguladores de tensión y un puerto USB conectado a un módulo adaptador USB-Serie que permite programar el microcontrolador desde cualquier PC de manera cómoda y también hacer pruebas de comunicación con el propio chip.

9 of 32

ARDUINO UNO (2) Entradas y salidas

Consta de 14 pines que pueden configurarse como entrada o salida y a los que puede conectarse cualquier dispositivo que sea capaz de transmitir o recibir señales digitales de 0 y 5 V. Cada pin puede suministrar hasta 40 mA, siendo esta también su intensidad máxima. Tienen una resistencia interna de entre 20 KΩ y 50 KΩ, que permanecerá desconectada a no ser que nosotros indiquemos lo contrario. También hay 6 pines de entrada analógicos que trasladan las señales a un conversor analógico/digital de 10 bits.

10 of 32

ARDUINO UNO (3) Pines especiales

-RX y TX: Se usan para transmisiones serie de señales TTL.

-Interrupciones externas: Los pines 2 y 3 están configurados para generar una interrupción en el atmega cuando se encuentra un valor bajo en estas entradas.

-PWM: 6 salidas destinadas a generar señales PWM( pulse-width modulation) de hasta 8 bits.

11 of 32

ARDUINO UNO (4) Pines especiales

-SPI: Los pines 10, 11, 12 y 13 pueden utilizarse para llevar a cabo comunicaciones SPI( Serial Peripheral Interface), que permiten trasladar información full dúplex en un entorno Maestro/Esclavo.

-I2C: Permite establecer comunicaciones a través de un bus I2C. El bus I2C es un producto de Phillips para interconexión de sistemas embebidos

12 of 32

IDE de Arduino (1) Descripción

El IDE (Entorno de Desarrollo Integrado) es el software que es necesario instalar para así poder programar el Arduino.

13 of 32

IDE de Arduino (2) Instalación

En Windows:

  • Descarga la última versión de la página de descargas.
  • Descomprimir el archivo, doble click en instalar.
  • Siguiente siguiente… siguiente siguiente… fin.

En Linux/Ubuntu:

Solo tenemos que abrir una consola de comandos y escribir:

1 sudo apt-get install arduino

Ya tendréis instalada la última versión estable de Arduino.

14 of 32

ESTRUCTURA DE UN SKETCH (1)

Se denomina Sketch a una parte de código fuente listo para abrir con el IDE y ser cargado sobre nuestro dispositivo. Sobre él se escribirá todo el comportamiento que tendrá nuestro proyecto, incluyendo respuesta ante entradas determinadas, cálculos internos, salidas del sistema, etc…

15 of 32

ESTRUCTURA DE UN SKETCH (2)

Un sketch se compone al menos de dos partes.

16 of 32

ESTRUCTURA DE UN SKETCH (3)

El bloque setup()

La parte de código representada como se ejecuta una sola vez cuando comienza el programa. Aun cuando no escribamos nada en él, es necesario escribirlo y añadir las llaves de apertura y cierre { }. Es el método encargado de recoger la configuración. Se suele emplear para determinar si un determinado ‘pin’ es salida o entrada, establecer su valor inicial, inicializar el puerto serie…

17 of 32

ESTRUCTURA DE UN SKETCH (4)

El bloque loop()

Como su propio nombre indica, la función se ejecuta de forma ininterrumpida, una y otra vez. Con este bucle logramos que nuestro programa responda ante los distintos eventos que se produzcan en nuestro proyecto.

18 of 32

ESTRUCTURA DE UN SKETCH (5)

Las llaves { } delimitan bloques de código como funciones, sentencias if…etc, marcando el comienzo y el fin del mismo. Toda llave de apertura ha de tener una llave de cierre de forma balanceada.

Si ves algún sketch, verás partes del código que están escritas en lenguaje humano, es decir, no entendible para el IDE de Arduino. Un buen sketch va siempre acompañado de unos buenos comentarios, es decir, líneas de código que el programa ignorará y que nos servirán, por ejemplo, para describir el funcionamiento del programa.

19 of 32

PRÁCTICAS SELECCIONADAS

  • ¡Hola Mundo! o Blink.
  • Parpadeo de un LED.
  • Encendido secuencial de varios LED al modo del coche fantástico.
  • Semáforo con LEDS.
  • Control de brillo de un LED mediantet un potenciómetro.

20 of 32

¡HOLA MUNDO! O BLINK

CÓDIGO UTILIZADO:

void setup() {

pinMode(13, OUTPUT);

}

void loop() {

digitalWrite(13, HIGH); delay(1000);

digitalWrite(13, LOW); delay(1000);

}

21 of 32

PARPADEO DE UN LED

CÓDIGO UTILIZADO:

int led = 13;

void setup() {

pinMode(led, OUTPUT);

}

void loop() {

digitalWrite(led, HIGH)

delay(1000);

digitalWrite(led, LOW); delay(1000);

}

22 of 32

COCHE FANTÁSTICO

23 of 32

CÓDIGO UTILIZADO

int pin2 = 2;

int pin3 = 3;

int pin4 = 4;

int pin5 = 5;

int pin6 = 6;

int pin7 = 7;

int espera = 70;

void setup(){

pinMode(pin2, OUTPUT);

pinMode(pin3, OUTPUT);

pinMode(pin4, OUTPUT);

pinMode(pin5, OUTPUT);

pinMode(pin6, OUTPUT);

pinMode(pin7, OUTPUT);

}

void loop() {

digitalWrite(pin2, HIGH);

delay(espera);

digitalWrite(pin2, LOW);

delay(espera);

digitalWrite(pin3, HIGH);

delay(espera);

digitalWrite(pin3, LOW);

delay(espera);

digitalWrite(pin4, HIGH);

delay(espera);

digitalWrite(pin4, LOW);

delay(espera);

digitalWrite(pin5, HIGH);

delay(espera);

digitalWrite(pin5, LOW);

delay(espera);

digitalWrite(pin6, HIGH);

delay(espera);

digitalWrite(pin6, LOW);

delay(espera);

digitalWrite(pin7, HIGH);

delay(espera);

digitalWrite(pin7, LOW);

delay(espera);

digitalWrite(pin6, HIGH);

delay(espera);

digitalWrite(pin6, LOW);

delay(espera);

digitalWrite(pin5, HIGH);

delay(espera);

digitalWrite(pin5, LOW);

delay(espera);

digitalWrite(pin4, HIGH);

delay(espera);

digitalWrite(pin4, LOW);

delay(espera);

digitalWrite(pin3, HIGH);

delay(espera);

digitalWrite(pin3, LOW);

delay(espera);

}

24 of 32

SEMÁFORO

25 of 32

CÓDIGO UTILIZADO

int rojo=6;

int amarillo=4;

int verde=2;

void setup() {

pinMode(verde,OUTPUT);

pinMode(amarillo,OUTPUT);

pinMode(rojo,OUTPUT);

}

void loop() {

digitalWrite(verde,HIGH); delay(3000); digitalWrite(verde,LOW);

delay(500);

digitalWrite(amarillo,HIGH);

delay(1000);

digitalWrite(amarillo,LOW);

delay(500);

digitalWrite(rojo,HIGH);

delay(3000); digitalWrite(rojo,LOW); delay(500); }

26 of 32

CONTROL DE BRILLO

CÓDIGO UTILIZADO:

const int led =3;

const int pot =0;

int brillo; �void setup () {�pinMode (led, OUTPUT); �void loop (){�brillo = analogRead (pot) / 4; �analogWrite(led, brillo);

}

27 of 32

123D Circuits

Control de brillo de un LED mediante potenciómetro

<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281862-control-del-brillo-de-un-led-mediante-potenciometro/embed#breadboard' width='650'></iframe>

28 of 32

123d circuits

Semáforo

<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281834-semaforo/embed#breadboard' width='650'></iframe>

29 of 32

123d circuits

Coche fantástico:

<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281818-coche-fantastico/embed#breadboard' width='650'></iframe>

30 of 32

123D circuits

Parpadeo de un LED:

<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281804-parpadeo-de-un-led/embed#breadboard' width='650'></iframe>

31 of 32

123D circuits

¡Hola mundo! o Blink:

<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281809-hola-mundo-o-blink/embed#schematic' width='650'></iframe>

32 of 32

Webgrafía