TEMA 7: ROBÓTICA -PROGRAMACIÓN

Documentos relacionados
Entradas Analógicas.

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

Clase 4: Motores. Conviértete en un Joven Inventor PENTA UC

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

EL MICROCONTROLADOR ARDUINO

CONSTRUCCIÓN DE TIMER PARA VUELO CIRCULAR CON NANO ARDUINO

5.- ENTRADAS/SALIDAS DIGITALES

INTRODUCCIÓN DESCRIPCIÓN... 4 Características Hardware... 4

EJERCICIOS CON ARDUINO LED ENCENDIDO. Se conecta el Led al pin 52 y a alimentación. Compilar Se enciende el LED.

Actuadores eléctricos - Motores

PRÁCTICAS CON ARDUINO UNO

Sensor Analógico: Potenciómetro

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

Control por Computador. Manual de arduino. Jorge Pomares Baeza. Grupo de Innovación Educativa en Automática 2009 GITE IEA

EL POLIMETRO. CONCEPTOS BASICOS. MEDIDAS

Taller de electrónica para usos creativos. Practicando con Arduino

Instituto Tecnológico de Colima

Práctica 4. Entradas/Salidas Analógicas con Arduino

PROYECTO DE ELECTRÓNICA

CUADERNO DE VERANO TECNOLOGÍA, PROGRAMACIÓN Y ROBÓTICA 3ºESO

Tema: Introducción a la Plataforma Arduino

V 1.0. Ing. Juan C. Guarnizo B.

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo.

Encender un LED utilizando un pulsador (Ref libro 1 pg 82 pero como y pg 132 como 1.2.3)

MANUAL DE USUARIO Como utilizar un servo motor con Arduino REV. 1.0

TuBot 2014 GUIA DE MONTAJE Y PROGRAMACIÓN MOTORES. Dpto. de Electrónica - Universidad de Alcalá TuBot

ACTIVIDADES DE SCRATCH PARA ARDUINO (S4A) 3º ESO TECNOLOGÍAS

ABIERTO- ELECTRoNICA- PROTOTIPO- PLATAFORMA- QUE ES UN ARDUINO? ES UNA PLATAFORMA DE PROTOTIPADO ELECTRoNICA DE DISEnO ABIERTO. QUE SIGNIFICA ESTO?

Contenido Unidad de Robótica

Arduino. OPEN HARDWARE - David Cuartielles, Máximo Banti.

Robótica. Un robot...

QUÉ ES MBOT? Conectores RJ25

AUTOMATIZACIÓN - CURSO: Práctica 3: Automatización de una Puerta de Garaje mediante Arduino

INTERRUPTOR CREPUSCULAR CON LDR Y ARDUINO OBJETIVOS MATERIAL NECESARIO

Tutorial para principiantes: Cómo aprender a programar un Dreamster v1.0?

(El examen consta de 6 preguntas, todas ellas con la misma puntuación) CÓDIGO DE COLORES DE RESISTENCIAS

EJERCICIOS DE ARDUINO RESUELTOS

Introducción. Que es Arduino? 1. Por qué Arduino? 2. Asequible

VIII. CONTROL USANDO SIMULINK Y ARDUINO

EL ORDENADOR COMO DISPOSITIVO DE CONTROL

ACTIVIDADES CON S4A (SCRATCH PARA ARDUINO) A.1.-

Para comenzar realizaremos el ejercicio-ejemplo de poner a titilar un led.

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

Práctica de manejo de motores CC con arduino. Antonio Martínez

El objeto de este proyecto es el de construir un robot araña controlado por un PIC16F84A.

Sesión 3 (Práctica) Sensores Actuadores

MANUAL DE USUARIO Sensor de temperatura y humedad digital MCI-SEN REV. 1.0

CONTROLADORAS EDUCATIVAS. Por: Pedro Ruiz

Universidad de Costa Rica

1.- Conectando el zumbador a un pin PWM

EJERCICIOS DE ELECTRÓNICA RESISTENCIAS FIJAS

PRÁCTICAS DE ELECTRICIDAD Y ELECTRÓNICA CON CROCODILE. Lucía Defez Sánchez Profesora de la asignatura tecnología en la ESO

Especificaciones técnicas de los prototipos:

Electronica. Estudia los circuitos y componente que permiten modificar la corriente eléctrica: determinada velocidad (filtra)

Este manual aborda todos los conceptos básicos de Arduino y es una excelente guía para todo aquel que quiera iniciarse en este apasionante mundo.

