You are on page 1of 10

CURSO PROVINCIAL: INTRODUCCIN A LA ROBTICA CON ARDUINO

ROBTICA EDUCATIVA

Entradas Analgicas.

Manuel Hidalgo Daz Enero 2011

ROBTICA EDUCATIVA

Entradas analgicas.
El controlador Atmega de Arduino lleva incluido un conversor analgico-digital (A/D) de 6 canales. Tiene una resolucin de 10 bits, retornando enteros desde 0 a 1023. El uso principal de estos pines (ANALOG IN 0,5) es para la lectura de sensores analgicos, estos pines tienen tambin toda la funcionalidad de los pines de entrada-salida digital (14-19). Los pines de entradas analgicas no son necesarios de lectura configurarlos en el setup(). Veamos un ejemplo (SensorPotenciometro) entorno Arduino cada segundo. analgica del valor de un potencimetro y lo vemos en el monitor del

Conectamos 3 cables a la placa Arduino. El primero desde masa a uno de los pines extremos del potencimetro. El segundo, desde 5
INTRODUCCIN A LA ROBTICA CON ARDUINO 2/10

ROBTICA EDUCATIVA

voltios al otro pin extremo del potencimetro. El tercero desde el pin analgico 0 al pin medio del potencimetro.

Al girar el eje del potencimetro, cambiamos el valor de la resistencia entre los pines de los extremos y el pin central del potencimetro. Esto cambia la "cercana" relativa del pin central a 5 Voltios y a masa, ofreciendo diferentes valores analgicos de entrada. Cuando giramos el eje a tope en un sentido, llegarn 0 voltios al pin central, y leeremos 0. Cuando giramos el eje a tope, pero en el otro sentido, llegarn 5 voltios al pin central y leeremos 1023. Entre medias, analogRead() retorna un nmero entre 0 y 1023 que es proporcional al valor del voltaje aplicado al pin central.

INTRODUCCIN A LA ROBTICA CON ARDUINO 3/10

ROBTICA EDUCATIVA

Cdigo
// SensorPotenciometro // Lectura de un sensor analogico (potenciometro) // connectedo a analog in 0 int sensorPot=0; int val; void setup(){ Serial.begin(9600); } void loop(){ int val=analogRead(sensorPot); Serial.println(val); delay(1000); }

Ejemplo (ControlTiempo)de lectura analgica del valor de un potencimetro que controla el tiempo de encendido de un led. El valor analgico ledo del potencimetro controlar la frecuencia con la que parpadear un LED Cdigo
/* ControlTiempo. Controla el tiempo de parpadeo por la entrada analgica 0*/ int sensorPin = 0; // selecciona el pin de entrada para el potencimetro int ledPin = 13; // selecciona el pin para el LED int sensorValue = 0; // variable para almacenar el valor que ofrece el sensor void setup() { // declara el ledPin como salida (OUTPUT) pinMode(ledPin, OUTPUT); } void loop() { sensorValue = analogRead(sensorPin); // lee el valor del sensor: digitalWrite(ledPin, HIGH); // enciende el ledPin // detiene el programa durante <sensorValue> milisegundos: delay(sensorValue); digitalWrite(ledPin, LOW); // apaga el ledPin : // detiene el programa durante <sensorValue> milisegundos: delay(sensorValue); }

INTRODUCCIN A LA ROBTICA CON ARDUINO 4/10

ROBTICA EDUCATIVA

PRCTICA. SENSOR LDR.

Descripcin: Un LDR es una resistencia variable, que varia su valor dependiendo de la cantidad de luz que incide sobre su superficie. Cuanta mas intensidad de luz incide en la superficie de la LDR menor ser su resistencia y cuanto menos luz incide mayor ser la resistencia. Suelen ser utilizados como sensores de luz ambiental o como una fotoclula que activa un determinado proceso en ausencia o presencia de luz.

Un sensor de luz se compone de una LDR como parte de un divisor de tensin resistivo. Ejemplo:

