Töö kirjeldus:
Mootori keeramine
Skeem:

Kood:
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
}
}
Töö kirjeldus:
Mootori keeramine
Skeem:

Kood:
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 Robootika Katse Kauguse mõõtmise anduri kasutamine
Süsteemi Ülevaade:
Kauguse mõõtmise anduri abil saame mõõta objekti kaugust ja kuvada selle väärtuse seriaalmonitooril. See võimaldab luua aluse, mis võib reageerida erinevatele kaugusmõõtmistele.
Skeem:

Kood 1.0:
#define ECHO_PIN 8
#define TRIG_PIN 7
void setup() {
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(TRIG_PIN,HIGH);
digitalWrite(TRIG_PIN,LOW);
int distance=pulseIn(ECHO_PIN, HIGH)/50;
Serial.println(distance);
}
Kood 2.0:
#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);
}
7.3 Katse lihtne parkimissüsteem
Süsteemi Ülevaade:
Lihtne parkimissüsteem, mis kasutab kaugusandurit ja mootoreid, et juhendada sõidukit. Kui objekt on liiga lähedal, lülitatakse mootor välja ja aktiveeritakse LED ja häälsignaal.
Skeem:

Kood:
#define ECHO_PIN 7
#define TRIG_PIN 8
int motorPin1=3;
int distance=1;
int LedPin=13;
int duration;
const int buzzerPin = 9;
void setup() {
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(motorPin1,OUTPUT);
pinMode(LedPin,OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(TRIG_PIN,LOW);
delay(200);
digitalWrite(TRIG_PIN,HIGH);
delay(200);
digitalWrite(TRIG_PIN,LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance=duration/58;
Serial.println(distance);
if (distance>50)
{
analogWrite(motorPin1,100);
digitalWrite(LedPin,0);
noTone(buzzerPin);
delay(1000);}
else
{
analogWrite(motorPin1,0);
digitalWrite(LedPin,250);
tone(buzzerPin, 1000);
}
}
Ülesanne 7.1 Rahakarp või Prügikast. Töö paarides.
Töö kirjeldus:
Robootika – Süsteem töö on selline, liikumisandur (notsu pank) tuvastab liikumise ja avab servomootori abil mündipesa. See pöörleb 180 kraadi ja avab sel viisil notsu panga kringi. Kui kaugus on suurem kui 20 cm, naaseb servomootor algasendisse 0 kraadi.
Kasutatud komponendid:
- kaugusandur
- Servo
- Takisti (9tk)
Skeem:
Skeem sisaldab kaugusanduri ja servomootori ühendusi Arduino plaatide külge. Kaugusanduri TRIG ja ECHO pinnd ühendatakse vastavalt Arduino digitaalsete väljundite ja sisendite külge.

Kood:
#include <Servo.h>
#define ECHO_PIN 9
#define TRIG_PIN 8
int ServoPin = 11;
Servo servo;
void setup()
{
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
servo.attach(ServoPin);
Serial.begin(9600);
servo.write(0);
}
void loop()
{
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int distance = pulseIn(ECHO_PIN, HIGH) / 58;
if (distance < 50)
{
servo.write(180);
delay(5000);
servo.write(0);
delay(5000); // Ждем еще 5 секунд
}
else if (distance > 50)
{
servo.write(0); // Если расстояние больше 20 см, поворачиваем сервомотор в исходное положение (0 градусов)
}
}
Video:
Projekti video näitab, kuidas süsteem töötab ja illustreerib avamise protsessi.
https://drive.google.com/drive/u/0/folders/1q0O4R97KnzTNurpSHmaj7G9Bc_DKST5P
Uued funktsioonid:
servo.attach() — Ühendab servo mootori antud piniga.
pulseIn() – Loeb pulssi (kas kõrge või madal) pin.
Servo.write() – Kirjutab servo väärtuse, kontrollides võlli vastavalt.
Kokkuvõte
Need projektid näitavad, kuidas kasutada erinevaid andureid ja mootoreid, et luua funktsionaalseid roboteid ja automaatika lahendusi. Iga projekt toob esile erinevaid komponente ja nende funktsionaalsust, aidates mõista, kuidas elektroonika ja programmeerimine töötavad koos. Kui sul on küsimusi või vajad abi, küsi julgelt!