COMO EMPEZAR... Proceso de conexión de la placa al ordenador:

ACTIVIDADES PROGRAMACIÓN CON ARDUINO

Clase 3: Sensores I. Conviértete en un Joven Inventor PENTA UC

Rastreador de Luz para Panel Solar y Sistema de Carga para Dispositivos USB

1.- INTRODUCCIÓN EL HARDWARE DE LA PLACA ARDUINO Alimentación Entradas y Salidas Comunicaciones...

Departamento de Tecnología Villargordo. Componentes del grupo Nº : CURSO

EducaBot. Sensores 2º parte.

Curso de Automatización y Robótica Aplicada con Arduino

Programa de Tecnologías Educativas Avanzadas. Bach. Pablo Sanabria Campos

Ardunio. Test Placa. LunikSoft. Fco. Javier Andrade.

Taller de Introducción a Arduino. Impartido por Abel Arellano y Omar Valencia. Duración: 5 sesiones de 4 horas del -- al --- Presentación:

Curso de introducción a la robótica. Juan Antonio Infantes Díaz Óscar Ramírez Jiménez

Descripción del sistema eléctrico CAN-BUS con pantallas táctiles.

PRÁCTICAS DE ELECTRÓNICA 4º E.S.O.

Ejercicios de ELECTRÓNICA ANALÓGICA

GUIÓN DE PRÁCTICAS Arduino San Valero

Raspberry Pi Expansion Board v1.01 Datasheet. Electroensaimada

Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA

Práctica 5 Diseño de circuitos con componentes básicos.

ELECTRONICA. (Problemas) Alumno: Curso: Año:

MANUAL DE USUARIO ESCLUSA Z14 VERSIÓN 6 ZEBRA ELECTRÓNICA.

Procedimiento para alambrar una Función

Montaje en placa protoboard de un circuito detector de oscuridad. 1) Nombre y apellidos: Curso y grupo: 2) Nombre y apellidos: Curso y grupo:

PRÁCTICAS CROCODILE CLIPS.

AUTOMATIZACIÓN INDUSTRIAL

KITS PARA INICIAR EN LA ROBÓTICA Y PROGRAMACIÓN EN SECUNDARIA

Grado de Óptica y Optometría Asignatura: FÍSICA Curso: Práctica nº 5. MEDIDAS DE RESISTENCIAS, VOLTAJES Y CORRIENTES: MULTÍMETRO

BLOQUE.- ELECTRICIDAD - GRUPO: 2º E.S.O. ALUMNO-A:

CONTROLADOR DE ALARMAS Y PROCESOS INDUSTRIALES POR MENSAJES SMS - CONTROLADOR CALDERAS BIOMASA BIO-ROBOTICA - FUNCIÓN DE TELEMANDO

Taller de Hardware Libre con Arduino

Especificaciones técnicas. Power, Inputs and Outputs. Operating Voltage Input Voltage (recommended) Input Voltage (limits) Analog Input Pins

EducaBot. Motores y movilidad.

SIMULACIÓN CON PROTEUS

SINTETIZADOR ANALÓGICO ELECTRÓNICO. TUTORIAL. TALLER DE ELECTRÓNICA BÁSICA.

Detección de luz con sensor LDR

Proyectos de Automatismo y seguridad Desarrollando tecnología en el salvador. Fabricación de tarjetas impresas para prototipos EPS1-30A-L

Fernando castaño Portela Ingeniero de soporte y Asesor técnico La Red Electrónica s.a.

SUPER CONTROLADOR DE SERVOS S310175

Como utilizar un servo motor con Arduino.

COMPONENTES ELECTRÓNICOS

MATLAB: Computación Física Práctica 3 Guión 4 Informática Aplicada a la Biología

PUERTAS LOGICAS. Objetivo específico Conectar los circuitos integrados CI TTL Comprobar el funcionamiento lógico del AND, OR, NOT, NAND y NOR

Guía de usuario de la Relay Control Shield v1.0

SISTEMA DE PROGRAMACIÓN

Conviértete en un Joven Inventor PENTA UC TAV Humano-Máquina

Transcripción:

1. Control de un robot: TEMA 7: ROBÓTICA -PROGRAMACIÓN Los robots se controlan mediante circuitos electrónicos analógicos y digitales, y programación mediante ordenador. La electrónica se divide en dos grupos: electrónica analógica y electrónica digital. En la electrónica analógica los valores de tensión e intensidad pueden tomar muchos valores, de forma que los sensores y receptores pueden comportarse de diferentes maneras (diferentes velocidades de un motor, sensor que detecta diferentes temperaturas, ). En la electrónica digital la información está codificada en forma binaria (0 y 1) y sólo hay dos valores de tensión: HIGH (5V, 1 binario, ON, pasa corriente) LOW (0V, 0 binario, OFF, no pasa corriente). En un robot los sensores toman información del exterior mediante circuitos electrónicos y la mandan a la tarjeta controladora. La tarjeta la procesa y manda las ordenes de actuar a los actuadores. La tarjeta tiene que ser previamente programada mediante el ordenador SENSORES: Sensor de luz,sensor de Tª, Pulsador,... ACTUADORES: MOTOR, Lámpara, Zumbador,... CIRCUITOS ELECTRÓNICOS TARJETA CONTROLADORA PROGRAMACIÓN ORDENADOR La tarjeta controladora o microcontrolador es un miniordenador o chip programable que lleva una memoria interna y en la que se pueden conectar los sensores y actuadores de nuestro robot. Este microcontrolador se programa mediante un ordenador a través de un software de programación. Nosotros utilizaremos la tarjeta controladora Arduino. PIN de tierra Reset Entradas y Salidas Digitales PIN 0-13 Salidas Analógicas PIN 3,5,6,9,10,11 Conector USB PIN 13 LED Microcontrolador Conector para alimentación externa 6-12 V PIN 3,3V PIN 5V PINES de alimentación PIN Vin PIN de tierra Entradas Analógicas PIN 0-5 1

Compilar Cargar a la placa Nuevo Abrir Guardar Abrir el monitor puerto serie TPR 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz Pines de alimentación: proporcionan la corriente continua necesaria para que funcionen los sensores y actuadores (motores,...) Pines de alimentación positiva a 3,3 o 5 V Pines de alimentación negativa o tierra o a 0 V. 14 pines para entradas/salidas digitales (pines del 0-13). Trabajan con valores binarios (1 ó 0): "1" corresponde a 5V (HIGH, ENCENDIDO) y "0" corresponde a 0V (LOW, APAGADO). Se puede ampliar 6 pines digitales más utilizando los pines de las entradas analógicas como digitales. Se prefiere no utilizar los pines 0 y 1, para no equivocarnos con los valores lógicos binarios 0 y 1 6 pines para entradas analógicas (pines A0-A5). Los pines de entrada analógica reciben información en forma de voltaje con valores que pueden ir desde 0 V hasta 5 V. Utilizan un convertidor analógico/digital que traduce los 0-5 V a valores de 0-1023. 6 pines para salidas analógicas (salidas PWM) Los pines 3, 5, 6, 9, 10 y 11 proporcionan una salida analógica y pueden tomar valores de 0 a 255 (cuando se les da la orden analogwrite). En otro caso serian entradas o salidas digitales. Cada pin puede proporcionar o recibir como máximo una corriente 40 ma, por lo que no pueden mover un motor de CC. Será necesario amplificar la corriente mediante un transistor. Es necesario conectar la placa mediante USB para cargar los programas. Después se puede desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 2. Entorno software Primero debemos seleccionar el tipo de dispositivo (Placa ó Board). Para ello pulsaremos en el menú "Herramientas" - "Placa" y seleccionaremos "Arduino Uno" (o el que hayamos adquirido). Seleccionaremos también el puerto serie asignado al controlador de Arduino (en nuestro caso COM3), para ello accederemos al menú "Herramientas" - "Puerto" - "COM3" Zona para escribir el código Zona de mensajes del software. Errores y acciones Verificar/Compilar. Chequea el código, identificando los errores. Cargar a la placa: Descarga el programa compilado desde el PC hasta la tarjeta arduino. Nuevo: crea un nuevo proyecto Abrir proyectos previamente guardados y también muestra los proyectos de ejemplos. Guarda el proyecto actual dentro de la carpeta Mis documentos /Arduino/sketchbook/. Se puede guardarlo con un nombre distinto mediante el menú Archivo Guardar como. Realiza el monitoreo del puerto serial, abre una pantalla y muestra o visualiza los datos enviados desde la tarjeta Arduino. 3. Estructura básica de un programa La estructura de programación de Arduino divide el programa en tres partes: definición de variables. setup y loop. 2

Lo primero será crear y definir las variables mediante el comando int. Tenemos que dar nombre a la variable e indicar el lugar o pin donde van. int ledverde = 7; (le damos el nombre ledverde y lo colocamos en el pin 7) Se prefiere no utilizar los pines 0 y 1, para no equivocarnos con los valores lógicos binarios 0 y 1 La función void setup() constituye la preparación del programa y aquí se configuran los pines digitales como de SALIDA o ENTRADA. usando la función pinmode y mediante la instrucción OUTPUT o INPUT. pinmode(ledverde, OUTPUT); (establece el led del pin7 como salida) También se escriben aquí las funciones qué solo se ejecutan una vez. OUTPUT La placa les manda la información para que funcionen RECEPTORES: - Diodos LED - Bombillas - Zumbadores - Motores INPUT Introducen información en la placa ELEMENTOS DE CONTROL Y SENSORES: - Pulsadores - Sensor de luz LDR - Sensor de Infrarrojos - Sensor de Temperatura - Sensor de Humedad - Sensor de Llama La función void loop() es la parte donde escribimos el programa o conjunto de instrucciones, que se ejecutarán en forma de bucle (se ejecuta continuamente). 1ª 2ª 3ª int ledverde = 12; //Pin donde va el led void setup() pinmode(ledverde, OUTPUT);//Establece 'pin 12' como salida void loop() digitalwrite(ledverde, HIGH); // Enciende el led delay(1000); // Pausa un segundo digitalwrite(ledverde, LOW); // Apaga el led delay(1000); // Pausa un segundo Marcas de puntuación: Las llaves. Se usan para indicar el principio y final de un grupo de instrucciones. Todas las instrucciones del void setup y todas las instrucciones del void loop se escriben entre llaves. Los paréntesis ( ) se utilizan para escribir los datos dentro de cada instrucción. Cada instrucción debe acabar con ; Los comentarios se indican con //. Se pueden introducir bloques de comentarios con //.... Los comentarios no son obligatorios y se utilizan para explicar los programas. 4. Datos, variables y funciones HIGH. Define el valor de entrada o salida del pin como ON (5 V o 1 en binario) LOW. Define el valor de entrada o salida del pin como OFF (0 V o 0 en binario) Función pinmode (pin, mode) Función usada dentro de la función setup() para configurar como un pin debe comportarse, como entrada de información o salida de información a la placa Arduino (INPUT o OUTPUT).); Ej. pinmode(ledpin, OUTPUT); // configura el ledpin como de salida. INPUT. Se utiliza en la función pinmode() para definir la función del pin digital usado como entrada de datos (ej: pulsadores, sensores) 3

OUTPUT. Se utiliza en la función pinmode() para definir la función del pin digital usado como salida de datos (ej: leds, motores) Ej. pinmode(ledpin, OUTPUT); Funcion digitalwrite (nombre o pin, valor) Introduce un valor (HIGH) o (LOW) en el pin digital especificado.. Ej. digitalwrite (ledpin, HIGH); Función digitalread (nombre o pin) Lee el valor desde un pin digital específico. Devuelve un valor HIGH o LOW. El valor leído debemos almacenarlo en una variable, para después poder utilizarlo Ej. v = digitalread(ledpin); Función analogwrite (nombre o pin, valor) Escribe un valor analógico en un pin de salida marcado como PWM. Esta función está activa para los pines 3, 5, 6, 9, 10, 11. Ej analogwrite (pin, 110); // escribe el valor '110' en el 'pin' analógico. Puede especificarse un valor de 0-255. Un valor 0 genera 0 V en el pin especificado y 255 genera 5 V. Función analogread (nombre o pin) Lee el valor desde el pin analógico especificado. Esta función solo funciona en los pines analógicos (A0-A5). El valor resultante es un número entero de 0 a 1023. Los pines analógicos, a diferencia de los digitales no necesitan declararse previamente como INPUT o OUTPUT. delay (ms). Realiza una pausa en el programa antes de realizar la siguiente instrucción. La cantidad de tiempo va en milisegundos Ej delay(5000); // Pausa 5 segundos if (condición SI): Comprueba si una condición se cumple. La función se escribe entre llaves if (x > 120) digitalwrite (ledpin, HIGH); Puede utilizarse con uno o más operadores de comparación: Para unir varias condiciones utilizamos los operadores lógicos Y / O / NO if else: SI..SINO == igual que!= diferente que < menor que > mayor que <= menor o igual que >= mayor o igual que ++ incremento de 1 -- decremento de 1 && Y lógico Ej :if (x > 0 && y < 5) O lógico Ej :if (x > 0 y > 0) if (x > 120) digitalwrite (ledpin, HIGH); else digitalwrite (ledpin, LOW); Podemos anidar varias sentencias if else, siendo todas ellas, a su vez, mutuamente excluyentes: if (x <= 0) delay(100); //se ejecuta con x<0 else if (x < 100) delay(250); //se ejecuta con 0< x>100 else if (x <= 200) delay(500); //se ejecuta con 100< x>200 else delay(1000); //se ejecuta con x>200 for (DURANTE): Repite un bloque encerrado entre llaves. permite indicar el número de iteraciones o repeticiones Lleva 3 comandos: for ( declara la variable y la inicia ; condición ; incremento) for (int i = 0; i <= 255; i ++) Cada vez que se va a repetir el bucle, se revisa la condición, si es cierta, el bloque de funciones se ejecuta (en este caso, se suma), y la condición vuelve a ser comprobada de nuevo. Si la condición es falsa, el bucle termina for (int i = 0; i <= 255; i++) analogwrite (ledpinpwm3, i); delay(10); 4

