Download pptx - Introducción a Arduino r2

Transcript
Page 1: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Taller de Iniciación

Arduino

Marino Linaje

Page 2: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Índice

• ¿Qué es Arduino?– Intro– DIY, Open Hardware…– Arduino Uno

• Formas de prototipado• Programación

– Intro– Ejemplos

Page 3: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje 3

¿Qué es Arduino?

openPicus

Arduino

Seeeduino

Netduino

IOIO

Raspberry Pi

LilyPad

Etc.

Plataformas Prototipado HW (microcontrontrolador)

Page 4: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

¿Qué es Arduino?

• Multiplatforma (Windows, Linux, Mac)• Energía via USB o externo

– (Adaptador AC/DC o batería)

• Muchas alternativas

Intro

Arduino Mega 2560

Arduino Ethernet

Arduino Pro Mini 328

http://www.arduino.cc/

Page 5: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje 5

¿Qué es Arduino?Open Hardware, DIY

Arduino board

Arduino IDE DIY: Do It Yourself

Page 6: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Hardware

Arduino Uno

Digital I/O Pins 14 (6 PWM)

Analog Input Pins 6

Flash Memory 32 KB

SRAM 2 KB

EEPROM 1 KB

Voltaje 5V

Cost ~$30.00

• Flash memory – Almacena el sketch

• SRAM – Donde el sketch crea y manipula

las variables

• EEPROM – Memoria no volátil donde

almacenar información

Arduino Uno

Page 7: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

HardwareArduino Uno

PWM: modulación por ancho de pulsos (Pulse-Width Modulation)E.g., control de motores, ADCs

Page 8: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Formas de prototipadoDirecta

Page 9: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Formas de prototipadoBreadboard (Tablero de circuitos)

Page 10: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Formas de prototipadoProblemas: Requiere ciertos conocimientos y habilidades

Page 11: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Formas de prototipadoMódulos

Page 12: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Programación

• Lenguaje propio basado en “wiring” – (similar a C)

• Ejemplos de comandos:– digitalWrite(pin#, HIGH or LOW);– digitalRead(pin#);– Serial.println(“hola”);

• Estructura del código:– setup{ //código que se corre una vez al inicio }– void loop{ //código principal }

Intro

http://arduino.cc/es/Reference/HomePagehttp://www.tinkerkit.com/reference/

Page 13: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje 13

Programación

Conectar Arduino mediante USB

Instalar driver• Se encuentra en la

carpeta del IDE

Abrir IDE• Herramientas ->

Tarjeta -> Arduino UNO

• Herramientas -> Puerto Serie -> COM#

Intro

Page 14: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje 14

Programación

• #define O0 11• #define O1 10• #define O2 9• #define O3 6• #define O4 5• #define O5 3• #define I0 A0• #define I1 A1• #define I2 A2• #define I3 A3• #define I4 A4• #define I5 A5

Definición de los pines

SOLO PARA THINKERKIT!!!

Page 15: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje 15

Programación

• Hacer que un LED se encienda y apague continuamente

• Conectar un LED al output O0.

• Los zócalos se conectan con sensores/actuadores del mismo color.

• pinMode– INPUT– OUTPUT

• digitalWrite– HIGH– LOW

• delay

#define O0 11

void setup() {

pinMode(O0, OUTPUT);

}

void loop() {

digitalWrite(O0, HIGH);

delay(1000);

digitalWrite(O0, LOW);

delay(1000);

}

Ejemplo 1

Page 16: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Programación

• Hacer que el LED se encienda cuando toquemos un pulsador

• Conectar el pulsador o el sensor táctil a I0(#define I0 A0)

• digitalRead– True– False

#define O0 11#define I0 A0

void setup() { pinMode(O0,OUTPUT); pinMode(I0,INPUT);}

void loop() {

if(digitalRead(I0)){ digitalWrite(O0, HIGH); }else{ digitalWrite(O0, LOW); } delay(10);}

Ejemplo 2

16

Page 17: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Programación

• Controlar la potencia de luz de un LED con un eje de un joystick

• Conectar a I0 uno de los zócalos del joystick

• analogRead• map

– Re-mapea un número de un rango a otro

– y=map(x,1,150,0,20);– 1,150rango original de x– 0,20rango destino de y

• analogWrite

#define O0 11

#define I0 A0

int analogInputValue = 0;

int analogOutputValue = 0;

void setup() {

pinMode(O0,OUTPUT);

pinMode(I0,INPUT);

}

void loop() {

analogInputValue = analogRead(I0);

analogOutputValue = map(analogInputValue,0,1023,0,255);

analogWrite(O0,analogOutputValue);

delay(10);

}

Ejemplo 3

17

Page 18: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Programación

• Para hacer un debug muy básico

int valorSensor=20;

void setup() {

// initializa comm. serie a 9600bps

Serial.begin(9600);

}

void loop() {

Serial.print("\t valor = " );

Serial.print(valorSensor);

delay(10);

}

Serial print

Page 19: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Programación

• Controlar la potencia de luz de dos LEDs con los dos ejes de un joystick

• Pines O0 y O1 configurados como salidas analógicas (conectar dos LEDs)

• Pines I0 e I1 configurados como entradas analógicas (conectar los dos zócalos del joystick)

• Mapear las entradas con las salidas

• #define O0 11• #define O1 10• #define O2 9• #define O3 6• #define O4 5• #define O5 3• #define I0 A0• #define I1 A1• #define I2 A2• #define I3 A3• #define I4 A4• #define I5 A5

Ejemplo 4

19

Page 20: Introducción a Arduino r2

http://SolEpcc.unex.es@mlinaje

Programación#define O0 11#define O1 10#define I0 A0#define I1 A1

int analogSensorValue1 = 0; int analogSensorValue2 = 0;

int analogOutputValue1 = 0; int analogOutputValue2 = 0;

int digitalOutputValue1 = LOW;

void setup() { Serial.begin(9600); pinMode(O0,OUTPUT); pinMode(O1,OUTPUT); pinMode(I0, INPUT); pinMode(I1,INPUT);}

void loop() {

analogSensorValue1 = analogRead(I0);

analogSensorValue2 = analogRead(I1);

analogOutputValue1 = map(analogSensorValue1, 0, 1023, 0, 255);

analogOutputValue2 = map(analogSensorValue2, 0, 1023, 0, 255);

analogWrite(O0, analogOutputValue1);

analogWrite(O1, analogOutputValue2);

Serial.print("sensor = " );

Serial.print(analogSensorValue1);

Serial.print("\t output = ");

Serial.println(analogOutputValue1);

delay(10);

}

Ejemplo 4

20


Recommended