7.1 Katse Mootori kasutamine
Komponeendid:
L293D 1tk
Hobby Gearmotor 1 tk
220 om takistid 1tk
1 pushbutton
9V battery
18 traati
Arduino Uno r3
Arendus Plaat
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
}
}
komponendid:
L293D
Arduino Uno r3
Hobby Gearmotor 1 tk
Arendus Plaat
2 pushbutton
10kOhm takistid 2tk
9V battery
23 traati
potentsiomeeter
Skeem:

kood:
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
}
}
Katse 7.2
Vajalikud komponendid:
Ultrasonic Distance Sensor
4 traati
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() {
digitalWrite(TRIG_PIN,HIGH);
digitalWrite(TRIG_PIN,LOW);
int distance=pulseIn(ECHO_PIN, HIGH)/50;
Serial.println(distance);
}
-----------------------------------------------------------------------------------------
#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);
}
Katse 7.1
Komponendid:
Arduino UNO plaat (1tk)
Arendusplaat (1tk)
Ultraheli kaugusandur (1tk),
Servo (1tk),
LED(red, green )
Juhtmed (19tk)
Tööprotsess:
kui tood käe anduri juurde, süttib roheline tuli ja servomootor pöörleb 90 kraadi; käe eemaldamisel süttib punane tuli ja servomootor pöörleb 0-ni
Skeem:

Kood:
include Servo servoMotor; int trigPin = 7; int echoPin = 6; int greenLedPin = 5; int redLedPin = 3; void setup() { servoMotor.attach(9); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(greenLedPin, OUTPUT); pinMode(redLedPin, OUTPUT); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration * 0.034 / 2; if (distance >= 3 && distance <= 10) { servoMotor.write(90); digitalWrite(greenLedPin, HIGH); digitalWrite(redLedPin, LOW); } else { servoMotor.write(0); digitalWrite(greenLedPin, LOW); digitalWrite(redLedPin, HIGH); } delay(100); }
Reaalse elu rakendused:
Robotitehnika: Servomootorid liigutavad roboti osi, ultrahelidetektorid mõõdavad takistuste kaugust.
Autod: Servomootorid juhivad peegleid, ultrahelidetektorid aitavad parkimisel.
Koduautomaatika: Servomootorid juhivad koduseadmeid, ultrahelidetektorid tuvastavad inimeste kohaloleku.
Tööstusautomaatika: Servomootorid juhivad roboteid tootmises, ultrahelidetektorid paigutavad objekte liinil.
Uued funktsioonid:
pulseIn(): See funktsioon mõõdab impulsi kestust määratud viigul.
delayMicroseconds(): See funktsioon peatab programmi täitmise määratud arvu sekundite ajaks.
Video: