You are on page 1of 2

#include <Servo.

h>
#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

Servo myservo;
int luz;
uint8_t pwm;
uint16_t adc;
float temp;
int ldr;
uint8_t LED_VERDE = 5;
uint8_t LED_NEGRO = 6;
int pos = 0;
bool flag= true;

void setup() {
myservo.attach(11);

Serial.begin(9600);
lcd.init();
lcd.backlight();

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("");

pinMode(LED_VERDE, OUTPUT);
pinMode(LED_NEGRO, OUTPUT);

void loop() {

adc = analogRead(A0);
temp = (adc * 5.0) / 1024.0 / 0.01;
delay(600);
lcd.setCursor(0, 0);
lcd.print("temp es ");
lcd.setCursor(8, 0);
lcd.print(temp);
lcd.setCursor(12, 0);
lcd.print(" C ");
pwm = map(temp, 0, 1023, 0, 255);
analogWrite(6, pwm);

ldr = analogRead(A5);
Serial.println(ldr);
Serial.println("flag "+ String(flag));

if (ldr > 900 && flag) {


flag= false;
lcd.setCursor(0, 1);
lcd.print("Servo activo ");
digitalWrite(LED_VERDE, HIGH);
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(15);
}
lcd.setCursor(0, 1);
lcd.print("Servo no activo");
digitalWrite(LED_VERDE, LOW);
}
if (ldr < 900){
flag=true;
}
}

You might also like