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