Rahakarp
Töö kirjeldus
Koodi kirjutamine, virtuaalse skeemi loomine koodi testimiseks ja valmis tulemus päris skeemil.
Kasutatud komponeendid
- Adruino Uno R3 – 1
- Breadboard Small – 1
- Servo mootor — 1
- LED — 1 (RGB)
- Taikisti — 4 (220 Om)
- Juhe — 23
- LCD ekraan — 1
- Potentsiomeeter — 1
- HC-SR04 — 1
Töö protsess
Mündi sisestamisel avaneb mündipõrsa kaas, ekraanile ilmub teade „Aitäh mündi eest“ ja kaas sulgub seejärel. Tavaliselt kuvatakse ekraanil müntide arv. Pika kasutuspausi korral kuvatakse teade tegevusetusest. LED-tuli põleb siniselt tavarežiimis, roheliselt mündi sisestamisel ja punaselt pika tegevusetuse korral.
Ühendamise skeem (www.tinkercad.com)

Programm/kood kommentaridega
#include <Servo.h>
#include <LiquidCrystal.h>
#define TRIG_PIN 10
#define ECHO_PIN 9
const int RED_LED = 6;
const int GREEN_LED = 7;
const int BLUE_LED = 8;
Servo servo;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int coinCount = 0;
unsigned long lastCoinTime = 0;
unsigned long waitThreshold = 15000;
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RED_LED, OUTPUT);
pinMode(GREEN_LED, OUTPUT);
pinMode(BLUE_LED, OUTPUT);
servo.attach(13);
servo.write(0);
lcd.begin(16, 2);
lcd.print("Tere tulemast!");
delay(2000);
lcd.clear();
updateLCD();
}
long readDistance() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void openLid() {
servo.write(90);
delay(5000);
servo.write(0);
}
void setColor(bool r, bool g, bool b) {
digitalWrite(RED_LED, !r);
digitalWrite(GREEN_LED, !g);
digitalWrite(BLUE_LED, !b);
}
void updateLCD() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mundid: ");
lcd.print(coinCount);
}
void loop() {
long distance = readDistance();
if (distance > 3 && distance < 15) {
openLid();
coinCount++;
lastCoinTime = millis();
setColor(false, true, false);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Aitah! :)");
lcd.setCursor(0, 1);
lcd.print("Mundid: ");
lcd.print(coinCount);
delay(3000);
updateLCD();
}
if (millis() - lastCoinTime > waitThreshold) {
setColor(true, false, false);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ootan kaua... :(");
lcd.setCursor(0, 1);
lcd.print("Mundid: ");
lcd.print(coinCount);
delay(3000);
updateLCD();
lastCoinTime = millis();
} else {
setColor(false, false, true);
}
delay(300);
}
Video
https://drive.google.com/file/d/1vAPQMYaU0MqEryjNnIKj_B5PQt6BnEk6/view?usp=sharing
Kasutamisvõimalused tavaelus.
- Parkimissüsteem
- Kohaloleku kontroll

