Experiment 7

7.1 Katse Mootori kasutamine

Töö kirjeldus:

Mootori keeramine

Komponendid:

L293D
Patarei 9V
Nupp
Takisti 220 Om
Juhtmed 18 tk

Ühendus skeem:

Programm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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
 }
}

Foto:

Mootor keerab ühes suunas kui ON, teises suunas kui OFF

Teine variant:

Töö kirjeldus:

Mootori keeramine

Komponendid:

L293D
Patarei 9V
Nupp 2 tk
Potentsiomeeter
Takisti 1 K Om 2tk
Juhtmed 22 tk

Ühendus skeem:

Programm:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
 }
}

Foto:

Mootor keerab ühes suunas kui ON, teises suunas kui OFF

7.2 Katse Kauguse mõõtmise anduri kasutamine

Töö kirjeldus:

Komponendid:

Ühendus skeem:

Program:

var 1

1
2
3
4
5
6
7
8
9
10
11
12
13
#define ECHO_PIN 8
#define TRIG_PIN 7
void setup() {
  pinMode(ECHO_PIN, INPUT);
  pinMode(TRIG_PIN, OUTPUT);
  Serial.begin(960);
}
void loop() {
  digitalWrite(TRIG_PIN,HIGH);
  digitalWrite(TRIG_PIN,LOW);
  int distance=pulseIn(ECHO_PIN, HIGH)/50;
  Serial.println(distance);
}

var 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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);
}

Foto:

Kauguse andur mõõdab ja/või näitab objektid kaugusel

Ülesanne 7.1 Rahakarp või Prügikast

Töö kirjeldus:

Rahakarp näitab rõõmus näö kui kauguse andur näeb objekti (raha), kui ei näe tal on pokerface

Komponendid:

Arduino Uno
Arendusplaat
takisti 220 Om
Potentsiomeeter
HC-SR04
LCD ekraan 1602
Juhtmed

Ühendus skeem:

https://www.tinkercad.com/things/02ZUcrPw3d3-rahakarp/editel?sharecode=HlXgiR6rPMOGyc4Z6ssr_d5SP4wi27GSlqQ4LzJuEBg

Seletus

LCD ekraan näitab rõõmus näö kui näeb objekti, kui objekti pole siis tal on pokerface

Program:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <LiquidCrystal.h>
// Pins Sonar HC-SR04 jaoks
const int trigPin = 7;
const int echoPin = 8;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
unsigned long objectDetectedTime = 0;
const unsigned long displayDuration = 5000// Täisekraani kuvamise kestus (millisekundites)
byte DOT[8] = {
  0b11111,
  0b11111,
  0b11111,
  0b11111,
  0b11111,
  0b11111,
  0b11111,
  0b11111
};
void setup() {
  lcd.createChar(0, DOT);  // Loo kohandatud naeratuse sümbol
  lcd.begin(16, 2);  // LCD-ekraani initsialiseerimine
  pinMode(trigPin, OUTPUT);  // Määra viigu trigPin väljundiks
  pinMode(echoPin, INPUT);  // Määra echoPin sisendipiniks
}
void loop() {
  // Signaali saatmine andurile
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Helisignaali viiteaja mõõtmine
  long duration = pulseIn(echoPin, HIGH);
  // Arvutage kaugus viivitusaja alusel.
  int distance = duration * 0.034 / 2;
  // Kontrollige, kas anduri ees on mingi objekt.
  if (distance < 200) { // video kasutab kaugust 4, kuid näide on seatud teistsugusele kaugusele
    if (objectDetectedTime == 0) {
      objectDetectedTime = millis();  // Pidage meeles, millal objekt esmakordselt avastati
      fillScreenWithSmiley();
    }
  } else {
    if (objectDetectedTime > 0 && millis() - objectDetectedTime >= displayDuration) {
      objectDetectedTime = 0// Objekti tuvastamise aja lähtestamine
      clearScreen();
    }
  }
  delay(100);
}
void fillScreenWithSmiley() {
  lcd.setCursor(0, 0);
  lcd.write(byte(0));
  lcd.write(byte(0));
  lcd.setCursor(14, 0);
  lcd.write(byte(0));
  lcd.write(byte(0));
  lcd.setCursor(0, 1);
  for (int Korda = 0; Korda < 16; Korda++)
  {
    lcd.write(byte(0));
  }
   
}
void clearScreen() {
  lcd.clear();
  lcd.setCursor(2, 1); 
  for (int Korda = 0; Korda < 12; Korda++)
  {
    lcd.write(byte(0));
  }
}

Video:

https://drive.google.com/drive/folders/1QIIOFeZJeWjZsU1fwYtt2furDs4VmduP?usp=sharing

Kus seda võib kasutada:

Rahakarp
Prügikast
Sorteerimiskarp
Uksed
Tõkkepuu

Ülesanne 7.2 Auto parkimisanduriga

Töö kirjeldus:

Komponendid:

Ühendus skeem:

Programm:

Video: