programacion de puerta con servomotor, sensor de movimiento y pulsador.
Por: Juan David Martinez Cuervo
Paulina Varela Cartagena.
#include <Servo.h>
Servo servo1;
int servo_pos1_abierto = 90;
int servo_pos1_cerrado = 0;
//LDR
int ldr1 = A1;
int ldr2 = A0;
int led = 13;
int ledabierto = 6;
int ledcerrado = 2;
int Puls= 4; // pin 4 para pulsador
int TRIG = 10; // trigger en pin 10
int ECO =9; // echo en pin 9
int DURACION;
int DISTANCIA;
void setup ()
{
pinMode(led, OUTPUT);
pinMode(ldr1,INPUT); // definimos como entrada
pinMode(ldr2,INPUT_PULLUP); //definimos como entrada
pinMode (TRIG, OUTPUT); // disparador como salida
pinMode (ECO, INPUT); // echo como entrada
pinMode(Puls, INPUT);//pulsador como entrada
pinMode (ledabierto, OUTPUT); // led verde salida
pinMode (ledcerrado, OUTPUT);// led roja salida
servo1.attach(11);
void loop ()
{
//digitalWrite(ledabierto,LOW);
//digitalWrite(ledcerrado,LOW);
digitalWrite (TRIG, HIGH); // generaci�n del pulso a enviar
digitalWrite (TRIG, LOW); // del sensor
DURACION = pulseIn (ECO, HIGH); // con funcion pulseIn se espera un pulso
DISTANCIA = DURACION / 100; // distancia medida en centimetros
delay (200); // demora entre datos
if (DISTANCIA <= 100 && DISTANCIA >= 0)
{// si distancia entre 0 y 100 cms.
delay(DISTANCIA * 10); // demora proporcional a la distancia
//Condicion del servo
servo1.write(servo_pos1_abierto);
digitalWrite(ledabierto,HIGH);
digitalWrite(ledcerrado,LOW);
delay(5000);
}else {
servo1.write (servo_pos1_cerrado);
digitalWrite(ledabierto,LOW);
digitalWrite(ledcerrado,HIGH);
}
{
Puls=digitalRead(4);
if (Puls==HIGH)
{
//Condicion del servo
servo1.write(servo_pos1_abierto);
digitalWrite(ledabierto,HIGH);
digitalWrite(ledcerrado,LOW);
delay(30000);
}
}
}