Cartilla robotica

Page 22

Código:

Explicación:

/**************************************************************/

En este experimento se puede ver como la velocidad en que prende y apaga el LED varía de manera inversa a la distancia medida por el sensor. Entre más lejos el sensor detecte un objeto más rápido prende y apaga el LED.

// Creado por José Luis Susa - 2010

//Entrada donde se conectará el sensor int sensorPin = 0;

La distancia es medida mediante la salida de voltaje del sensor, a mayor distancia menor voltaje de salida e viceversa, este voltaje es recibido por la tarjeta Arduino y convertido con su conversor análogo-digital y guardado en una variable llamada “sensorValue”.

// Salida digital donde se conecta un LED o una bocina int ledPin = 13; // Variable para guardar el valor medido del sensor int sensorValue = 0; //variable donde guardaremos las distancia en cm, //luego de hacer la conversión necesaria con la fórmula de abajo int distanciaCm;

Ejercicios aconsejados: Modificar el código para que se encienda el LED solo si la distancia medida es menor a 15 cm, si es mayor debe estar apagado el LED. Borrar lo que no necesitaremos, usar la variable “sensorValue”, la fórmula de conversión a cm, la variable “distanciaCm” y una condición IF ELSE.

void setup() { // declarar el ledPin como OUTPUT: pinMode(ledPin, OUTPUT); //inicialización serial para mostrar datos en la pantalla Serial.begin(9600); }

Experimento 12: Sensor proximidad, cuál es su utilidad en robótica?

void loop() { //lectura del voltaje arrojado por el sensor //que va aproximadamente de 0 a 600. //este valor debe ser convertido luego a centímetros sensorValue = analogRead(sensorPin);

Este sensor se usa generalmente para detectar colores como negro y blanco, ya que como el blanco refleja la luz totalmente el sensor envía una señal de 5v, cuando se pone frente a un color negro, este no permite que haya rebote de la luz infrarroja y por tanto el sensor envía una señal de 0v. Este efecto es útil para hacer robot que sigan líneas, si se ubican dos sensores a los costados de una línea negra, cada vez que se salga un poco de la línea solo basta hacer girar un poco el robot en sentido contrario para alinearlo nuevamente y seguir la línea.

//Se enciende la salida ledPin digitalWrite(ledPin, HIGH); //Tiempo de espera de <sensorValue> millisegundos: delay(sensorValue); //Se desactiva la salida ledPin digitalWrite(ledPin, LOW);

Hay que tener en cuenta que la luz ambiente puede modificar fuertemente las lecturas del sensor, así que es mejor dejarlo siempre oculto de la luz, si es posible debajo del robot y cubierto por los lados, otra solución es mantener a su alrededor una luz constante rodeándolo por ejemplo de LEDs.

//Tiempo de espera de <sensorValue> millisegundos: delay(sensorValue); //imprimimos en pantalla el valor medido Serial.print (“\nValor Medido:”); Serial.print (sensorValue);

Lo primero que debemos hacer es clasificar las 4 patas del sensor con ayuda del siguiente gráfico:

//cálculo de la distancia en centímetros //a partir del voltaje medido anteriormente distanciaCm = (2914 / (sensorValue + 5)) - 1; /* Como la variable distanciaCm tiene el valor en centímetros que el sensor midió, se puede usar esta variable para hacer las condiciones*/ Serial.print (“\n Distancia en Cm:”); //imprimimos en pantalla la distancia en cm Serial.print (distanciaCm); } /**************************************************************/

Módulo educativo de construcción de robots para estudiantes

22


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.