Praktika 7 Mootor ja kaugusemõõtmise andur

7.1 Katse Mootori kasutamine

Eesmärk

Eelmises projektis kasutasime transistori, et kontrollida mootorit, millega suutsime kontrollida vaid mootori kiirust. Selles projektis võtame kasutusele H-silla, et saaksime kontrollida mootori pöörlemissuunda. Kuna tegemist on suure sammuga robotiehitusele, siis lisame skeemi lüliti, mis paneb mootori tööle, lüliti mis muudab pöörlemissuunda ja muuttakisti mootori kiiruse muutmiseks.

7.2 Katse Kauguse mõõtmise anduri kasutamine

-------------------------------------------------------------------------------------------------------------
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 
 
 } 
 
} 

Ultrahelianduri HC-SR04 ühendamine Arduinoga

-------------------------------------------------------------------------------------------------------------
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 
 
 } 
 
} 
7.3 Katse Lihtne parkimissüsteem

Ultraheli andur, Mootor, LED, Buzzer

#define ECHO_PIN 7         // Ultrahelianduri vastuvõtja pin
#define TRIG_PIN 8         // Ultrahelianduri saatja pin
int motorPin1 = 3;         // Mootori juhtimise pin
int distance = 1;          // Kauguse muutuja
int LedPin = 13;           // LEDi pin
int duration;              // Signaali kestuse muutuja
const int buzzerPin = 9;   // Summeri (buzzer) pin
 
void setup() {
  pinMode(ECHO_PIN, INPUT);       // Vastuvõtja sisendina
  pinMode(TRIG_PIN, OUTPUT);      // Saatja väljundina
  pinMode(motorPin1, OUTPUT);     // Mootori pin väljundina
  pinMode(LedPin, OUTPUT);        // LEDi pin väljundina
  pinMode(buzzerPin, OUTPUT);     // Summeri pin väljundina
  Serial.begin(9600);             // Seriaalühenduse algus
}
 
void loop() {
  digitalWrite(TRIG_PIN, LOW);    // Lülita saatja välja
  delay(200);                     
  digitalWrite(TRIG_PIN, HIGH);   // Lülita saatja sisse
  delay(200);                     
  digitalWrite(TRIG_PIN, LOW);    // Lülita saatja välja
  duration = pulseIn(ECHO_PIN, HIGH); // Mõõda tagastusaeg
  distance = duration / 58;           // Arvuta kaugus cm-des
  Serial.println(distance);           // Väljasta kaugus
 
  if (distance > 50) {            // Kui kaugus on üle 50 cm
    analogWrite(motorPin1, 100); // Käivita mootor
    digitalWrite(LedPin, 0);     // LED kustub
    noTone(buzzerPin);           // Summer vaikib
    delay(1000);                 
  } else {                        // Kui objekt on lähemal
    analogWrite(motorPin1, 0);   // Mootor seiskub
    digitalWrite(LedPin, 250);   // LED süttib
    tone(buzzerPin, 1000);       // Summer teeb heli
  }
}