3DИнструкции к проектам
Робот, едущий по линии
Два датчика KY-033 смотрят на пол: куда уходит чёрная линия, туда и поворачивает робот. Наклейте чёрную изоленту на белую бумагу — трасса готова.
- Сложность
- Легко
- Время
- ~120 min
- Детали
- деталей: 12
- Шаг за шагом
- шагов: 4
- Работать с ИК-датчиком отражения
- Простой алгоритм управления
- Настраивать датчик (потенциометр)
Детали
- 1 × Arduino UNO R3 (ATmega328P, SMD)45 000 сум
- 1 × Шасси робота 2WD (пластиковая платформа)30 000 сум
- 2 × Датчик слежения за линией KY-033 (TCRT5000)16 000 сум
- 1 × Драйвер моторов L298N с двойным H-мостом20 000 сум
- 2 × Редукторный мотор TT с колесом (жёлтый, 3–6В)30 000 сум
- 1 × Колесо 360°: шаровая опора / Mecanum12 000 сум
- 2 × Литиевая батарея (18650 / LiPo)30 000 сум
- 1 × Батарейный отсек для 186506 000 сум
- 1 × Провода-перемычки 20 см, папа-мама (40 шт.)12 000 сум
Ещё понадобится
- — Компьютер и Arduino IDE (бесплатно на arduino.cc)
- — USB-кабель для UNO (вариант UNO SMD «+ USB-кабель»)
- — Небольшая крестовая отвёртка
- — Чёрная изолента и белая бумага или картон
Шаг за шагом
- 01
Соберите машинку
Шасси, моторы, L298N и питание — как в инструкции «Робот-машинка».
- 02
Установите датчики
Закрепите оба KY-033 спереди, датчиками вниз, на высоте 5–10 мм от пола и на расстоянии чуть шире линии (2–3 см) друг от друга.
- 03
Подключите и настройте
OUT левого датчика → D12, правого → D11, VCC → 5V, GND → GND. Подайте питание и подстройте потенциометры: над белым светодиод горит, над чёрной линией гаснет.
- 04
Загрузите код и проверьте на трассе
Поставьте робота так, чтобы линия была между датчиками. Если вылетает на поворотах, уменьшите SPEED.
Подключение
- Питание (+)
- Земля (−)
- Сигнальный пин
- Шина I²C / SPI
- L298NENA→UNOD5 снимите перемычку с ENA
- L298NIN1→UNOD7
- L298NIN2→UNOD8
- L298NIN3→UNOD2
- L298NIN4→UNOD4
- L298NENB→UNOD6 снимите перемычку с ENB
- L298NGND→UNOGND общая земля — обязательно
- L298N5V→UNO5V питает UNO от драйвера
- L298NOUT1OUT2→Левый мотор
- L298NOUT3OUT4→Правый мотор
- Аккумулятор+(2×18650)→L298N12V
- Аккумулятор−→L298NGND
- KY-033левыйOUT→UNOD12
- KY-033правыйOUT→UNOD11
- KY-033VCC→UNO5V
- KY-033GND→UNOGND
Код
sketch.ino
// моторы (L298N)
const int ENA = 5, IN1 = 7, IN2 = 8; // левый
const int ENB = 6, IN3 = 2, IN4 = 4; // правый
void motors(int left, int right) { // -255 … 255
digitalWrite(IN1, left >= 0); digitalWrite(IN2, left < 0);
digitalWrite(IN3, right >= 0); digitalWrite(IN4, right < 0);
analogWrite(ENA, abs(left)); analogWrite(ENB, abs(right));
}
void setupMotors() {
int pins[] = {ENA, IN1, IN2, ENB, IN3, IN4};
for (int p : pins) pinMode(p, OUTPUT);
motors(0, 0);
}
const int LEFT = 12, RIGHT = 11; // HIGH = над чёрной линией
const int SPEED = 150, TURN = 170;
void setup() {
setupMotors();
pinMode(LEFT, INPUT); pinMode(RIGHT, INPUT);
delay(1500);
}
void loop() {
bool l = digitalRead(LEFT), r = digitalRead(RIGHT);
if (!l && !r) motors(SPEED, SPEED); // линия между датчиками
else if (l && !r) motors(-TURN / 2, TURN); // линия под левым: поворот налево
else if (!l && r) motors(TURN, -TURN / 2); // под правым: поворот направо
else motors(0, 0); // оба на чёрном: перекрёсток или финиш
}Если что-то не работает
- Робот не видит линию: датчики слишком высоко — опустите до 5–10 мм и перенастройте потенциометр.
- Поворачивает не в ту сторону: поменяйте местами провода датчиков (D12/D11).
- Не работает на солнце: ИК-датчики не любят яркий свет — испытывайте в помещении.
Что дальше
- Добавьте третий датчик для плавных поворотов
- Освойте ПИД-регулятор — быстрее и точнее