// Enciende el led de forma progresiva a intervalos de 10 milisegundos while (MIENTRAS): Se ejecuta continuamente hasta que la expresión de dentro del paréntesis pasa a ser falsa. var = 0; while (var < 200) var++; // Hacer algo repetitivo 200 veces break (ROMPER): Es usado para salir de los bucles do, for, o while, pasando por alto la condición normal del bucle. for (i = 0; i < 10; i++) Console.WriteLine("valor de i: 0", i); if (i > 4) break; 5. Conexión de receptores Debemos conectar la línea roja de positivo de la placa board al pin de 5V de Arduino y la línea azul de negativo al pin de Arduino Diodo LED El LED debe llevar una resistencia de protección de 100 a 220 Ω. El cátodo o patilla corta debe ir a negativo La corriente (terminal positivo) se la proporciona el pin de Arduino Zumbador: debe llevar una resistencia de protección de 100 Ω. Motor Los pines de arduino no proporcionan suficiente corriente para mover el motor, por lo que es necesario amplificar esta corriente con un transistor (protegeremos la base con una resistencia de 1K) B C E 5

Servomotores Los servomotores son motores de CC que pueden girar entre 0 y 180º normalmente. También existen servomotores que giran 360º de forma continua Llevan tres cables: - alimentación a + ó 5V (rojo), - o negativo (que puede ser negro o marrón) - OUT o control (que puede ser blanco o naranja o amarillo) y se conecta a un pin digital de Arduino. Si necesitamos más intensidad para mover el servo podemos alimentarlo desde una fuente de tensión externa (una batería o fuente de alimentación) a una tensión de 5V-6.5V. 6. Conexión de sensores y elementos de control Todos los sensores y elementos de control deben conectarse a 5V ó + y a GNO ó -., para que les pase corriente. La información de si está activo o no (pasa o no pasa corriente), la mandamos al pin de Arduino correspondiente. Pulsador Minipulsador de 4 patas La conexión del pulsador debe hacerse conectando solo 2 patas en diagonal o 2 patas en horizontal 6

El pulsador debe llevar una resistencia de 10 K antes de llegar a negativo o Sensores de proximidad PIR (infrarrojos) El led azul de IR emite luz y cuando choca con algo, la luz rebota y el fototransistor negro o blanco la recibe y se activa (HIGH), permitiendo que a través de él pase corriente El sensor de IR no necesita resistencia de protección. Lleva 3 patillas: Vcc se conecta a 5V, se conecta a tierra y OUT es la patilla que irá al pin de arduino que transmita la señal. El sensor formado por led IR y fototransistor deben llevar resistencias de protección de 100Ω y 10 K respectivamente antes de llegar a. V cc, + OUT V cc, + V cc, + Vcc OUT Pin Arduino Pin Arduino Sensor de luz LDR Es un sensor analógico que nos permite detectar diferentes estados de luz a través de las entradas analógicas de nuestro Arduino (pines A0-A5). Da valores que van desde 0 hasta 1023. El sensor LDR debe llevar resistencia de protección de 1KΩ antes de llegar a. 7

