Спочатку команда, потім механізм
Як це працює
Дві окремі перевірки
Спершу перевіряємо, чи програма видає правильні команди. Потім — чи механізм може виконати їх без упору. Важіль у повітрі показує логіку, але ще не доводить, що серво підніме кришку.
Петля несе кришку
Кришка спирається на власну петлю, а серво рухає її через тягу. Довжина тяги й точки кріплення впливають на потрібне зусилля та кути. Команди 60 і 120 поки лише дві цілі для вільного серво; готовій механіці можуть знадобитися інші перевірені значення.
Зроби
- Підготуй Uno, серво, кнопку, HC-SR04, макетну плату та джерело 5 V.
- Почни без кришки і тяги.
- Повтори центральне положення серво.
Очікуваний результат
Електроніку можна дослідити до виготовлення кріплення.
Що можна змінити
Для фізичної кришки потрібні перевірена петля, легка кришка і кріплення. До їх готовності демонструй положення важелем.
Як запустити у Wokwi або на платі
У Wokwi: відкрий новий Arduino Uno, перенеси diagram.json, sketch/sketch.ino та libraries.txt з ZIP потрібного кроку у відповідні вкладки, натисни ▶. На справжній платі спочатку перевір підключення з учителем. Кожен код замінює весь попередній скетч.
Схема підключення — відкрити
Підключення справжнього комплекту
На макетній платі верхня + — тільки джерело серво, нижня + — тільки Uno. Об’єднуємо мінусові шини. Перевір розриви шин; за потреби з’єднай половини тієї самої шини. У Wokwi верхня + живиться від Uno лише як спрощення. На справжній платі цей дріт заміни на +5 V окремого джерела; його мінус додай на верхню −.
Код цього кроку — відкрити й скопіювати
Повний код кроку 1
#include <Arduino.h>
#include <Servo.h>
const byte SERVO_PIN = 9;
const int ANGLE = 90; // Початковий кут без стріли
Servo arm;
void setup() {
arm.write(ANGLE); // Задаємо початкове положення
arm.attach(SERVO_PIN); // Сигнал керування через D9
}
void loop() {
}
Крок 1: код · 1
#include <Arduino.h>
#include <Servo.h>
const byte SERVO_PIN = 9;
const int ANGLE = 90; // Початковий кут без стріли
Servo arm;
void setup() {
arm.write(ANGLE); // Задаємо початкове положення
arm.attach(SERVO_PIN); // Сигнал керування через D9
}
void loop() {
}