Puerta y llave del agua automatizado

 Puerta y llave del agua automatizado 

Como prototipos de nuestro segundo parcial elaboramos dos prototipos que utilizaran servos y sensores, uno que fue una puerta automática y el otro que fue una llave de agua automática.

Puerta automática

MATERIALES:

  • 2 servos
  • arduino
  • 2 sensores ultrasónicos 
  • cables
  • papel cascarón 
  • silicón 
  • palitos de madera

CÓDIGO:

#include <Servo.h>

#define TRIGGER_PIN_1 2
#define ECHO_PIN_1 3
#define TRIGGER_PIN_2 4
#define ECHO_PIN_2 5
#define DISTANCE_THRESHOLD 9 // Distancia en centímetros
#define MOVEMENT_DELAY 5000 // Tiempo de movimiento en milisegundos

Servo servo1;
Servo servo2;

void setup() {
  Serial.begin(9600);
  pinMode(TRIGGER_PIN_1, OUTPUT);
  pinMode(ECHO_PIN_1, INPUT);
  pinMode(TRIGGER_PIN_2, OUTPUT);
  pinMode(ECHO_PIN_2, INPUT);
  servo1.attach(9);
  servo2.attach(10);
}

void loop() {
  long duration, distance1, distance2;

  // Sensor 1
  digitalWrite(TRIGGER_PIN_1, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIGGER_PIN_1, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN_1, LOW);
  duration = pulseIn(ECHO_PIN_1, HIGH);
  distance1 = duration * 0.034 / 2;

  // Sensor 2
  digitalWrite(TRIGGER_PIN_2, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIGGER_PIN_2, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN_2, LOW);
  duration = pulseIn(ECHO_PIN_2, HIGH);
  distance2 = duration * 0.034 / 2;

  Serial.print("Distancia Sensor 1: ");
  Serial.print(distance1);
  Serial.print(" cm\t");
  Serial.print("Distancia Sensor 2: ");
  Serial.print(distance2);
  Serial.println(" cm");

  if (distance1 <= DISTANCE_THRESHOLD) {
    servo1.write(0); // Angulo para el servo 1
    servo2.write(180); // Angulo para el servo 2
    delay(MOVEMENT_DELAY);
    servo1.write(90); // Volver a la posición original del servo 1
    servo2.write(90); // Volver a la posición original del servo 2
  }

  if (distance2 <= DISTANCE_THRESHOLD) {
    servo1.write(0); // Angulo para el servo 1
    servo2.write(180); // Angulo para el servo 2
    delay(MOVEMENT_DELAY);
    servo1.write(90); // Volver a la posición original del servo 1
    servo2.write(90); // Volver a la posición original del servo 2
  }

  delay(100);
}

Llave del agua automática

MATERIALES:

  • 1 servo
  • 1 sensor ultrasónico
  • cables
  • arduino
  • caja de cartón
  • manguera
  • silicón 

CÓDIGO:

#include <Servo.h>

const int triggerPin = 2;
const int echoPin = 3;
const int servoPin = 9;

Servo myservo;
int pos = 0;
long duration, distance;

void setup() {
  myservo.attach(servoPin);
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);
  myservo.write(pos);
  delay(1000);
}

void loop() {
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;
  
  if (distance < 10) {
    myservo.write(90);
    delay(1000);
  } else {
    myservo.write(0);
    delay(1000);
  }
}

Ahora para que puedan ver como es que nos quedaron nuestro proyectos les dejo nuestro video:



Entradas más populares de este blog

Ejercicios de Packet Tracer

Conceptos básicos y mi primer circuito

2.- Ejercicio matemático