7.1 Katse Mootori kasutamine
Töö kirjeldus:
Mootori keeramine
Komponendid:
L293D
Patarei 9V
Nupp
Takisti 220 Om
Juhtmed 18 tk
Ühendus skeem:

Programm:
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:
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
#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
#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:

Seletus
LCD ekraan näitab rõõmus näö kui näeb objekti, kui objekti pole siis tal on pokerface
Program:
#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: