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:

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: