Praktika 7 Mootor ja kaugusemõõtmise andur
Katse 7.1 “Mootori kasutamine”
Komponendid:
L293D – 1
Mootor – 1
Arendusplaat – 1
Emaplaat – 1
Nupp – 1
Taikisti – 1 (220 Om)
Juhe – 18
Patarei – 1
Skeem:

Kood:
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
}
}
Katse 7.2 “Kauguse mõõtmise anduri kasutamine”
Komponendid:
HC-SR04 – 1
Juhe – 4
Skeem:

Kood:
#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);
}
------------------------------------------------------------------------------------------------------------
#define ECHO_PIN 8
#define TRIG_PIN 7
void setup() {
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(TRIG_PIN,HIGH);
digitalWrite(TRIG_PIN,LOW);
int distance=pulseIn(ECHO_PIN, HIGH)/50;
Serial.println(distance);
}
7.3 Katse “Lihtne parkimissüsteem”
Komponendid:
Mootor – 1
LED – 1
Emaplaat – 1
Buzzer – 1
Juhe – 10
Taikisti – 2 (220 Om)
Skeem:

Kood:
#define ECHO_PIN 7
#define TRIG_PIN 8
int motorPin1=3;
int distance=1;
int LedPin=13;
int duration;
const int buzzerPin = 9;
void setup() {
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(motorPin1,OUTPUT);
pinMode(LedPin,OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(TRIG_PIN,LOW);
delay(200);
digitalWrite(TRIG_PIN,HIGH);
delay(200);
digitalWrite(TRIG_PIN,LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance=duration/58;
Serial.println(distance);
if (distance>50)
{
analogWrite(motorPin1,100);
digitalWrite(LedPin,0);
noTone(buzzerPin);
delay(1000);}
else
{
analogWrite(motorPin1,0);
digitalWrite(LedPin,250);
tone(buzzerPin, 1000);
}
}
Katse 7.4 “Mootiri käivitamine L298N draiveriga”
Komponendid:
L298N – 1
Emaplaat – 1
Patarei – 1
Mootor – 1
Juhe – 12
Skeem:



Kood:
int IN3 = 5; // Input3 подключен к выводу 5
int IN4 = 4;
void setup()
{
pinMode (IN4, OUTPUT);
pinMode (IN3, OUTPUT);
}
void loop()
{
// На пару выводов "IN" поданы разноименные сигналы, мотор вращается
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay(4000);
// На пару выводов "IN" поданы одноименные сигналы, мотор не вращается
digitalWrite (IN4, LOW);
delay(500);
// На пару выводов "IN" поданы разноименные (и уже противоположные относительно первого случая) сигналы, мотор вращается
// относительно первого случая) сигналы, мотор вращается в другую сторону
digitalWrite (IN3, HIGH);
delay(4000);
// Снова на выводах "IN" появились одноименные сигналы, мотор не вращается
digitalWrite (IN3, LOW);
delay(5000);
}
-------------------------------------------------------------------------------------------------------------
int IN3 = 5; // Input3 подключен к выводу 5
int IN4 = 4;
int ENB = 3;
void setup()
{
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop()
{
// На пару выводов "IN" поданы разноименные сигналы, мотор готов к вращению
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
// подаем на вывод ENB управляющий ШИМ сигнал
analogWrite(ENB,55);
delay(2000);
analogWrite(ENB,105);
delay(2000);
analogWrite(ENB,255);
delay(2000);
// Останавливаем мотор, подав на вывод ENB сигнал низкого уровня.
// Состояние выводов "IN" роли не играет.
analogWrite(ENB,0);
delay(5000);
}
-------------------------------------------------------------------------------------------------------------
int IN1 = 5; // Input1 подключен к выводу 5
int IN2 = 4;
int IN3 = 3;
int IN4 = 2;
int ENA = 9;
int ENB = 3;
int i;
void setup()
{
pinMode (EN1, OUTPUT);
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (EN2, OUTPUT);
pinMode (IN4, OUTPUT);
pinMode (IN3, OUTPUT);
}
void loop()
{
digitalWrite (IN2, HIGH);
digitalWrite (IN1, LOW);
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
for (i = 50; i <= 180; ++i)
{
analogWrite(EN1, i);
analogWrite(EN2, i);
delay(30);
}
analogWrite (EN1, 0);
analogWrite (EN2, 0);
delay(500);
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
for (i = 50; i <= 180; ++i)
{
analogWrite(EN1, i);
analogWrite(EN2, i);
delay(30);
}
analogWrite (EN1, 0);
analogWrite (EN2, 0);
delay(8000);
}