7. Ejercicios 1.- Encender un led de forma intermitente int ledrojo = 7; // LED que se conecta al pin 7 void setup() pinmode(ledrojo, OUTPUT); 1.b.- Añade un zumbador que suene de forma intermitente a la vez que el led 2.- Encendido secuencial de 3 leds y un motor: // El p1n 7 será una salida digital void loop() digitalwrite(ledrojo, HIGH); // Enciende el LED delay(1000); // Pausa de 1 segundo digitalwrite(ledrojo, LOW); // Apaga el LED delay(500); // Pausa de 0,5 segundo Encender 3 leds (V, R y A) de forma secuencial (primero un led rojo 2 segundos, luego el led amarillo 2 segundos y luego se enciende el led verde y gira el motor durante 4 segundos. Se apagan los 3 leds y el motor y el programa vuelve a comenzar RECUERDA: Los pines de arduino no proporcionan suficiente corriente para mover el motor, por lo que es necesario amplificar esta corriente con un transistor (protegeremos la base con una resistencia de 1K) 3.- Encendido de un zumbador durante 5 segundos al accionar un pulsador Al introducir información a través de pulsadores o sensores, debemos crear una variable valorsensor que almacene el valor digital (0,1) en el que se encuentra el sensor. Esta variable se inicia en el valor digital 0 (el valor 0 no es un pin de Arduino). int zumbador = 4; // ZUMBADOR que se conecta al pin 4 int pulsador = 2; // PULSADOR que se conecta al pin 2 int valorpulsador = 0; // creamos una variable valorpulsador para almacenar el valor 0,1 del pulsador y la iniciamos con valor cero void setup() pinmode(zumbador, OUTPUT); // El p1n 4 será una salida digital pinmode(pulsador, INPUT); // El p1n 2 será una entrada digital void loop() valorpulsador=digitalread (pulsador); // definimos la variable valorpulsador if (valorpulsador == HIGH) // Si se activa el pulsador digitalwrite (zumbador, HIGH); // suena el zumbador delay(5000); durante 5 segundos digitalwrite(lzumbador, LOW); // Apaga el zumbador 3.b.- Añade un led que luzca de forma intermitente cuando suena el zumbador. 8

4.- Sensores de proximidad PIR (infrarrojos) Encender un motor durante 4 segundos cuando un sensor detecte algo cerca. int ir = 2; int motor = 8; int irvalor =0; void setup() pinmode(motor, OUTPUT); pinmode (ir, INPUT); void loop() irvalor= digitalread (ir); if (irvalor == HIGH) digitalwrite(motor, HIGH); delay(4000); else digitalwrite(lmotor, LOW); 4.b.- Añade un led rojo que luzca cuando no detecte algo y se apague al detectar una presencia 5.-Sensor de luz LDR 5.a.- Encender un led cuando sea de noche o tengamos oscuridad. Debemos conectar el sensor en los pines de entrada analógicos (A0-A5). Para saber el valor de luz que detecta la LDR debemos abrir el monitor serie y luego dar la orden de imprimir el valor para poder verlo. int ledv= 2; int sensorldr= A5; int valorldr=0; EJEMPLO void setup() pinmode (ledv, OUTPUT); pinmode (sensorldr, INPUT); Serial.begin (9600); //inicia comunicación por el puerto serial void loop() valorldr = analogread (sensorldr); Serial.println (valorldr); //escribe la luz medida por el sensor en el monitor serie delay (500); //tiempo para la siguiente medición 5.b.- Encender 3 leds diferentes (verde, rojo y amarillo) según las condiciones de luz (oscuridad, luz natural y linterna) 9

6.-Movimiento de los motores de tu coche-robot con los sensores de luz o sensores de IR Diseña el programa que mueva los motores de tu coche-robot y móntalo en tu proyecto. Incluye leds que indiquen qué motor está girando. 7.- Cambio de giro del motor mediante chip L293D (puente de diodos) Es un chip que podemos usar para gobernar simultáneamente dos motores CC (cambio de giro y control de velocidad). Pin 16: Vss = 5V con los que alimentamos el chip Pin 8: Vin = tensión para alimentar el motor Pines del 1 al 7: control del motor 1 Pin 1: activa el uso del motor 1 Pines 2 y 7: pines de control del giro del motor 1, van conectados a Arduino Pines 3 y 6: son los pines que se conectan al motor 1 Pines 4 y 5: van a Pines del 9 al 15: control del motor 2 Pin 1: activa el uso del motor 2 Pines 10 y 15: pines de control del giro del motor 1, van conectados a Arduino Pines 11 y 14: son los pines que se conectan al motor 1 Pines 12 y 13: van a TABLA DE CONEXIÓN DE PINES PIN L293D PIN Motor1 Motor2 ARDUINO DESCRIPCIÓN 1 9 + 5V Enable 2 10 2 / 10 INPUT 1 3 11 Motor1 / Motor2 4,5 12.13 6 14 Motor1 / Motor2 7 15 7 / 13 INPUT 2 8 16 +5V ó Vin Alimentación del motor 1 y 2 TABLA DE CONTROL DEL MOTOR 1 Pin 2 Pin 7 MOTOR1 HIGH LOW GIRO HORARIO LOW HIGH GIRO ANTIHORARIO HIGH HIGH STOP LOW LOW STOP 10

