PRACTICA 12. Sensor de Luz o LDR LDR (Light Dependent Resistor): Resistor): Un LDR es una resistencia variable, que varía su valor dependiendo de la cantidad de luz que incide sobre su superficie. Cuanta más 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 fotocélula 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 tensión t ensión resistivo. Ejemplo:
Vout=((Rbotton/(Rbottom+Rtop))*Vin
Si la LDR es usada como Rtop, como en el primer circuito, da tensión alta (HIGH) en la salida cuando la LDR está en la luz, y una tensión baja (LOW) en la salida cuando la LDR está en la sombra. La acción del divisor de tensión es inversa cuando la LDR es usada como R bottom en lugar de Rtop, como en el segundo circuito. El circuito da tensión Baja (LOW) en la salida cuando la LDR está en la luz, y una tensión alta (HIGH) en la salida cuando la LDR está en la sombra. El circuito divisor de tensión dará una tensión de la salida que cambia con la iluminación, de forma inversamente proporcional a la cantidad de luz que reciba (sensor de oscuridad).
Materiales:
1 LDR 1 Resistencia de 10kΩ Un par de cables
El circuito consta de un divisor de tensión formado por la LDR y la resistencia de 220Ω. CÓDIGO FUENTE: int PinLDR = 3; int ledPin = 13; int val = 0; sensor void setup() { pinMode(ledPin, OUTPUT); } void loop() { val = analogRead(PinLDR); digitalWrite(ledPin, HIGH); delay(val); digitalWrite(ledPin, LOW);
// selecciona el pin de entrada para el sensor de luz // selecciona el pin para el LED // variable para almacenar el valor capturado desde el
// declara el ledPin en modo salida
// lee el valor del sensor // enciende el LED // detiene el programa por un tiempo // apaga el LED
delay(val);
// detiene el programa por un tiempo
}
LABORATORIO 6 - Medidor de luz El medidor de luz consiste en que varios diodos led (4 o 5) se van encendiendo o apagando según sea la intensidad luminosa: en sombra, se encenderá solamente un LED; en zona iluminada, se encenderán todos.
Materiales:
2 LED verdes 2 LED rojos 1 LED amarillo
1 resistencia de 220Ω por cada diodo LED.
1 LDR, que funcione como un sensor de luz.
1 resistencia en serie con la LDR de 1kΩ, 10kΩ o 100kΩ.
CÓDIGO FUENTE: #define verde 12 // led verde #define amarillo 11 // led amarillo #define rojo 10 // led rojo // Entrada Analogica A0 para sensor de luz LDR #define pinEntrada A0 int valorEntrada = 0; // Variable Variable donde ponemos el valor de la luz int estado_leds estado_leds = 0; // Variable Variable donde ponemos el estado estado de los leds segun intensidad intensidad luz // Seteamos puertos como salida para leds + entrada para el sensor void setup() { pinMode(verde,OUTPUT); pinMode(amarillo,OUTPUT); pinMode(rojo,OUTPUT); pinMode(pinEntrada,INPUT); } void loop() { valorEntrada = analogRead (pinEntrada); // Leemos Leemos sensor de luz luz // Nos da un numero de entre 0 y 1024 // proporcional a la intesidad de luz estado_leds = (5 * valorEntrada)/1024; // Esta función nos da un número del 0 al 5 // proporcional a la intesidad de luz // obtenida anteriormente if (estado_leds == 0) { digitalWrite (verde, LOW); digitalWrite (amarillo, LOW); digitalWrite (rojo, LOW); } if (estado_leds == 1) { digitalWrite (verde, HIGH); digitalWrite (amarillo, LOW); digitalWrite (rojo, LOW); } if (estado_leds == 2||estado_leds == 3) { digitalWrite (verde, HIGH); digitalWrite (amarillo, HIGH); digitalWrite (rojo, LOW); } if (estado_leds == 4||estado_leds == 5) { digitalWrite (verde, HIGH); digitalWrite (amarillo, HIGH); digitalWrite (rojo, HIGH); } }
PRÁCTICA 13. HC-SR04 Sensor de Ultrasonidos IMPORTANTE: INSTALAR LA LIBRERÍA: “ Ultrasonic-HC-SR04-master” VER PROCEDIMIENTO DE
INSTALACIÓN HC-SR04 Sensor Sensor de Ultrasonidos Ultrasonidos El sensor HC-SR04 es un sensor de distancia que proporciona datos utilizando pulsos de duración proporcional al valor de la distancia. El alcance de estos dispositivos va desde 2 cm hasta alrededor de 3 m. El ultrasonido es una onda sonora cuya frecuencia está por encima del espectro auditivo del oído humano (aproximadamente 20.000 Hz Hz)). Algunos animales como los delfines y los murciélagos utilizan este principio para su orientación (eco localización) las ondas emitidas por estos animales son tan altas que “rebotan” fácilmente en todos los objetos alrededor de ellos, esto hace que creen una “imagen” y se orienten en donde se encuentran.
El sensor contiene un emisor y un receptor de ondas de ultrasonidos, y funciona a modo de sonar, cuenta con cuatro pines, dos para la alimentación, y dos como entrada y salida digital. Primero enviamos un tren de pulsos del del emisor, esto hará que HC-SR04 emita un tono de ultrasonido, ultrasonido, y el receptor esperara el ‘eco’ producido p or dicho tren de pulsos en algún objeto. Una vez que el eco producido es recibido en el sensor, este lo convierte en señales eléctricas, la amplitud del pulso determinará la distancia al objeto. Estos sensores trabajan solamente en el aire.
Montaje
Existen 2 formas de programar un código, los cuales nos permitirá el ahorro en líneas de código: La primera forma:
Codigo: #define trigPin 12 #define echoPin 13 void setup setup ( ) { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { int duracion, distancia; digitalWrite(trigPin, HIGH); delayMicroseconds(1000); digitalWrite(trigPin, LOW); duracion = pulseIn(echoPin, HIGH); distancia = (duracion/2) / 29.1; if (distancia >= 200 || distancia <= 0){ Serial.println(“Fuera Serial.println(“Fuera de Rango” Rango”); } else { Serial.print(distancia); Serial.println(“ cm”); cm”); } delay(1000); }
Utilizar este sensor es sumamente fácil. Solo basta con descargar la librería Ultrasonido.h
La segunda forma: #include
Ultrasonido ultrasonido(12,13,200); // trigPin 12, echoPin 13, Distancia que medimos 200cm int distancia; void setup() { Serial.begin(9600); } void loop(){ distancia=ultrasonido.distancia(); Serial.println(distancia); delay(500); }
Ejercicio para estudiante. Sensor de ultrasonidos (HC-SR04) + LED indicadores Montaje:
CODIGO int int int int
echoPin = 13; trigPin = 12; ledrojo=6; ledverde=5;
void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { int duracion, cm; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10);
digitalWrite(tr igPin, LOW); duracion = pulseIn(echoPin, HIGH); cm = duracion / 29 / 2; Serial.print("Distancia:"); Serial.print(cm); Serial.println(" cm"); //Utilice el condicional correspondiente a partir de esta línea } Condiciones para el ejercicio: Se requiere que cuando la distancia sea mayor a 20cm se encienda un led VERDE Si la distancia es menor a 20cm se encienda un led ROJO
Práctica 14. Midiendo temperatura y humedad con Arduino y el sensor DHT11 Tomado de: http://www.internetdelascosas.cl/2014/07/08/midiendotemperatura-y-humedad-con-arduino-y-el-sensor-dht11/#more2210 08/07/2014 7:53 ⋅ Comenta ⋅ joniuz
En este tutorial aprenderemos a utilizar el sensor DHT11 para medir temperatura y humedad con nuestro ya conocido Arduino. Inicialmente solo obtendremos la lectura mediante la interfaz serial del Arduino, pero la idea final es enviar estos datos a un servidor en internet lo que dejaremos para otro tutorial. Para realizar este tutorial nos basamos en el realizado por Lady Ada. Ada.
Materiales
Sensor DHT11
Protoboard
Cables de conexión para protoboard
Cable conexión Arduino
Aurduino 1
Sensor DHT11 El DHT11 es un sensor básico de humedad y temperatura de costo reducido. Usa un sensor de capacidad para medir la humedad y un termistor para medir la temperatura del aire que lo rodea. Esta diseñado para medir temperaturas entre 0 y 50°C con una precisión de ±2°C y para medir humedad entre 20% y 80% con una precisión de 5% con periodos de muestreo de 1 segundo. El formato de presentación es una pequeña caja de plástico de 15.5mm x 12mm x 5.5mm con una cara en la cual tiene una rejilla que le permite obtener las lecturas del aire que lo rodea. Si se requiere mayor precisión podemos trabajar con su hermano, el sensor DHT22. El sensor tiene cuatro pines de los cuales solo usaremos el pin 1,2 y 4
Circuito Para realizar el circuito utilizaremos un protoboard, en el colocamos el sensor y realizamos las conexiones según el siguiente esquema
Sensor DHT11 Pin DHT11 Pin 1: +5V en Arduino Pin 2: Digital 2 en Arduino Pin 3: No se utiliza Pin 4: Gnd en Arduino Se utiliza una resistencia pull up de 10K entre el Pin 2 del sensor y +5V de Arduino.
Programación Para leer y transformar los datos que entrega el sensor es necesario utilizar una librería, en este tutorial utilizaremos la librería creada por Adafruit. Adafruit. Para instalar la librería en tu ambiente de desarrollo Arduino (IDE) debes bajar el archivo comprimido zip desde el botón Donwload Zip al lado derecho en el sitio de GitHub GitHub.. Se descargará un archivo a tu computador que debes descomprimir, dentro del archivo zip encontrarás una carpeta, copia esta carpeta al directorio
donde están las librerías de tu ambiente de desarrollo Arduino (IDE) que en este ejemplo donde estamos utilizando Windows 7 están en C:\Program Files (x86)\Arduino\libraries, el contenido de la carpeta lo copiamos dentro de C:\Program Files (x86)\Arduino\libraries\DHT y reiniciamos el IDE. Una vez terminado el circuito y con la librería cargada es hora de comenzar a trabajar con el sketch para Arduino.
// Internet de las Cosas // www.internetdelascosas.cl www.internetdelascosas.cl // Sketch de prueba para sensores DHT humedad / temperatura // Escrito por @joniuz basado en el sketch de Ladyada // Libreria para Sensores DHT #include "DHT.h" #define DHTPIN 2
// Pin del Arduino Arduino al cual cual esta conectado el pin 2 del sensor
// Descomentar segun el tipo de sensor DHT D HT usado #define DHTTYPE DHT11 // DHT 11 11 //#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT21 // DHT 21 (AM2301) // Diagrama // Pin 1 Sensor a +5V de Arduino // Pin 2 Sensor a HDTPIN (en este sketch es el pin 2) // Pin 4 Sensor Sensor a GROUND de de Arduino // Resistencia de 10K desde Pin 2 de sensor a Pin 1 de Sensor o +5V // Inicializa el sensor DHT dht(DHTPIN, DHTTYPE); // Configura Arduino void setup() { Serial.begin(9600); Serial.println("InternetdelasCosas.cl Serial.println("InternetdelasCosas.cl\n\nPrueba \n\nPrueba de sensor DHTxx!"); dht.begin(); } void loop() { // Espera dos segundos para realizar la primera medición. delay(2000); // Lee los datos entregados por el sensor, cada lectura demora 250 milisegundos
// El sensor sensor muestrea la temperatura temperatura cada 2 segundos} segundos} // Obtiene la Humedad float h = dht.readHumidity(); // Obtiene la Temperatura en Celsius float t = dht.readTemperature(); dht.readTemperature(); // Control de errores, valida que se obtuvieron valores para los datos medidos if (isnan(h) || isnan(t)) { Serial.println("Falla Serial.println("Falla al leer el sensor DHT!"); return; } Serial.print("Humedad: Serial.print("Humedad: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperatura: Serial.print("Temperatura: "); Serial.print(t); Serial.println(" *C "); }