У Wokwi замість драйвера й мотора — світлодіоди з резисторами 220 Ом. Батарея, драйвер і мотор потрібні лише на столі.
4 кроки · у власному темпі
1. Вмикаємо й вимикаємо мотор
Пін Arduino дає надто малий струм для мотора. Драйвер TB6612 бере енергію від батареї, а від Arduino отримує лише команди: AIN1, AIN2 і PWMA. У Wokwi драйвера немає, тому ці команди показують світлодіоди.
Відкрий новий проєкт Arduino Uno у Wokwi.
Заміни diagram.json файлом кроку.
Заміни sketch.ino скетчем кроку.
Натисни ▶.
Дивись на світлодіоди й монітор порту.
Підключення
Контакт
Куди з’єднати
Uno D12
LED AIN1 (зелений) через резистор 220 Ом
Uno D11
LED AIN2 (синій) через резистор 220 Ом
Uno D10
LED PWMA (помаранчевий) через резистор 220 Ом
Короткі ніжки LED
Лінія «−» макетки
Лінія «−» макетки
Uno GND
Файли для Wokwi
Відкрий новий Arduino Uno. Заміни sketch.ino і diagram.json файлами кроку. Бібліотеки не потрібні. Натисни ▶.
#include <Arduino.h>
const byte AIN1 = 12; // Напрямок: вперед
const byte AIN2 = 11; // Напрямок: назад
const byte PWMA = 10; // Дозвіл і швидкість мотора A
const unsigned long RUN_MS = 2000; // Скільки мотор працює
const unsigned long PAUSE_MS = 2000; // Скільки мотор стоїть
void setup() {
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
digitalWrite(PWMA, HIGH); // Повна подача, без регулювання швидкості
Serial.begin(115200);
}
void loop() {
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
Serial.println("Motor ON");
delay(RUN_MS);
digitalWrite(AIN1, LOW); // Обидва входи LOW — мотор вимкнено
digitalWrite(AIN2, LOW);
Serial.println("Motor OFF");
delay(PAUSE_MS);
}
Очікуваний результат
Зелений AIN1 і помаранчевий PWMA світять 2 с, у моніторі — Motor ON. Потім 2 с світить лише PWMA, у моніторі — Motor OFF.
Перевір себе
Мотор крутиться, коли AIN1 — HIGH, AIN2 — LOW, PWMA — HIGH. Обидва AIN — LOW: мотор вимкнено.
Що можна змінити
RUN_MS і PAUSE_MS: зроби роботу 1 с, а паузу 3 с.
Якщо не працює
Світлодіоди не світять — перевір, що вставлена схема кроку, а не стандартна. Монітор порту порожній — потрібна швидкість 115200.
2. Змінюємо напрямок
Напрямок задають два входи: AIN1 HIGH і AIN2 LOW — вперед, навпаки — назад. Перед зміною напрямку мотор зупиняємо: редуктор і драйвер так працюють м’якше.
Заміни весь код скетчем кроку 2.
Запусти симуляцію.
Порівняй світлодіоди під час Forward і Backward.
Підключення
Контакт
Куди з’єднати
Uno D12
LED AIN1 (зелений) через резистор 220 Ом
Uno D11
LED AIN2 (синій) через резистор 220 Ом
Uno D10
LED PWMA (помаранчевий) через резистор 220 Ом
Короткі ніжки LED
Лінія «−» макетки
Лінія «−» макетки
Uno GND
Файли для Wokwi
Відкрий новий Arduino Uno. Заміни sketch.ino і diagram.json файлами кроку. Бібліотеки не потрібні. Натисни ▶.
#include <Arduino.h>
const byte AIN1 = 12; // Напрямок: вперед
const byte AIN2 = 11; // Напрямок: назад
const byte PWMA = 10; // Дозвіл і швидкість мотора A
const unsigned long RUN_MS = 2000; // Рух в один бік
const unsigned long STOP_MS = 1000; // Пауза перед зміною напрямку
void setup() {
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
digitalWrite(PWMA, HIGH);
Serial.begin(115200);
}
void loop() {
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
Serial.println("Forward");
delay(RUN_MS);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
Serial.println("Stop");
delay(STOP_MS);
digitalWrite(AIN1, LOW); // Входи навпаки — струм іде у зворотний бік
digitalWrite(AIN2, HIGH);
Serial.println("Backward");
delay(RUN_MS);
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, LOW);
Serial.println("Stop");
delay(STOP_MS);
}
Очікуваний результат
Forward — світить зелений AIN1. Stop — AIN1 і AIN2 не світять. Backward — світить синій AIN2. PWMA світить весь час.
Перевір себе
AIN1 і AIN2 ніколи не світять разом.
Що можна змінити
STOP_MS: зменш до 300 мс. На справжньому моторі порівняєш, наскільки різко він розвертається.
Якщо не працює
Під час Backward світить зелений — перевір, що там AIN1 LOW і AIN2 HIGH.
3. Гальмо і вільна зупинка
Драйвер зупиняє мотор двома способами. Обидва входи LOW — вільна зупинка (coast): мотор відключено, колесо ще докручується. Обидва HIGH — гальмо (brake): драйвер замикає виводи мотора, колесо зупиняється швидше. Кожна дія тепер — окрема функція.
Заміни код скетчем кроку 3.
Запусти симуляцію.
Знайди в моніторі Coast і Brake.
Порівняй світлодіоди під час Coast і Brake.
Підключення
Контакт
Куди з’єднати
Uno D12
LED AIN1 (зелений) через резистор 220 Ом
Uno D11
LED AIN2 (синій) через резистор 220 Ом
Uno D10
LED PWMA (помаранчевий) через резистор 220 Ом
Короткі ніжки LED
Лінія «−» макетки
Лінія «−» макетки
Uno GND
Файли для Wokwi
Відкрий новий Arduino Uno. Заміни sketch.ino і diagram.json файлами кроку. Бібліотеки не потрібні. Натисни ▶.
Coast — AIN1 і AIN2 не світять. Brake — світять обидва. Різницю в зупинці колеса видно лише на справжньому моторі.
Перевір себе
Назви функцію, яку викличеш, щоб робот зупинився якнайшвидше.
Що можна змінити
Зміни порядок у loop(): після forward() виклич brake(), а після backward() — coast().
Якщо не працює
Помилка «was not declared» — функція написана з помилкою в назві або нижче за місце виклику.
4. Перевіряємо на справжньому моторі
Тепер замість світлодіодів — драйвер і мотор. Мотор живиться від батареї 2×18650, Arduino — від USB комп’ютера. GND у них спільний, інакше драйвер не розпізнає команд.
Вимкни вимикач батареї.
Закріпи мотор на столі.
З’єднай усе за таблицею, батарею — останньою.
Перевір: «+» батареї йде на VM, а не на VCC.
Підключи Uno до комп’ютера й завантаж скетч.
Увімкни вимикач батареї.
Порівняй зупинку вала після Coast і після Brake.
Вимкни батарею.
Підключення
Контакт
Куди з’єднати
«+» батареї 2×18650 через вимикач
TB6612 VM
«−» батареї
TB6612 GND
Uno 5V
TB6612 VCC
Uno GND
TB6612 GND — спільна земля
TB6612 STBY
TB6612 VCC — дозвіл роботи
Uno D12
TB6612 AIN1
Uno D11
TB6612 AIN2
Uno D10
TB6612 PWMA
TB6612 AO1
Мотор, контакт 1
TB6612 AO2
Мотор, контакт 2
Скетч для справжньої плати
Це той самий код, що й у попередньому кроці. Відкрий його в Arduino IDE, вибери плату Arduino Uno і завантаж.
Вал крутиться 2 с в один бік і плавно зупиняється (Coast), крутиться 2 с в інший бік і зупиняється різко (Brake).
Перевір себе
Вимкни батарею: Uno працює, світлодіод TX блимає, але мотор стоїть. Енергія для мотора йде лише від батареї.
Що можна змінити
При вимкненій батареї поміняй місцями дроти мотора на AO1 і AO2: Forward стане обертанням в інший бік.
Якщо не працює
Мотор не крутиться — перевір вимикач батареї, з’єднання STBY з VCC і спільний GND. Драйвер гарячий або мотор гуде без руху — одразу вимкни батарею й звір підключення VM, VCC і GND з таблицею.