7 Experement

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: