

🧩 7.1 Mootori kasutamine H-sillaga (L293D)
🎯 Eesmärk
- Õppida kontrollima mootori pöörlemissuunda ja kiirust
- Kasutada H-silda (L293D) kahe suuna kontrolliks
- Lisada lülitid ja muuttakisti (potentsiomeeter) kasutajasisenditeks
🔌 Vajalikud komponendid
- Arduino Uno
- L293D või SN754410 (mootoridraiver)
- DC mootor
- 9V patarei + hoidja
- 2x lülitit
- 2x 10 kΩ takistit
- 1x potentsiomeeter
- Jumper-juhtmed, leivaplaat
⚙️ L293D tööpõhimõte (H-sild)
- Võimaldab juhtida pöörlemissuunda: vahetab mootori klemmide polaarsust
- 16 jalga, sh:
1 (Enable1)– lubab mootor1 töö2, 7– juhtsignaalid mootor1 jaoks (INPUT1, INPUT2)3, 6– ühendatud mootoriga (OUTPUT1, OUTPUT2)4, 5, 12, 13– maandus8 (Vs)– mootori toide (kuni 36V)16 (Vss)– kiibi toide (5V)
🧭 Ühendused Arduino ja L293D vahel
| L293D jalg | Funktsioon | Arduino pin |
|---|---|---|
| 1 | Enable1 | D9 |
| 2 | Input1 | D3 |
| 7 | Input2 | D4 |
| 3,6 | Output | mootorile |
| 8 | Vs | +9V patarei |
| 16 | Vss | +5V Arduino |
| 4,5,12,13 | GND | GND |
Lisaks:
- Lüliti 1 → D2 (pöörlemissuund)
- Lüliti 2 → D1 (mootori sisse/välja)
- Potentsiomeeter → A0 (kiirus)
📌 Kokkuvõte
- L293D võimaldab kahesuunalist mootorikontrolli
- Kasutades lüliteid ja potentsiomeetrit, saab luua interaktiivse juhtsüsteemi
- Sobib hästi robotiprojektide ja sõidukite juhtimiseks
Ülesanne 7.1 Rahakarp

#include <Servo.h>
#include <LiquidCrystal.h>
const int trigPin = 12, echoPin = 11;
const int servoPin = 13;
const int redPin = 6, greenPin = 4, bluePin = 5;
LiquidCrystal lcd(8, 9, 0, 1, 2, 3);
Servo lid;
unsigned long lastInsert = 0;
int coinCount = 0;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
lid.attach(servoPin);
closeLid(); // alguses kaan suletud → LED punane
lcd.begin(16, 2);
lcd.print("Tere tulemast!");
delay(1000);
lcd.clear();
lastInsert = millis();
}
void loop() {
int dist = measureDistance();
if (dist < 20) {
openLid();
waitForRemoval();
closeLid();
coinCount++;
lastInsert = millis();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Aitah muundi eest!");
lcd.setCursor(0, 1);
lcd.print("Mundid: ");
lcd.print(coinCount);
delay(1500);
lcd.clear();
}
// uuendame ka ülejäänud ekraani infot
lcd.setCursor(0, 0);
lcd.print("Mundid: ");
lcd.print(coinCount);
lcd.setCursor(0, 1);
unsigned long dt = (millis() - lastInsert) / 1000;
if (dt > 120) {
lcd.print("Ootan kaua... :(");
} else {
lcd.print("Viimati: ");
lcd.print(dt);
lcd.print("s");
}
}
// Ultraheli kauguse mõõt
int measureDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long d = pulseIn(echoPin, HIGH);
return d / 58;
}
// Avab kaane: sinine → roheline
void openLid() {
setColor(0, 0, 255); // sinine (liigub)
lid.write(90);
delay(500); // oota, kuni servo jõuab
setColor(0, 255, 0); // roheline (avatu)
}
// Sulgeb kaane: sinine → punane
void closeLid() {
setColor(0, 0, 255); // sinine (liigub)
lid.write(0);
delay(500);
setColor(255, 0, 0); // punane (suletu)
}
void waitForRemoval() {
while (measureDistance() < 25) {
delay(50);
}
}
// LED-i värvi seadmine
void setColor(int r, int g, int b) {
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
}
🧾 KOKKUVÕTE PROJEKTIST
🎯 Projekti nimi: “Rahakarp” (Ülesanne 7.1)
- Seade tuvastab mündi lähenemise ultrahelianduri (HC-SR04) abil.
- Kui münt on lähedal:
- Servo avab kaane.
- RGB LED näitab olekut (sinine → roheline).
- LCD-ekraan kuvab tänusõnumi ja müntide arvu.
- Kui münt eemaldatakse, kaan sulgub automaatselt.
- Kui kaua pole midagi lisatud, kuvatakse ooteteade.
🛠 Kasutatud komponendid:
- Arduino UNO
- HC-SR04 ultraheli kaugusandur
- Servo mootor (kaane liigutamiseks)
- RGB LED (oleku näitamiseks)
- LCD-ekraan 16×2 (kasutajaliides)
- Takistid ja breadboard
🔍 Funktsioonide seletus
✅ setup()
- Määratakse pinMode’id, algväärtused.
- Servo sulgeb kaane.
- LCD kuvab tervituse: „Tere tulemast!“
🔁 loop()
- Mõõdab pidevalt kaugust.
- Kui objekt on lähemal kui 20 cm:
- Avab kaane, ootab, kuni münt eemaldatakse, sulgeb kaane.
- Suurendab müntide loendurit.
- Kuvab tänusõnumi: „Aitäh mündi eest!“
- Kuvab pidevalt:
- Müntide arv.
- Aeg viimasest sisestusest.
📏 measureDistance()
- Trigger ja echo-pulss kauguse mõõtmiseks.
- Tagastab kauguse sentimeetrites.
🔓 openLid() ja closeLid()
- Servo liigub vastavalt:
- Sinine valgus = liikumine.
- Roheline = avatud.
- Punane = suletud.
⏳ waitForRemoval()
- Ootab, kuni münt eemaldatakse (kaugus > 25 cm).
🎨 setColor(r, g, b)
- Muudab RGB LEDi värvi vastavalt olukorrale.
🧠 Järeldus
See projekt on automaatne rahakarp:
- Tuvastab mündi olemasolu.
- Avab/sulgub automaatselt.
- Kuvab kasutajale infot ja loendab mündid.
Seega sobib see täielikult Ülesanne 7.1: Rahakarp alla.

