Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
sensores y
visualizacin
de sus datos
en una
pantalla LCD
16x2
Trabajo desarrollado en el
simulador 123d.circuits.io y puesto
en marcha en Arduino UNO R3.
2. Teora:
Cmo funciona un fotoresistor LDR?
Matemticamente, la relacin entre la iluminancia
resistencia de una LDR sigue una funcin potencial.
la
Mode
lo
GL55
16
GL55
28
GL55
37-1
GL55
37-2
GL55
39
GL55
49
Volta
Temperat
je
ura
(V)
(C)
Pico
espect
ral
(nm)
Resiste
ncia
oscurid
ad
(K)
Resiste
Tiemp
ncia
luz
Gam
brillant
ma
o
respue
sta
(ms)
(K)
150
-30+70
540
5-10
500
0.5
30
150
-30+70
540
10-20
1000
0.6
25
150
-30+70
540
20-30
2000
0.6
25
150
-30+70
540
30-50
3000
0.7
25
150
-30+70
540
50-100
5000
0.8
25
150
-30+70
540
100-200
10000
0.9
25
3. Cdigo utilizado:
#include <LiquidCrystal.h>
LiquidCrystal lcd(11, 10, 5, 4, 3, 2);
// cara sonriente
byte newChar6[8] = {
B00000,
B01010,
B01010,
B01010,
B00000,
B10001,
B01110,
B00000
};
//Resistencia en oscuridad KO
//Resistencia a la luz (10 Lux) KO
//Resistencia calibracion KO
//Variables leds
const int led1= 6;
const int led2=7;
const int led3=8;
const int led4=9;
void setup() {
Serial.begin(9600);
dht.begin(); //Se inicia el sensor
lcd.createChar(5, newChar6);
lcd.begin(16, 2);
lcd.print("Iniciando");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("BIENVENIDO A");
delay(1000);
lcd.setCursor(4, 1);
lcd.print("ROBOTICA");
delay(1000);
lcd.clear();
lcd.setCursor(7, 0);
lcd.write(5); // Dibuja la cara sonriente
delay(1000);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(13, OUTPUT); /*activacin del pin 9 como salida: para el pulso
ultrasnico*/
pinMode(12, INPUT); /*activacin del pin 8 como entrada: tiempo del
rebote del ultrasonido*/
}
void loop(){
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("MENU:");
lcd.setCursor(0, 1);
lcd.print("1.LUZ");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("2.DISTANCIA");
lcd.setCursor(0, 1);
lcd.print("3.TEMPERATURA");
delay(2000);
//ilum = ((long)(1024-V)*A*10)/((long)B*Rc*V);
nivel de iluminacin recibida
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nivel: ");
lcd.print(level);
lcd.print(" Lux");
lcd.setCursor(0, 1);
lcd.print("Oscuro");
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
else if ((level > 10) && (level <= 50))
{
lcd.print("Brillante");
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,LOW);
}
else
{
lcd.print("Muy brillante");
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
}
delay(500);
c = c + 1;
}
}
else if (serVal == '2'){
while(c < 20){
lcd.clear();
digitalWrite(13,LOW); /* Por cuestin de estabilizacin del sensor*/
delayMicroseconds(5);
digitalWrite(13, HIGH); /* envo del pulso ultrasnico*/
delayMicroseconds(10);
tiempo=pulseIn(12, HIGH); /* Funcin para medir la longitud del pulso
entrante. Mide el tiempo que transcurrido entre el envo
del pulso ultrasnico y cuando el sensor recibe el rebote, es decir: desde
que el pin 12 empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*frmula para calcular la distancia
obteniendo un valor entero*/
/*Monitorizacin en centmetros por el monitor serial*/
lcd.setCursor(0, 0);
lcd.print("Distancia: ");
lcd.setCursor(4, 1);
lcd.print(distancia);
lcd.println(" cm ");
delay(500);
c = c + 1;
}
}
else if (serVal == '3'){
while(c < 20){
float h = dht.readHumidity(); //Se lee la humedad
float t = dht.readTemperature(); //Se lee la temperatura
//Se imprimen las variables
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.println(h);
lcd.setCursor(0, 1);
lcd.print("Humed: ");
lcd.println(h);
delay(500);
c = c + 1;
}
4. Diagr
ama
en el
simulador:
5. Link del simulador para revisin:
https://circuits.io/circuits/2415994-multisensor-ypantalla-lcd-16x2-robotica/