Hola, tengo un código el cual consta de varios códigos unidos, lo que pasa es que al momento de subirlo no funciona. sin embargo cuando se prueba por separado si lo hace, cuento con un arduino Mega.
he leído algunos foros que tiene un problema parecido al mio pero no me funciona.
gracias.
-agrego el código-
// servo
#include <Servo.h>
#define Pecho 11
#define Ptrig 12
long duracion, distancia;
int ledrojo= 6;
int ledverde= 7;
Servo servoMotor;
//sensor de luz
int pinLed1 = 2; // Pines donde se conectan los leds
int pinLed2 = 8;
int pinLed3 = 9;
int pinLDR = 0; // Pin analogico de entrada para el LDR
int valorLDR = 0;
//sensor de llama
const int buzzer1= 53;
const int sensor= 52;
//alarma PIR
const int buzzer2= 13;
const int PIRPin= 3;
void setup(){
//servo
// Iniciamos el monitor serie para mostrar el resultado
Serial.begin(9600);
pinMode(ledrojo, OUTPUT);
pinMode(ledverde, OUTPUT);
// Iniciamos el servo para que empiece a trabajar con el pin 9
servoMotor.attach(9);
servoMotor.write(0);
//ultrasonico
pinMode (Pecho, INPUT);
pinMode (Ptrig, OUTPUT);
//LEDS DE LDR
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
// sensor de llama
pinMode(buzzer1, OUTPUT);
pinMode(sensor,INPUT);
// sensor PIR
pinMode(buzzer2, OUTPUT);
pinMode(PIRPin, INPUT);
}
void loop () {
//servo
digitalWrite(Ptrig, LOW);
delayMicroseconds(2);
digitalWrite(Ptrig, HIGH);
delayMicroseconds(10);
digitalWrite(Ptrig, LOW);
duracion = pulseIn(Pecho, HIGH);
distancia = (duracion/2)/29;
Serial.print(distancia);
Serial.println("cm");
if ((distancia >5 ) or (distancia<0))
{
servoMotor.write(0);
digitalWrite(ledrojo, HIGH);
digitalWrite(ledverde, LOW);
// Esperamos 1 segundo
delay(1000);
}
else
{
// Desplazamos a la posición 180º
servoMotor.write(90);
digitalWrite(ledverde, HIGH);
digitalWrite(ledrojo, LOW);
// Esperamos 1 segundo
delay(1000);
// luces LDR
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
digitalWrite(pinLed3, LOW);
valorLDR= analogRead(pinLDR);
Serial.println(valorLDR);
if(valorLDR < 10) // Encender los leds apropiados de acuerdo al valor de ADC
{
digitalWrite(pinLed1, HIGH);
}
if(valorLDR < 10)
{
digitalWrite(pinLed2, HIGH);
}
if(valorLDR <10)
{
digitalWrite(pinLed3, HIGH);
}
delay(200); // Esperar unos milisegundos antes de actualizar
//sensor de llama
{if (digitalRead(sensor))
digitalWrite( buzzer1 , HIGH);
else
digitalWrite( buzzer1 , LOW);
}
//sensor PIR
int value= digitalRead(PIRPin);
if (value == HIGH)
{
digitalWrite(buzzer2, HIGH);
delay(12000);
digitalWrite(buzzer2, LOW);
delay(4000);
}
else
{
digitalWrite(buzzer1, LOW);
}
}
}
Moderador: Título editado.