Hola, quisiera saber si alguien pudiera ayudarme con un problema con un proyecto, el proyecto consiste en abrir o cerrar una ventana en función de la presencia o no de lluvia (con un sensor FC-37), la señal analógica debería cumplir dos condiciones u acciones el abrir o cerrar, y lo hace, el problema es que debería detenerse al momento que la ventana toca con unos microswitchs y no lo hace, probe de varias formas pero simplemente no se detiene, al variar la resistencia del sensor sí logra cambiar la polaridad haciendo que abra y cierre, pero no se detiene.
int rain = A0;
int IN3 = 5; // Input3 conectada al pin 5
int IN4 = 4; // Input4 conectada al pin 4
int ENB = 3; // ENB conectada al pin 3 de Arduino
// valor de acción
int thresholdValue = 800;
int ms = 2;
int ms2 = 13;
int p1;
int p2;
void setup(){
pinMode(rain, INPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(ms, INPUT);
pinMode(ms2, INPUT);
Serial.begin(9600);
}
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(rain);
Serial.print(sensorValue);
p1=digitalRead(ms);
p2=digitalRead(ms2);
if(sensorValue <= thresholdValue){
do{
analogWrite(ENB,205);
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);}
while ((p1== LOW) or (p2 == LOW));
}
else {
Serial.println(" - It's dry");
analogWrite(ENB,205);
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
}