Vout=((Rbottom/(Rbottom+Rtop))*Vin Si la LDR es usada como Rtop, como en el primer circuito, da tensin alta (HIGH) en la salida cuando la LDR est en la luz,y una tensin baja (LOW) en la salida cuando la LDR est en la sombra. La accin del divisor de tensin es inversa cuando la LDR es usada como Rbottom en lugar de Rtop, como en el segundo circuito.

INTRODUCCIN A LA ROBTICA CON ARDUINO 5/10

ROBTICA EDUCATIVA

El circuito da tensin Baja (LOW) en la salida cuando la LDR est en la luz, y una tensin alta (HIGH) en la salida cuando la LDR est en la sombra. El circuito divisor de tensin dar una tensin de la salida que cambia con la iluminacin, de forma inversamente proporcional a la cantidad de luz que reciba (sensor de oscuridad). Listado de componentes: 1 LDR 1 Resistencia de 1k Un par de cables El esquema del circuito puede quedar de la siguiente forma:

El circuito consta de un divisor de tensin formado por la LDR y la resistencia de 1k.

INTRODUCCIN A LA ROBTICA CON ARDUINO 6/10

ROBTICA EDUCATIVA

Cdigo
// SensorLDR // Lectura de un sensor analogico (LDR) // connectedo a analog in 0 int sensorLDR = 3; int val; void setup(){ Serial.begin(9600); } void loop(){ int val=analogRead(sensorLDR); Serial.print("Valor del sensor LDR: "); Serial.println(val); Serial.println(); delay(1000); }

INTRODUCCIN A LA ROBTICA CON ARDUINO 7/10

ROBTICA EDUCATIVA

Cdigo:
/* ControlSensorLDR * -----------------* * Enciende y apaga un LED (light emitting diode) conectado al pin digital #13. * La cantidad de tiempo que el LED estar encendido y apagado depende del * valor obtenido de analogRead(). * La salida del sensor de luz o divisor de tensin, est conectado a la entrada del pin 3, * por lo que a ms luz, el parpadeo del LED ser menor y a menos luz el parpadeo * del LED mayor (sensor de oscuridad) */ int LightPin = 3; // selecciona el pin de entrada para el sensor de luz int ledPin = 13; // selecciona el pin para el LED int val = 0; // variable para almacenar el valor capturado desde el sensor void setup() { pinMode(ledPin, OUTPUT); // declara el ledPin en modo salida } void loop() { val = analogRead(LightPin); // lee el valor del sensor LDR digitalWrite(ledPin, HIGH); // enciende el LED delay(val); // detiene el programa por un tiempo digitalWrite(ledPin, LOW); // apaga el LED delay(val); // detiene el programa por un tiempo }

INTRODUCCIN A LA ROBTICA CON ARDUINO 8/10

ROBTICA EDUCATIVA

CONTROL DE UN SERVOMOTOR

Descripcin
Usa un potencimetro para controlar el movimiento de giro de un eje de un servomotor.

Circuito
Los servomotores tienes tres cables: alimentacin, tierra y seal. El cable de alimentacin normalmente es rojo, y debe ser conectado al pin 5V de la placa Arduino. El cable de tierra debe ser conectado al pin de tierra de la placa Arduino. El pin de seal es tpicamente amarillo o naranja y se conecta al pin 9 de la placa Arduino. El potencimetro debe ser conectado de manera que los dos pines exteriores estn conectado a alimentacin (+5V) y tierra, y su pin del medio conectado a la entrada analgica 0 en el Arduino.

INTRODUCCIN A LA ROBTICA CON ARDUINO 9/10

ROBTICA EDUCATIVA

Cdigo
//ControlAnalogicoServo // Controlando la posicin de un servo usando un potencimetro (resistencia variable) // Por Michal Rinott <http://people.interaction-ivrea.it/m.rinott> #include <Servo.h> Servo myservo; // Crea un objeto servo para controlar el servomotor int potpin = 0; // Pin analgico usado para conectar el potencimetro int val; // variable para leer el valor del pin analgico void setup() { myservo.attach(9); // asocia el servo en pin 9 al objeto servo } void loop() { val = analogRead(potpin); // lee el valor del potencimetro (valor entre 0 y 1023) val = map(val, 0, 1023, 0, 179); // escala el valor para usarlo con el servo (valor entre 0 y 180) myservo.write(val); // fija la posicin del servo de acuerdo al valor escalado delay(15); // espera a que el servo se posicione }

INTRODUCCIN A LA ROBTICA CON ARDUINO 10/10

You might also like