1. Название работы

Двигатель постоянного тока, L293D и Ультразвуковые дальномеры

2. Цель работы

Целью работы является приобретение практических навыков

3. Задачи работы

4. Состав лабораторного комплекта

Это изображение имеет пустой атрибут alt; его имя файла - 10pcs-Ultrasonic-Module-HC-SR04-Distance-Measuring-Transducer-Sensor-HC-SR04-HCSR04-1.jpg_960x960-1.jpg
HC-SR04 (2шт.)DC-моторL293D или L298NArduino Nano

!!! Внимание !!!

При использовании аналога Arduino Wavgat предварительно следует установить на компьютер соответствующий драйвер.
Ссылка 1. Ссылка 2

и драйвер USB порта для CH341
Ссылка

Схема подключения
L293DHC-SR04 (1)HC-SR04(2)
1 -> Arduino D9
2 -> Arduino D3
3 -> DC-мотор 1
4 -> GND
5 -> GND
6 -> DC-мотор 2
7 -> Arduino D2
8 -> +5v
16 -> +5v
15 ->
14 ->
13 ->
12 ->
11 ->
10 ->
9 ->
VCC -> +5v
Trig -> Arduino D6
Echo -> Arduino D10
GND ->GND
VCC -> +5v
Trig -> Arduino D5
Echo -> Arduino D11
GND ->GND

5. Исходные данные и материалы

Статья, посвященная работе с ультразвуковым датчиком HC-SR04

Ссылка 1, Статья 2, посвященная работе с L293D

Пример кода работы с L293D

// Motor A connections
int enA = 9;
int in1 = 3;
int in2 = 2;


void setup() {
	// Set all the motor control pins to outputs
	pinMode(enA, OUTPUT);
	pinMode(in1, OUTPUT);
	pinMode(in2, OUTPUT);

	
	// Turn off motors - Initial state
	digitalWrite(in1, LOW);
	digitalWrite(in2, LOW);
}

void loop() {
	directionControl();
	delay(1000);
	speedControl();
	delay(1000);
}

// This function lets you control spinning direction of motors
void directionControl() {
	// Set motors to maximum speed
	// For PWM maximum possible values are 0 to 255
	analogWrite(enA, 255);

	// Turn on motor 
	digitalWrite(in1, HIGH);
	digitalWrite(in2, LOW);
	delay(2000);
	
	// Now change motor directions
	digitalWrite(in1, LOW);
	digitalWrite(in2, HIGH);
	delay(2000);
	
	// Turn off motors
	digitalWrite(in1, LOW);
	digitalWrite(in2, LOW);
}

// This function lets you control speed of the motors
void speedControl() {
	// Turn on motors
	digitalWrite(in1, LOW);
	digitalWrite(in2, HIGH);
	
	// Accelerate from zero to maximum speed
	for (int i = 0; i < 256; i++) {
		analogWrite(enA, i);
		delay(20);
	}
	
	// Decelerate from maximum speed to zero
	for (int i = 255; i >= 0; --i) {
		analogWrite(enA, i);
		delay(20);
	}
	
	// Now turn off motors
	digitalWrite(in1, LOW);
	digitalWrite(in2, LOW);
}

6. Задания к лабораторным работам

  1. После запуска робот стоит неподвижно.
  2. При получении сигнала от датчика HC-SR04 – движется 0,5 метра в направлении противоположном датчику.
  3. По окончании движения стоит.
  4. Если при движении от препятствия робот обнаруживает другое препятствие, то он должен разместить себя на одинаковых расстояниях от обоих препятствий.
  5. * Если через минуту ничего не происходит – движется обратно.
Модель робота №1
Модель робота №2

7. Полученные результаты

Результатом выполнения каждого задания является:

  1. Блок-схема алгоритма работы программы в графическом редакторе (yEd).
  2. Код программы и результаты ее тестирования на лабораторном комплекте в среде разработки Arduino IDE.
  3. Отчет по лабораторной работе.

8. Форма и условия сдачи/приема работы.

Каждый этап принимается отдельно.

Задания выполняются последовательно, к выполнению следующего задания ученики приступают только после сдачи предыдущего.

Для сдачи каждого задания создается отчет по лабораторной работе в виде HTML-документа, сверстанный с помощью HTML и CSS по следующему макету:

Каждое задание оформляется отдельным документом. Все HTML-отчеты с графическими файлами объединяются в архив и передаются преподавателю указанным способом.