Щоб краще продемонструвати алгоритм отримання даних з бази ми будемо використовувати сервопривід.
Сервопривід - це спеціальний мотор, котрий може повертатись тільки на 180 градусів. Основна його задача - утримувати кут, котрий ви йому задасте. Наприклад якщо ми встановимо кут у 45 градусів, то він повернеться на цей кут і буде робити все, щоб його утримати, навіть якщо ви будете намагатись повернути його силою.
УВАГА! Просимо не прокручувати сервопривід вручну. Це може зруйнувати зубчики його шестерней.
Прикладом використання сервоприводу може бути елерон літака, який підіймається вгору і вниз за командою пілота, і намагається утримувати необхідний кут. Звісно, в справжніх літаках використовуються більш складні механізми, ніж сервоприводи. Але в радіо-керованих моделях використовуються саме вони.
У сервопривода три виводи: VCC
(живлення +5V, червоний), GND
(земля, коричневий або чорний) та DATA
(помаранчевий). Відповідно, червоний треба приєднати до виводу 3V
нашого девайсу, коричневий -> G
, а помаранчевий на керуючий вивід, у даному прикладі D2
(GPIO4
).
Бібліотека для керування сервоприводом вже вбудована в стандартний набір бібліотек для Arduino, тому встановлювати нічого не потрібно. Нижче наведений мінімальний код для керування сервоприводом. Ви можете його додати в існуючий проект або створити новий.
#include <Arduino.h>
#include <Servo.h>
#define SERVO_PIN 4
Servo myServo;
void setup(){
// Starting serial port
Serial.begin(115200);
// Init servo
myServo.attach(SERVO_PIN);
}
void loop(){
Serial.println("Setting angle: 0");
myServo.write(0);
delay(2000);
Serial.println("Setting angle: 90");
myServo.write(90);
delay(2000);
Serial.println("Setting angle: 180");
myServo.write(180);
delay(2000);
}
В прикладі нижче сервопривід буде повертатись на два градуси кожні 100 мс, а потім повертатись в первинний стан:
for(int i = 0; i < 90; i++){
myServo.write(i*2);
delay(100);
Serial.print("Setting angle: ");
Serial.println(i * 2);
}
myServo.write(0);
delay(1000);
В наступній частині ми навчимось як керувати сервоприводом за допомогою Firebase.