Ülesanne 7.1

Ülesanne 7.1 Rahakarp või Prügikast. Töö paarides.


Töö kirjeldus:

Juhib servomootorit, et avada ja sulgeda värav, kasutades kahte ultrahelisensori. Esimene sensor avab värava, kui keegi läheneb, ja teine sensor loendab prügikonteinerite arvu. Värav suletakse 5 sekundi pärast automaatselt.


Kasutatud komponendid:
 • Arduino UNO
 • Ultraheliandur (3-pin HC-SR04/HC-SR04P)
 • Servomootor
 • Breadboard ja ühendusjuhtmed
 • LED-RGB


Skeem:


Programm:

#include <Servo.h>

#define TRIG_PIN 11
#define ECHO_PIN 12
#define TRIG_PIN2 10
#define ECHO_PIN2 9
#define SERVO_PIN 13

Servo myServo;

int counter = 0;

bool gateOpen = false;
unsigned long gateOpenTime = 0;

void setup() {
  Serial.begin(9600);

  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);

  pinMode(TRIG_PIN2, OUTPUT);
  pinMode(ECHO_PIN2, INPUT);

  myServo.attach(SERVO_PIN);
  myServo.write(0);
}

void loop() {
  unsigned long currentMillis = millis();

  int distance1 = getDistance(TRIG_PIN, ECHO_PIN);

  if (!gateOpen && distance1 > 0 && distance1 < 15) {
    myServo.write(0);
    gateOpen = true;
    gateOpenTime = currentMillis;
    Serial.println("Gate opened");
  }

  if (gateOpen && (currentMillis - gateOpenTime >= 5000)) {
    myServo.write(80);
    gateOpen = false;
    Serial.println("Gate closed");
  }

  int distance2 = getDistance(TRIG_PIN2, ECHO_PIN2);

  if (distance2 > 0 && distance2 < 10) {
    counter++;
    Serial.print("Trash count: ");
    Serial.println(counter);

    delay(1500);
  }

  delay(200);
}

int getDistance(int trigPin, int echoPin) {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH, 30000);

  if (duration == 0) return -1;

  int distance = duration * 0.034 / 2;
  return distance;
}


Video:



Kasutusvõimalused tavaelus:
 • Köögi prügikast, mida saab kasutada ilma kaant puudutamata.
 • Avalikes tualettides hügieenilisemaks prügikäitluseks.

JNE


Comments

Lisa kommentaar

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga