tema 6: robÓtica -programaciÓn · desconectar el usb y alimentar la placa mediante una pila o...

12
Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz 1 TEMA 6: ROBÓTICA -PROGRAMACIÓN La robótica es la rama de la tecnología que se dedica al diseño y construcción de robots, Un robot es una máquina formada por sensores y actuadores controlados por un ordenador y programada para moverse y realizar diferentes tareas. 1. Partes de un robot: Estructura: es el cuerpo o carcasa del robot donde se alojan sus componentes. Actuadores: motores y mecanismos, para el movimiento del robot. Sensores: son los sentidos del robot. Capturan la información acerca del mundo que rodea al robot. Son circuitos electrónicos que detectan la posición, velocidad, temperatura, luz, etc. Sistemas de control: son placas o tarjetas controladoras que se programan (software) para que tomen las decisiones de actuación del robot. 2. Control de un robot: Los robots se controlan mediante circuitos electrónicos analógicos y digitales, y programación mediante ordenador. 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,... TARJETA CONTROLADORA ORDENADOR ACTUADORES: MOTOR, Lámpara, Zumbador,... CIRCUITOS ELECTRÓNICOS PROGRAMACIÓN Control Sensor Actuador Sensor

Upload: dangliem

Post on 28-Oct-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

1

TEMA 6: ROBÓTICA -PROGRAMACIÓN

La robótica es la rama de la tecnología que se dedica al diseño y construcción de robots,

Un robot es una máquina formada por sensores y actuadores controlados por un ordenador y programada para moverse y realizar diferentes tareas.

1. Partes de un robot:

Estructura: es el cuerpo o carcasa del robot donde se

alojan sus componentes. Actuadores: motores y mecanismos, para el

movimiento del robot. Sensores: son los sentidos del robot. Capturan la

información acerca del mundo que rodea al robot. Son circuitos electrónicos que detectan la posición, velocidad, temperatura, luz, etc.

Sistemas de control: son placas o tarjetas controladoras que se programan (software) para que tomen las decisiones de actuación del robot.

2. Control de un robot:

Los robots se controlan mediante circuitos electrónicos analógicos y digitales, y programación mediante ordenador.

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,...

TARJETA CONTROLADORA

ORDENADOR

ACTUADORES:

MOTOR, Lámpara, Zumbador,...

CIRCUITOS ELECTRÓNICOS

PROGRAMACIÓN

Control

Sensor

Actuador

Sensor

Page 2: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

2

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.

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 GND 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.

3. 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"

Entradas y Salidas Digitales PIN 0-13

Reset

Conector USB

PIN 13 LED

Conector para alimentación

externa 6-12 V

Entradas Analógicas PIN 0-5

Microcontrolador

PIN V in PIN 5V

PIN 3,3V

PIN de tierra GND

PINES de alimentación

PIN de tierra GND Salidas Analógicas PIN 3,5,6,9,10,11

Page 3: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

3

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.

4. 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.

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

INPUT Introducen información en la placa

RECEPTORES: - Diodos LED - Bombillas - Zumbadores - Motores

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 los programas que se ejecutan en forma de bucle (se ejecuta continuamente).

int ledverde = 12; //Pin donde va el led

void setup()

Co

mp

ilar

Carg

ar

a la p

lac

a

Nu

evo

Ab

rir

Gu

ard

ar

Zona para escribir el código

Zona de mensajes del software. Errores y acciones

Ab

rir

el m

on

ito

r p

uert

o s

eri

e

Page 4: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

4

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 una función. Los paréntesis ( ) se utilizan para escribir funciones dentro de nuestros programas. 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.

5. 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) 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);

Función digitalRead(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. digitalRead (ledPin);

Funcion digitalWrite(pin, valor) Introduce un valor (HIGH) o (LOW) en el pin digital especificado..

Ej. digitalWrite (ledPin, HIGH);

Función analogRead(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.

Ej. analogRead (sensorLDR);

Función analogWrite(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 (ledPin, 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.

delay(ms). Realiza una pausa en el programa 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 (sensorLDR > 120) digitalWrite (ledPin, HIGH);

Puede utilizarse con uno o más operadores de comparación:

Page 5: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

5

Para unir varias condiciones utilizamos los operadores lógicos Y / O / NO

if…else: SI…..SINO if (sensorLDR > 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

6. 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 GND de Arduino

Diodo LED

Zumbador: debe llevar una resistencia de

protección de 100 Ω.

Motor

== 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)

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

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

Page 6: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

6

Servomotores

7. 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 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.

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),

- GND 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.

El pulsador debe llevar una resistencia de 10 K antes de llegar a negativo o GND

La conexión del pulsador debe hacerse conectando solo 2 patas en diagonal

El sensor LDR debe llevar resistencia de protección de 1KΩ antes de llegar a GND.

Page 7: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

Tecnología 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

7

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

8. Ejercicios

1.- Encender un led de forma intermitente

1.b.- Cambia el tiempo de intermitencia a medio minuto y añade un zumbador que suene de

forma intermitente a la vez que el led

2.- Encendido secuencial de 3 leds:

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 durante 4 segundos), se apagan los 3 leds y el programa vuelve a comenzar

2.b.- Añade un motor que se encienda a la vez que el led verde y deje de funcionar cuando se apagan los leds.

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 ledrojo = 7; // LED que se conecta al pin 7

void setup()

pinMode(ledrojo, OUTPUT); // 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(1000); // Pausa de 1 segundo

Pin Arduino

GND

Vcc GND

OUT

GND

Pin Arduino

El sensor formado por led IR y fototransistor

deben llevar resistencias de protección de 100Ω y 10 K respectivamente antes de llegar a GND.

Vcc, + GND

GND Vcc, +

El sensor de IR no necesita resistencia de protección. Lleva 3 patillas: Vcc se conecta a

5V, GND se conecta a tierra y OUT es la patilla que irá al pin de arduino que transmita la señal.

Vcc, + OUT GND

Page 8: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

TPR 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

8

3.b.- Añade un led que luzca de forma intermitente cuando suena el zumbador.

4.- Sensores de proximidad PIR (infrarrojos)

Encender un led verde 2 segundos cuando el sensor detecte algo cerca. El azul de IR emite luz y cuando choca con algo, la luz rebota y el fototransistor blanco la recibe y se activa (HIGH)

4.b.- Añade un led rojo que luzca cuando no detecte algo y se apague al detectar una presencia

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); // creamos una variable “valorpulsador” para saber si el pulsador está pulsado o no

if (valorPulsador == HIGH) // Si se activa el pulsador

digitalWrite (zumbador, HIGH); // suena el zumbador

delay(5000); // Pausa de 5 segundos digitalWrite(lzumbador, LOW); // Apaga el zumbador

int ir = 2;

int ledV = 8; int irValor =0;

void setup()

pinMode(ledV, OUTPUT);

pinMode (ir, INPUT);

void loop()

irValor= digitalRead (ir);

if (irValor == HIGH)

digitalWrite(ledV, HIGH); delay(2000);

else

digitalWrite(ledV, LOW);

Page 9: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

TPR 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

9

EJEMPLO

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. Después elaboramos el programa según el valor obtenido.

5.b.- Encender 3 leds diferentes (verde, rojo y amarillo) según las condiciones de luz (oscuridad, luz natural y linterna)

6.- 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 GND

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 GND

int ledV= 2;

int sensorLDR= A5; int valorLDR=0;

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

TABLA DE CONEXIÓN DE PINES

PIN L293D PIN ARDUINO

DESCRIPCIÓN Motor1 Motor2

1 9 + 5V Enable

2 10 2 / 10 INPUT 1

3 11 Motor1 / Motor2

4,5 12.13 GND GND

6 14 Motor1 / Motor2

7 15 7 / 13 INPUT 2

8 16 +5V ó Vin Alimentación del motor 1 y 2

Page 10: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

TPR 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

10

6.b.- Haz que la puerta esté parada 3 segundos antes de que se cierre 6.c.- Añade un led verde y otro rojo que luzcan cuando el motor gira, cada uno luce con un

sentido de giro

7.-Movimiento de los motores de tu máquina-robot con los sensores o elementos de control

Diseña el programa que mueva los motores de tu máquina-robot y móntalo en tu proyecto.

Incluye leds que indiquen qué motor está girando.

TABLA DE CONTROL DEL MOTOR1

Pin 2 Pin 7 MOTOR1

HIGH LOW GIRO HORARIO

LOW HIGH GIRO ANTIHORARIO

HIGH HIGH STOP

LOW LOW STOP

APERTURA Y CIERRE PUERTA CON DETECTOR IR

int irPin = 4;

int MDPin = 2;

int MIPin = 7;

int irValue =0;

void setup() pinMode(MDPin, OUTPUT); pinMode(MIPin, OUTPUT); pinMode (irPin, INPUT);

void loop() irValue= digitalRead (irPin); if (irValue == HIGH) digitalWrite(MDPin, HIGH); digitalWrite(MIPin, LOW); delay(5000); digitalWrite(MDPin, LOW); digitalWrite(MIPin, HIGH); delay(5000); else digitalWrite(MDPin, LOW); digitalWrite(MIPin, LOW);

Page 11: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

TPR 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

11

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.

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

Giro en un sentido a máxima velocidad

Motor parado (Hay casos en que hay que ajustar este valor, ej.100)

Giro en el otro sentido a máxima velocidad

0-89 91-180

Giro en un sentido disminuyendo la velocidad al aumentar el número

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 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)

motor1.write(180); //el motor gira 180º en un sentido

delay(2000);

else

motor1.write(0); //el motor gira -180º y se coloca en la

posición inicial

#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)

0º 90º 180º

Page 12: TEMA 6: ROBÓTICA -PROGRAMACIÓN · desconectar el USB y alimentar la placa mediante una pila o fuente de alimentación. 3. Entorno software Primero debemos seleccionar el tipo de

TPR 4ºESO. Departamento de Tecnología. IES Nuestra Señora de la Almudena Mª Jesús Saiz

12

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.

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