Hola gente. Antetodo felicitar a la peña del foro que son unos maquinas. Bien, voy al grano. Estoy haciendo una maqueta de una puerta automatica con el siguiente SKETCH
// Programa para control de Porton Automatico
#include <Servo.h>
Servo mi_servo;// miservo pa8ra controlar el servomotor
int but = 8; //pin para el pulsador
int Angulo = 0;// Vriable para el valor inicial del servo
int servo = 9;// variable para leer el valor del pin pwm
//Sensores IR Interructor de Proximidad
int A = 4;
int B = 7;
int C = 12;
//variables para guardar el valor leido por el sensor y el pulsador
int sensorA;
int sensorB;
int sensorC;
int butState;
void setup()
{
mi_servo.attach (9); (mi_servo); // asocia el servo en pin 9 al objeto servo
pinMode(A,INPUT);
pinMode(B,INPUT);
pinMode(C,INPUT);
pinMode(but, INPUT);
digitalWrite(servo,LOW);
}
void loop()
{
sensorA=digitalRead(A);//lectura del sensor A
sensorB=digitalRead(B); //lectura del sensor B
sensorC=digitalRead(C); //lectura del sensor c
mi_servo.write(Angulo);//posicion 0
butState = digitalRead(but);//lectura del pulsador
if (butState == HIGH) { //si el pulsador esta en alto
mi_servo.write(Angulo); delay(100); mi_servo.write(5); delay(100);
mi_servo.write(10); delay(100); mi_servo.write(15); delay(100);
mi_servo.write(20); delay(100); mi_servo.write(25); delay(100);
mi_servo.write(30); delay(100); mi_servo.write(35); delay(100);
mi_servo.write(40); delay(100); mi_servo.write(45); delay(100);
mi_servo.write(50); delay(100); mi_servo.write(55); delay(100);
mi_servo.write(60); delay(100); mi_servo.write(65); delay(100);
mi_servo.write(70); delay(100); mi_servo.write(75); delay(100);
mi_servo.write(80); delay(100); mi_servo.write(85); delay(100);
mi_servo.write(90); delay(100); mi_servo.write(95); delay(100);
mi_servo.write(100); delay(100); mi_servo.write(105); delay(100);
mi_servo.write(110); delay(100); mi_servo.write(115); delay(100);
mi_servo.write(120); delay(100); mi_servo.write(125); delay(100);
mi_servo.write(130); delay(100); mi_servo.write(135); delay(100);
mi_servo.write(140); delay(100); mi_servo.write(145); delay(100);
mi_servo.write(150); delay(100); mi_servo.write(155); delay(100);
mi_servo.write(160); delay(100); mi_servo.write(165); delay(100);
mi_servo.write(170); delay(100); mi_servo.write(175); delay(100);
mi_servo.write(180); delay(20000);
mi_servo.write(180); delay(100);
mi_servo.write(175); delay(100); mi_servo.write(170); delay(100);
mi_servo.write(165); delay(100); mi_servo.write(160); delay(100);
mi_servo.write(155); delay(100); mi_servo.write(150); delay(100);
mi_servo.write(145); delay(100); mi_servo.write(140); delay(100);
mi_servo.write(135); delay(100); mi_servo.write(130); delay(100);
mi_servo.write(130); delay(100); mi_servo.write(125); delay(100);
mi_servo.write(120); delay(100); mi_servo.write(115); delay(100);
mi_servo.write(110); delay(100); mi_servo.write(105); delay(100);
mi_servo.write(100); delay(100); mi_servo.write(95); delay(100);
mi_servo.write(90); delay(100); mi_servo.write(85); delay(100);
mi_servo.write(80); delay(100); mi_servo.write(75); delay(100);
mi_servo.write(70); delay(100); mi_servo.write(65); delay(100);
mi_servo.write(60); delay(100); mi_servo.write(55); delay(100);
mi_servo.write(50); delay(100); mi_servo.write(45); delay(100);
mi_servo.write(40); delay(100); mi_servo.write(35); delay(100);
mi_servo.write(30); delay(100); mi_servo.write(25); delay(100);
mi_servo.write(20); delay(100); mi_servo.write(15); delay(100);
mi_servo.write(10); delay(100); mi_servo.write(5); delay(100);
mi_servo.write(Angulo);delay(300);
}
//si los sensores estan 1 el porto se abrira
if(sensorA==1 && sensorB==1){
mi_servo.write(Angulo); delay(100); mi_servo.write(5); delay(100);
mi_servo.write(10); delay(100); mi_servo.write(15); delay(100);
mi_servo.write(20); delay(100); mi_servo.write(25); delay(100);
mi_servo.write(30); delay(100); mi_servo.write(35); delay(100);
mi_servo.write(40); delay(100); mi_servo.write(45); delay(100);
mi_servo.write(50); delay(100); mi_servo.write(55); delay(100);
mi_servo.write(60); delay(100); mi_servo.write(65); delay(100);
mi_servo.write(70); delay(100); mi_servo.write(75); delay(100);
mi_servo.write(80); delay(100); mi_servo.write(85); delay(100);
mi_servo.write(90); delay(100); mi_servo.write(95); delay(100);
mi_servo.write(100); delay(100); mi_servo.write(105); delay(100);
mi_servo.write(110); delay(100); mi_servo.write(115); delay(100);
mi_servo.write(120); delay(100); mi_servo.write(125); delay(100);
mi_servo.write(130); delay(100); mi_servo.write(135); delay(100);
mi_servo.write(140); delay(100); mi_servo.write(145); delay(100);
mi_servo.write(150); delay(100); mi_servo.write(155); delay(100);
mi_servo.write(160); delay(100); mi_servo.write(165); delay(100);
mi_servo.write(170); delay(100); mi_servo.write(175); delay(100);
mi_servo.write(180); delay(10000);
mi_servo.write(180); delay(100);
mi_servo.write(175); delay(100); mi_servo.write(170); delay(100);
mi_servo.write(165); delay(100); mi_servo.write(160); delay(100);
mi_servo.write(155); delay(100); mi_servo.write(150); delay(100);
mi_servo.write(145); delay(100); mi_servo.write(140); delay(100);
mi_servo.write(135); delay(100); mi_servo.write(130); delay(100);
mi_servo.write(130); delay(100); mi_servo.write(125); delay(100);
mi_servo.write(120); delay(100); mi_servo.write(115); delay(100);
mi_servo.write(110); delay(100); mi_servo.write(105); delay(100);
mi_servo.write(100); delay(100); mi_servo.write(95); delay(100);
mi_servo.write(90); delay(100); mi_servo.write(85); delay(100);
mi_servo.write(80); delay(100); mi_servo.write(75); delay(100);
mi_servo.write(70); delay(100); mi_servo.write(65); delay(100);
mi_servo.write(60); delay(100); mi_servo.write(55); delay(100);
mi_servo.write(50); delay(100); mi_servo.write(45); delay(100);
mi_servo.write(40); delay(100); mi_servo.write(35); delay(100);
mi_servo.write(30); delay(100); mi_servo.write(25); delay(100);
mi_servo.write(20); delay(100); mi_servo.write(15); delay(100);
mi_servo.write(10); delay(100); mi_servo.write(5); delay(100);
mi_servo.write(Angulo);delay(5000);
}
}
//fin del Programa
Mi problema esta en el que necesito que ese sensorC cuando este activo y la puerta este abierta a 180º no se cierre la puerta. Pero no se como hacerlo bien, cuando lo pongo como yo creo el servo se vuelve loco y hace cosas raras. Alguien me ayuda a hacerlo????