APERTURA Y CIERRE PUERTA CON DETECTOR IR int ir = 4; int MD1 = 2; int MI1 = 7; int irvalor =0; void setup() pinmode(md1, OUTPUT); pinmode(mi1, OUTPUT); pinmode (ir, INPUT); void loop() irvalor= digitalread (ir); if (irvalor == HIGH) digitalwrite(md1, HIGH); digitalwrite(mi1, LOW); delay(5000); digitalwrite(md1, LOW); digitalwrite(mi1, HIGH); delay(5000); else digitalwrite(md1, LOW); digitalwrite(mi1, LOW); 7.b.- Haz que la puerta esté parada 3 segundos antes de que se cierre 7.c.- Añade un led amarillo que luzca cuando el motor gira, otro led verde que luzca cuando la puerta esté abierta y un led rojo que luzca cuando la puerta esté cerrada. 8.- Mover un servomotor al detectar proximidad con un sensor de IR Cuando programamos con arduino debemos incluir una librería llamada servo.h. Y creamos un objeto Servo con el nombre que queramos dar a nuestro motor. #include <Servo.h> //incluye una libreria para mover servos Servo motor1; //crea un objeto Servo llamado motor1 int ir = 2; //coloca el sensor ir en el pin 2 int valorir=0; // crea la variable valorir y la inicia en 0 void setup() motor1.attach(8); //coloca el servo en el pin 8 pinmode(ir, INPUT); //define el pin del sensor ir como de entrada void loop() valorir = digitalread (ir); if (valorir == HIGH) 0º 90º 180º motor1.write(180); //el motor gira 180º en un sentido delay(2000); else 11

motor1.write(0); //el motor gira -180º y se coloca en la posición inicial 8.b.- Cambia el programa para que el motor gire 90º y mientras luzca un led verde. Pare el motor durante 4 segundos y mientras luzca el led rojo. Después el motor regrese a su posición inicial mientras luce el led amarillo. 9.- Mover un servomotor continuo al presionar un pulsador Los servomotores continuos son motores de CC que giran continuamente y a los que podemos regular la velocidad. Llevan tres cables:. El ángulo de giro que programamos nos define el sentido de giro y la velocidad (0-180º ). 0 90 180 Motor parado (Hay casos en que hay que ajustar este valor, ej.100) Giro en un sentido a máxima velocidad Giro en un sentido disminuyendo la velocidad al aumentar el número 0-89 91-180 Giro en el otro sentido a máxima velocidad Giro en el otro sentido aumentando la velocidad al aumentar el número #include <Servo.h> //incluye una libreria para mover servos Servo motor1; //crea un objeto Servo llamado motor1 int pulsador = 2; //coloca el pulsador en el pin 2 int valorpulsador=0; // crea la variable valorpulsador y la inicia en 0 void setup() motor1.attach(8); //coloca el servo en el pin 8 pinmode(pulsador, INPUT); //define el pin del pulsador como de entrada void loop() valorpulsador = digitalread (pulsador); if (valorpulsador == HIGH) motor1.write(180); //el motor gira a velocidad máx en un sentido 5s delay(5000); motor1.write(90); //el motor para 2s delay(2000); motor1.write(0); //el motor gira a velocidad máx en el otro sentido 5s delay(5000); else motor1.write(100); //el motor para 9.b.- Cambia el programa para que el motor gire 3 s a velocidad máxima. Luego gire otros 3 s a velocidad lenta. Pare 2 s. Cambie el sentido de giro y gire a velocidad lenta durante 3 s. Luego gire 3 s a velocidad máxima. Y pare el motor. 12