У Wokwi замість драйвера й мотора — світлодіоди з резисторами 220 Ом. Батарея, драйвер і мотор потрібні лише на столі.
4 кроки · у власному темпі
1. Три швидкості
Пін PWMA вмикає й вимикає мотор сотні разів за секунду (ШІМ). analogWrite(PWMA, 0) — стоп, 255 — повна подача. Чим більше число, тим довшу частку часу мотор отримує енергію.
Відкрий новий проєкт Arduino Uno у Wokwi.
Заміни diagram.json файлом кроку.
Заміни sketch.ino скетчем кроку.
Натисни ▶.
Дивись на яскравість помаранчевого PWMA і числа в моніторі.
Підключення
Контакт
Куди з’єднати
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 byte TEST_FROM = 40; // Перше значення перевірки
const byte TEST_TO = 160; // Останнє значення перевірки
const byte TEST_STEP = 10;
const unsigned long HOLD_MS = 1500; // Час на спостереження за колесом
void setup() {
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
Serial.begin(115200);
}
void loop() {
for (int speed = TEST_FROM; speed <= TEST_TO; speed += TEST_STEP) {
analogWrite(PWMA, speed);
Serial.print("PWM ");
Serial.println(speed);
delay(HOLD_MS);
}
analogWrite(PWMA, 0);
Serial.println("Stop. Next test in 3 s");
delay(3000);
}
Очікуваний результат
На малих значеннях вал стоїть або гуде, далі починає крутитися. Твій поріг записаний.
Перевір себе
Повтори тест двічі: поріг має бути майже однаковим.
Що можна змінити
Завантаж скетч кроку 2 і порівняй плавний розгін на справжньому моторі з різким стартом з уроку 17.1.
Якщо не працює
Мотор не крутиться навіть на 160 — перевір вимикач батареї і STBY. Гудіння без руху на малих PWM — нормально, але довше 2 с не тримай: зменш HOLD_MS до 1000.