Hola! estoy trabajando en mi proyecto de grado con un Arduino Mega 2560; lo que sucede es que quiero controlar el giro de un servo motor, osea que de un giro o dos dependiendo lo que necesite pero al subir el código en el arduino el servomotor no responde y se queda ejecutando la acción y nunca para, por cierto quiero que esto funcione dentro de un "if" . No se si me estoy explicando bien en fin aquí dejo el código para que alguien que quiera me pueda ayudar.
#include <Servo.h>
#include <DHT.h>
const int SENSORLLUVIA = 6;
const int MOTOR1 = 11;
const int LEDROJO = 2;
const int LEDNARANJA = 3;
const int LEDVERDE = 4;
const int LEDAZUL = 5;
const int SENSOR = 9;
int hum,tem;
DHT dht (9, DHT22);
Servo servo1;
void setup()
{
Serial.begin(9600);
dht.begin();
servo1.attach(8);
pinMode(LEDVERDE , OUTPUT);
pinMode(LEDNARANJA , OUTPUT);
pinMode(LEDROJO , OUTPUT);
pinMode(SENSORLLUVIA, INPUT);
}
void loop() {
int LLUVIA = 0;
LLUVIA = digitalRead(SENSORLLUVIA );
hum = dht.readHumidity();
tem = dht.readTemperature();
if(tem >= 28)
{
servo1.write(360);
}
if(LLUVIA != 1)
{
digitalWrite (LEDAZUL,HIGH);
servo1.write(-360);
}
else
{
digitalWrite (LEDAZUL,LOW);
}
if(tem <= 23)
{
digitalWrite (LEDVERDE,LOW); // Esta condicion devueleve al estado LOW cuando la tem baja
//digitalWrite (LEDAZUL,HIGH);
}
if(tem >= 24)
{
digitalWrite (LEDVERDE,HIGH);// Esta condicion cambia al estado HIGH cuando la tem sube
}
if(tem >= 26 )
{
digitalWrite (LEDNARANJA,HIGH);//Esta condicion cambia al estado HIGH cuando la tem sube
digitalWrite (LEDVERDE,LOW);//Esta condicion cambia al estado LOW el led anterior cuando la tem sube
}
if(tem < 28)
{
digitalWrite (LEDNARANJA,LOW); // Esta condicion devueleve al estado LOW cuando la tem baja
}
if (tem >= 28)
{
digitalWrite (LEDROJO,HIGH);//;Esta condicion cambia al estado HIGH cuando la tem sube
digitalWrite (LEDNARANJA,LOW);//Esta condicion cambia al estado LOW el led anterior cuando la tem sube
}
if(tem < 31)
{
digitalWrite (LEDROJO,LOW);// Esta condicion devueleve al estado LOW cuando la tem baja
}
if(tem >= 31 )
{
// digitalWrite (MOTOR1,HIGH);//Esta condicion cambia al estado HIGH cuando la tem sube
digitalWrite (LEDROJO,LOW);//;Esta condicion cambia al estado LOW el led anterior cuando la tem sube
}
Serial.print("Temperatura" );// Escribe en el Monitor Serie Temperatura
Serial.print(tem);// muestra el dato almacenado en la variable entera tem
Serial.print("°C"); //Escribe en el Monitor Serie °C
Serial.print("Lluvia");
Serial.print(LLUVIA);
Serial.print("Humedad" );// Escribe en el Monitor Serie Humedad
Serial.print(hum);// muestra el dato almacenado en la variable entera hum
Serial.print("%");// Escribe en el Monitor Serie %
//delay(1000);
}
sketch_jul21a.ino (2.41 KB)