arduino jd

73

Upload: carlos-sosa

Post on 12-Dec-2015

252 views

Category:

Documents


8 download

DESCRIPTION

Arduino

TRANSCRIPT

Page 1: Arduino JD
Page 2: Arduino JD

Partes del arduino

Page 3: Arduino JD

LEDS en Arduino

Page 4: Arduino JD

Estructura• La estructura básica del lenguaje de programación Arduino es bastante

simple y se organiza• en al menos dos partes o funciones que encierran bloques de

declaraciones.• void setup()• {• statements;• }• void loop()• {• statements;• }• Ambas funciones son requeridas para que el programa funcione.

Page 5: Arduino JD

setup()La función setup debería contener la declaración de cualquier variable al comienzo del programa.Es la primera función a ejecutar en el programa, es ejecutada una vez y es usada para asignarpinMode o inicializar las comunicaciones serie.

loop()La función loop se ejecuta a continuación e incluye el código que se ejecuta contínuamente -leyendo entradas, activando salidas, etc. Esta función es el núcleo de todos los programas Arduinoy hace la mayor parte del trabajo.

Page 6: Arduino JD

Tipos de variablesbyteByte almacena un valor numérico de 8 bits sin puntos decimales. Tienen un rango de 0 a 255.byte someVariable = 180; //declara 'someVariable' como un tipo byte

intEnteros son los tipos de datos primarios para almacenamiento de números sin puntos decimalesy almacenan un valor de 16 bits con un rango de -32,768 a 32,767.int someVariable = 1500; //declara 'someVariable' como tipo int

longTipo de datos de tamaño extendido para enteros largos, sin puntos decimales, almacenados enun valor de 32 bits con un rango de -2,146,483,648 a 2,147,483,647.long someVariable = 90000; //declara 'someVariable' como tipo long

floatUn tipo de datos para números en punto otante, o números que tienen un punto decimal. Losnúmeros en punto otante tienen mayor resolución que los enteros y se almacenan como valor de32 bits con un rango de -3.4028235E+38 a 3.4028235E+38.float someVariable = 3.14; //declara 'someVariable' como tipo float

Page 7: Arduino JD

Operadores aritméticos

• Los operadores aritméticos incluyen suma, resta, multiplicación y división. Retornan la suma, diferencia, producto o cociente (respectivamente).

• y = y+3;• x = x-7;• i = j*6;• r = r/5;

Page 8: Arduino JD

Asignaciones compuestas

Las asignaciones compuestas combinan una operación aritmética con una asignación de variable.

x++; //lo mismo que x = x+1x--; //lo mismo que x = x-1

x += y; //lo mismo que x = x+yx -= y; //lo mismo que x = x-yx *= y; //lo mismo que x = x*yx /= y; //lo mismo que x = x/y

Page 9: Arduino JD

operadores de comparación

• x == y; //x es igual a y• x != y; //x no es igual a y• x < y; //x es menor que y• x > y; //x es mayor que y• x <= y; //x es menor o igual que y• x >= y; //x es mayor o igual que y

Page 10: Arduino JD

operadores lógicos

AND lógico:if(x>0 && x<5) //verdadero sólo si las dos expresiones son ciertas

OR lógico:if(x>0 || y>0) //verdadero si al menos una expresión es cierta

NOT lógico:if(!(x>0)) //verdadero sólo si la expresión es falsa

Page 11: Arduino JD

Entradas y Salidas

Page 12: Arduino JD

ENTORNO DE PROGRAMACIÓN

Page 13: Arduino JD

1.Seleccionar tarjeta

Page 14: Arduino JD

2.Seleccionar Puerto serial

Page 15: Arduino JD

3.Escribir el código

Page 16: Arduino JD

4. Compilar

Page 17: Arduino JD

5.Cargar el programa

Page 18: Arduino JD

LED

Page 19: Arduino JD

Secuencia de luces

Page 20: Arduino JD

LED - RGB

Page 21: Arduino JD

RGB

Page 22: Arduino JD

LDR

• Un fotorresistor o resistencia dependiente de la luz ( LDR ) o fotocélula es una resistencia cuya resistencia disminuye con el aumento de intensidad de luz incidente, para su conexión se necesita realizar un divisor de voltaje

Page 23: Arduino JD

LDR

Page 24: Arduino JD

const int led=11;const int LDR=A0;int valor;

