7.1 Katse Mootori 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
}
}

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
}
}
7.2 Katse Kauguse mõõtmise anduri kasutamine

#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 Lihtne parkimissüsteem

code:
#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);
}
}
Ülesanne 7.1 Rahakarp
Koostis:
- Ultraheli kaugusandur,
- Servo,
- ARDUINO UNO plaat
- Paber või papp,
- 9 juhtmed
Eesmärk: Loo automatiseeritud hoiupõrsasprojekt
Kirjeldus: Tänu liikumisandurile tuvastab hoiupõrsas liikumise ja avab servomootori abil mündipesa. Näiteks teeb ta suu lahti või ulatab käe.
skeem:

code:
#include <Servo.h>
#define ECHO_PIN 9
#define TRIG_PIN 8
int ServoPin = 11;
Servo servo;
void setup()
{
pinMode(ECHO_PIN, INPUT); // Устанавливаем режим входа для ECHO_PIN
pinMode(TRIG_PIN, OUTPUT); // Устанавливаем режим выхода для TRIG_PIN
servo.attach(ServoPin); // Подключаем сервомотор к пину ServoPin
Serial.begin(9600); // Инициализируем последовательную связь с скоростью 9600 бит/сек
servo.write(0); // Устанавливаем сервомотор в исходное положение (0 градусов)
}
void loop()
{
digitalWrite(TRIG_PIN, HIGH); // Посылаем импульс на TRIG_PIN
delayMicroseconds(10); // Задержка 10 микросекунд
digitalWrite(TRIG_PIN, LOW); // Завершаем импульс на TRIG_PIN
int distance = pulseIn(ECHO_PIN, HIGH) / 58; // Измеряем расстояние в сантиметрах, используя длительность импульса на ECHO_PIN и деление на 58
if (distance < 50)
{
servo.write(180); // Если расстояние меньше 50 см, поворачиваем сервомотор на 180 градусов
delay(5000); // Ждем 5 секунд
servo.write(0); // Возвращаем сервомотор в исходное положение (0 градусов)
delay(5000); // Ждем еще 5 секунд
}
else if (distance > 50)
{
servo.write(0); // Если расстояние больше 50 см, поворачиваем сервомотор в исходное положение (0 градусов)
}
}
Video
Kasutage liikumisandurit:
Alarmid
Kaamerad
Uksed
Parkla
Kasutanud funktsioonid:
pinMode()
— Määrab pinile töörežiimi (sisend või väljund) antud pinile.servo.attach()
— Ühendab servo mootori antud piniga.Serial.begin()
— Algatab järjestikuse suhtluse kiirusega 9600 bitti sekundis.