KATSE MOOTOR ja KAUGUSEMÕÕTMISE ANDUR

7.1.1 Опыт с мотором/Mootor ja H-sild L293Dil

int switchPin = 2; // lüliti 1 

int motor1Pin1 = 3; // viik 2 (L293D) 

int motor1Pin2 = 4; // viik 7 (L293D) 

int enablePin = 9; // viik 1(L293D) 

 void setup() { 

 // sisendid 

 pinMode(switchPin, INPUT);

 //väljundid 

 pinMode(motor1Pin1, OUTPUT); 

 pinMode(motor1Pin2, OUTPUT); 

 pinMode(enablePin, OUTPUT); 

 // aktiveeri mootor1 

 digitalWrite(enablePin, HIGH); 

} 

 void loop() { 

 // kui lüliti on HIGH, siis liiguta mootorit ühes suunas: 

 if (digitalRead(switchPin) == HIGH) 

{ 

 digitalWrite(motor1Pin1, LOW); // viik 2 (L293D) LOW 

 digitalWrite(motor1Pin2, HIGH); // viik 7 (L293D) HIGH 

 } 

 // kui lüliti on LOW, siis liiguta mootorit teises suunas: 

 else

 { digitalWrite(motor1Pin1, HIGH); // viik 2 (L293D) HIGH 

 digitalWrite(motor1Pin2, LOW); // viik 7 (L293D) LOW 

 } 

} 
int switchPin = 2; // lüliti 1 

int switchPin2 = 1; // lüliti 2 

int potPin = A0; // potentsiomeeter 

int motor1Pin1 = 3; // viik 2 (L293D) 

int motor1Pin2 = 4; // viik 7 (L293D) 

int enablePin = 9; // viik 1(L293D) 

 void setup() { 

 // sisendid 

 pinMode(switchPin, INPUT); 

 pinMode(switchPin2, INPUT); 

 //väljundid 

 pinMode(motor1Pin1, OUTPUT); 

 pinMode(motor1Pin2, OUTPUT); 

 pinMode(enablePin, OUTPUT); 

} 

 void loop() { 

 //mootori kiirus 

 int motorSpeed = analogRead(potPin); 

 //aktiveeri mootor 

 if (digitalRead(switchPin2) == HIGH)

{ 

 analogWrite(enablePin, motorSpeed); 

 } 

else 

{ analogWrite(enablePin, 0); } 

 // kui lüliti on HIGH, siis liiguta mootorit ühes suunas: 

 if (digitalRead(switchPin) == HIGH)

{

 digitalWrite(motor1Pin1, LOW); // viik 2 (L293D) LOW 

 digitalWrite(motor1Pin2, HIGH); // viik 7 (L293D) HIGH 

 } 

 // kui lüliti on LOW, siis liiguta mootorit teises suunas: 

 else 

{ 

 digitalWrite(motor1Pin1, HIGH); // viik 2 (L293D) HIGH 

 digitalWrite(motor1Pin2, LOW); // viik 7 (L293D) LOW 

 } 

}

7.2 Опыт с датчиком расстояния/Ultraheli andur,mis mõõdab kaugust takistuseni ei ole mootor

#define ECHO_PIN 8

#define TRIG_PIN 7

void setup() {

  pinMode(ECHO_PIN, INPUT);

  pinMode(TRIG_PIN, OUTPUT);

  Serial.begin(960);

}

void loop() {

  Serial.println(measure()); 

}

int measure()

{

  digitalWrite(TRIG_PIN,HIGH);

  digitalWrite(TRIG_PIN,LOW);

  int distance=pulseIn(ECHO_PIN, HIGH,15000)/50;

  return constrain(distance,1,300);

}

Uued funktsiond:

define ECHO_PIN 8 ja define TRIG_PIN 7 -Макросы представляют собой именованные константы, которые заменяются на свои значения в процессе компиляции программы. В данном случае, макросы ECHO_PIN и TRIG_PIN используются для определения пинов, на которых подключены сонарный модуль

int distance=pulseIn(ECHO_PIN, HIGH,15000)/50; – переменная “distance” будет равна результату выполнения функции “pulseIn”, которая измеряет длительность импульса на пине “ECHO_PIN” с высоким уровнем в течение 15000 микросекунд, а затем это значение будет делено на 50.

Ülesanne 7.1 Rahakarp või Prügikast:

https://www.tinkercad.com/things/gy8Yi3Ojjqy-glorious-waasa-kieran

Töö kirjeldus

Данная мусорка работает от датчика движения если она не видет перед собой препятствий,то на lcd экране появляется надпись “Ma ootan munti” и серво привод не работает. Когда датчик движения чувствует препятствие серво привод открывает мусорку и на экране появляется надпись “Ma soon munti”. Через 5 секунд коробка закрывается с помощью сервопривода

See prügikast töötab liikumisanduri abil ja kui see ei näe enda ees takistusi, siis kuvatakse lcd-ekraanil “Ma ootan munti” ja servoajam ei tööta. Kui liikumisandur tajub takistust, avab servo prügikasti ja lcd-ekraanile ilmub teade “Ma varsti munti”. 5 sekundi pärast sulgeb servoajam kasti.

Ma kasutasin:
Arendusplaat
Arduino Uno
Juhtmed
1 Lcd ekraan
1 Servo

#define ECHO_PIN 8
#define TRIG_PIN 6
#include <LiquidCrystal.h>
#include <Servo.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Servo servo1;

void setup() {
  servo1.attach(9);
  pinMode(ECHO_PIN, INPUT);
  pinMode(TRIG_PIN, OUTPUT);
  Serial.begin(9600);
  lcd.begin(16, 2);
}

void loop() {
  int position;
  position = 0;
  servo1.write(0);
  int intmeasure;
  intmeasure = measure();
  Serial.println(measure());
  lcd.print("Ma ootan munti");
  
  if (intmeasure != 1) {
    Serial.println("work rn");

    for (position = 0; position <= 180; position += 1) {
      servo1.write(position);
      Serial.println(position);
      delay(50);
    }
    lcd.clear();
    lcd.setCursor(2, 0);
    lcd.print("Ma soon munti");
    delay(5000);

    for (position = 180; position >= 0; position -= 1) {
      servo1.write(position);
      Serial.println(position);
      delay(50);
    }
      while (intmeasure != 1) { 
    Serial.println("in cycle");
    intmeasure = measure();
    Serial.println(measure());
      }
  } 
    else if (intmeasure == 1) {
    lcd.print("Ma ootan munti");
    Serial.println("work 2 rn");
    lcd.setCursor(2, 0);
    lcd.clear();
    lcd.print("Ma ootan munti");
    
    
  }
}

int measure() {
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  int distance = pulseIn(ECHO_PIN, HIGH, 15000) / 50;
  return constrain(distance, 1, 300);
}

Video:

https://drive.google.com/file/d/1ah9etxDq3e0sd9MOmMUDx5OoyT7fAV6q/view?usp=drive_link

Датчики движения – это устройства, способные обнаруживать движение в определенной зоне и реагировать на него. Они широко применяются в различных областях и системах, включая:

1.Безопасность и охрана: Датчики движения используются в системах безопасности и охранной сигнализации. Они могут быть установлены в домах, офисах, магазинах или других помещениях, чтобы обнаруживать нежелательное проникновение или движение в защищаемой зоне. При обнаружении движения датчик активирует сигнализацию или предупреждающую систему, что помогает предотвратить преступные действия.

2.Автоматическое освещение: Датчики движения широко используются в системах автоматического освещения. Они могут быть установлены внутри или снаружи зданий и реагировать на движение людей. Когда датчик обнаруживает движение, он активирует осветительные приборы, освещая пространство, и автоматически выключается, когда движение прекращается. Это позволяет экономить энергию и обеспечивает удобство для пользователей.

3.Автоматические двери: Датчики движения широко применяются в автоматических дверях. Они могут быть установлены на входах в здания или внутри помещений, чтобы обнаруживать приближающихся людей. Когда датчик обнаруживает движение, он активирует механизм открытия дверей, обеспечивая автоматическое открытие и закрытие дверей для удобства пользователей.

4.Энергосбережение: Датчики движения могут использоваться для управления энергопотреблением в зданиях. Например, они могут быть установлены в помещениях, чтобы автоматически включать или выключать освещение или системы кондиционирования воздуха при обнаружении присутствия людей. Это помогает снизить энергозатраты и повысить эффективность использования ресурсов.