void setup() {Serial.begin(9600pinMode(led,OUTPUT);}

void loop(){valor=analogRead(LDR);analogWrite(led,valor);

Serial.println(' '); Serial.println(valor);

delay(500);}

Page 25: Arduino JD

Relé

Page 26: Arduino JD
Page 27: Arduino JD
Page 28: Arduino JD

Servo Motor

Page 29: Arduino JD
Page 30: Arduino JD

Servo Motor

Page 31: Arduino JD

#include <Servo.h>Servo miServo;const int pulso=A0; const int motor=22;float angulo=0;

void setup(){Serial.begin(9600);miServo.attach(13,500,2500);

}

void loop(){ angulo= analogRead(pulso)/5.69; miServo.write(angulo); Serial.println(angulo); delay(500); }

Page 32: Arduino JD

Control de velocidad de un motor DC-PWM

Page 33: Arduino JD

Funciones para LCD

• millis(); //nos da como resultado el tiempo transcurrido en milisegundos.

// PINES RS,E,D4,D5,D6,D7 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

• lcd.begin(16, 2); //INICIALIZA LCD 16X2 • lcd.setCursor(0, 0); //COLUMNA1,FILA1 • lcd.print("Arduino"); //Imprime en la pantalla• lcd.noDisplay(); // APAGA LCD • lcd.display(); // Enciende el LCD• lcd.clear(); //Limpia la pantalla• lcd.autoscroll(); // desplaza todo la pantalla hacia la izquierda

Page 34: Arduino JD

Pantalla LCD

Page 35: Arduino JD
Page 36: Arduino JD
Page 37: Arduino JD
Page 38: Arduino JD

Datos seriales

Page 39: Arduino JD

Diseño de caracteres// include the library code: #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); byte feliz[8] = { 0b00000, 0b00000, 0b01010, 0b00000, 0b00000, 0b10001, 0b01110,

0b00000 }; byte triste[8] = { 0b00000, 0b00000, 0b01010, 0b00000, 0b00000, 0b00000, 0b01110, 0b10001 };

Page 40: Arduino JD

void setup() {

lcd.createChar(1, feliz); lcd.createChar(2, triste); lcd.begin(16, 2); lcd.print("Arduino");

}

void loop() {

lcd.setCursor(4, 1); lcd.write(1); delay(2000); lcd.setCursor(4, 1); lcd.write(2); delay(2000); }

Page 41: Arduino JD

Teclado matricial

Page 42: Arduino JD

Teclado Matricial#include <Keypad.h>// usar este codigoconst byte filas = 4;const byte columnas = 4;char teclas[filas][columnas]={ {'0','1','2','3'}, {'4','5','6','7'}, {'8','9','A','B'}, {'C','D','E','F'}};byte pinFilas[filas]={30,32,34,36};byte pinColumnas[columnas]={22,24,26,28};Keypad teclado=Keypad(makeKeymap(teclas),pinFilas,pinColumnas,filas,columnas);

// usar hasta aquichar tecla;

void setup(){Serial.begin(9600);}

void loop(){tecla=teclado.getKey();if(tecla!=NO_KEY){ Serial.println(tecla); Serial.println(" "); Serial.println(tecla-48); }}

Page 43: Arduino JD

Sensor CNY70

• Azul Emisor– Señal infrarroja

• Rojo Receptor– Reflejo de superficie

CNY

70

Page 44: Arduino JD

Conexión

• El CNY70 devuelve por la pata de salida correspondiente, según el montaje, un voltaje relacionado con la cantidad de rayo reflectado por el objeto. Para el montaje A, se leerá del emisor un '1' cuando se refleje luz y un '0' cuando no se refleje. Para el montaje B los valores se leen del colector, y son los contrarios al montaje A.

Page 45: Arduino JD

Aplicaciones

• Seguidor de línea:– Con lectura digital 1 ó 0

• Identificador de colores:– Con lectura análoga 0 a 1023

Recomendación: Usar las superficies de incidencia muy cerca del sensor para mejor toma de datos.

Page 46: Arduino JD
Page 47: Arduino JD
Page 48: Arduino JD

SENSOR HC-SR04 • Características técnicas:• Los módulos incluyen transmisores ultrasónicos, el receptor y el circuito de control.• Número de pines:

– o VCC: Alimentación +5V (4.5V min – 5.5V max)– o TRIG: Trigger entrada (input) del sensor – o ECHO: Echo salida (output) del Sensor – o GND

• Corriente de reposo: < 2mA• Corriente de trabajo: 15mA• Ángulo de medición: 30º• Ángulo de medición efectivo: < 15º• Detección de 2cm a 400cm o 1" a 13 pies • (Sirve a más de 4m, pero el fabricante no garantiza una buena medición).• “Resolución” La precisión puede variar entre los 3mm o 0.3cm.

• Dimensiones: 45mm x 20mm x 15mm

• Frecuencia de trabajo: 40KHz

Page 49: Arduino JD

Funcionamiento

• Enviar un Pulso "1" de al menos de 10uS por el Pin Trigger (Disparador). El sensor enviará 8 Pulsos de 40KHz (Ultrasonido) y coloca su salida Echo a alto (seteo), se debe detectar este evento e iniciar un conteo de tiempo. La salida Echo se mantendrá en alto hasta recibir el eco reflejado por el obstáculo a lo cual el sensor pondrá su pin Echo a bajo, es decir, terminar de contar el tiempo. Se recomienda dar un tiempo de aproximadamente 50ms de espera después de terminar la cuenta. La distancia es proporcional a la duración del pulso y puedes calcularla

Page 50: Arduino JD

pulseIn()

• Sintaxis • pulseIn (pin, valor)

pulseIn (pin, valor de tiempo de espera) • Parámetros • pin: el número del pin en el que desea leer el pulso. (Int) • valor: tipo de impulso a leer: o ALTA o BAJA . (Int) • Tiempo de espera (opcional): el número de

microsegundos que esperar a que el pulso para empezar; por defecto es de un segundo (unsigned long)

Page 51: Arduino JD

Código

Page 52: Arduino JD
Page 53: Arduino JD

Conexión

Page 54: Arduino JD

MODULO BLUETOOTH HC-06

• Voltaje de alimentación: 3.3VDC – 6VDC.

• Voltaje de operación: 3.3VDC.

• Baud rate ajustable: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.

• Tamaño: 1.73 in x 0.63 in x 0.28 in

(4.4 cm x 1.6 cm x 0.7 cm)

Page 55: Arduino JD

HC-06

Page 56: Arduino JD

Código

Page 57: Arduino JD

App inventor 2 - Android• http://ai2.appinventor.mit.edu/

• Cuenta de Google.• Programación de bloques.• Software libre.

Page 58: Arduino JD

Entorno App inventor 2

Page 59: Arduino JD

Barras

Page 60: Arduino JD

Matlab - Arduino

Para versiones superiores a la 2010a del MATLAB

Page 61: Arduino JD

En arduino

• Conectar la placa ARDUINO a través del cable USB.

• Verificar por cual “COM” quedo conectado. Nos dirijimos a Inicio>Equipo “Click derecho” >Administrar>Administrador de dispositivos>Puertos>Arduino Mega 2560, al lado derecho de “Arduino Mega 2560” sale el COMX, siendo X un nuevo entre 0 y 6 usualmente.

• Dentro del ARDUINO ir a Herramientas>Tarjeta y elegir la “placa ARDUINO MEGA 2560”

• Dentro del Arduino: Archivo>Abrir… Buscamos dentro de los archivos descargados en la siguiente dirección: ArduinoIO>pde>adiosrv>adiosrv.pde

• Teniendo el adiosrv abierto le damos a “cargar” y esperamos hasta que diga “Carga terminada.”

• Cerramos el “ARDUINO” para dejar de tener el puerto ocupado, así poder establecer ahora la conexión a través del MATLAB.

Page 62: Arduino JD

En matlab

• Se abre como administrador el MATLAB, MATLAB >„Click dereho‟>Ejecutar como administrador.

• El directorio “Current Folder” lo ubicamos dentro de la carpeta ArduinoIO.

• Procedemos a realizar la instalación adecuada insertando los comandos:

• Digitamos “install_arduino” (sin comillas).

• Ahora digitamos “a=arduino('COMX')” (sin comillas). Donde X es el puerto usado por el arduino

Page 63: Arduino JD

LM35 – Sensor de Temperatura

Page 64: Arduino JD

L293D – Puente H

Page 65: Arduino JD

Sentido del motor

Page 66: Arduino JD

Control de velocidad con Puente H

Page 67: Arduino JD
Page 68: Arduino JD
Page 69: Arduino JD
Page 70: Arduino JD

Códigoint pin2=9; //Entrada 2 del L293Dint pin7=10; //Entrada 7 del L293Dint pote=A0; //Potenciómetro int valorpote; //Variable que recoge el valor del

potenciómetroint pwm1; //Variable del PWM 1int pwm2; //Variable del PWM 2 void setup(){ pinMode(pin2,OUTPUT); pinMode(pin7, OUTPUT);} void loop(){ //Almacenamos el valor del potenciómetro en la variable valorpote=analogRead(pote);

//Como la entrada analógica del Arduino es de 10 bits, el rango va de 0 a 1023. //En cambio, la salidas del Arduio son de 8 bits, quiere decir, rango entre 0 a 255. //Por esta razón tenemos que mapear el número de un rango a otro usando este código. pwm1 = map(valorpote, 0, 1023, 0, 255); pwm2 = map(valorpote, 0, 1023, 255, 0); //El PWM 2 esta invertido respecto al PWM 1 //Sacamos el PWM de las dos salidas usando analogWrite(pin,valor)

analogWrite(pin2,pwm1); analogWrite(pin7,pwm2);}

Page 71: Arduino JD

TSL235F

Page 72: Arduino JD
Page 73: Arduino JD