V tomto článku si ukážeme:
- jak zapojit servo motor k ESP32
- jak nainstalovat potřebnou knihovnu
- jak vytvořit jednoduchý program pro otáčení serva
Na rozdíl od původního projektu zde nepoužijeme web server. Servo bude řízeno přímo programem.
Jak funguje servo motor
Servo motor je speciální typ motoru, který umožňuje přesné nastavení úhlu natočení.
Na rozdíl od klasického DC motoru se servo netočí neustále, ale nastavuje se na konkrétní pozici.
Servo se ovládá pomocí PWM signálu (Pulse Width Modulation). Šířka pulzu určuje, na jaký úhel se servo nastaví.
Například:
- krátký pulz → servo kolem 0°
- střední pulz → servo kolem 90°
- dlouhý pulz → servo kolem 180°
ESP32 umí generovat PWM signál, takže servo lze ovládat přímo z mikrokontroleru.

Potřebné komponenty
Pro tento projekt potřebujeme pouze několik základních součástek:
- ESP32 vývojová deska (např. ESP32 DevKit)
- mikro servo motor (například SG90)
- propojovací vodiče
- případně breadboard
Zapojení servo motoru
Servo má obvykle tři vodiče:
- červený – napájení (VCC)
- hnědý nebo černý – zem (GND)
- oranžový nebo žlutý – signál (PWM)
Zapojení k ESP32 může vypadat například takto:
- VCC → 5V nebo 3.3V
- GND → GND
- signal → GPIO 13
Pin 13 použijeme pro řízení serva, ale lze použít i jiné PWM piny.

Instalace knihovny pro servo
Pro jednoduché ovládání serva je vhodné použít knihovnu ESP32Servo.
Postup instalace v Arduino IDE:
- otevřít Sketch → Include Library → Manage Libraries
- vyhledat ESP32Servo
- kliknout na Install
Tato knihovna usnadňuje generování správného PWM signálu pro servo.

Program pro ovládání serva
Následující program bude servo otáčet z 0° do 180° a zpět.
1#include <ESP32Servo.h>
2
3Servo servo1;
4
5// pin pro servo
6static const int servoPin = 13;
7
8void setup() {
9
10 Serial.begin(115200);
11
12 // připojení serva na pin
13 servo1.attach(servoPin);
14
15}
16
17void loop() {
18
19 // otáčení serva od 0° do 180°
20 for(int pos = 0; pos <= 180; pos++) {
21
22 servo1.write(pos);
23 Serial.println(pos);
24 delay(20);
25
26 }
27
28 // otáčení serva zpět
29 for(int pos = 180; pos >= 0; pos--) {
30
31 servo1.write(pos);
32 Serial.println(pos);
33 delay(20);
34
35 }
36
37}Tento program postupně mění úhel serva a vypisuje aktuální hodnotu do Serial Monitoru.
Testování programu
Po nahrání programu do ESP32 by se servo mělo:
- otočit z 0° na 180°
- poté zpět z 180° na 0°
- celý cyklus se bude opakovat
Současně se bude aktuální úhel zobrazovat v Serial Monitoru.
Možná rozšíření projektu
Tento jednoduchý projekt lze dále rozšířit například o:
- ovládání serva pomocí tlačítek
- řízení serva joystickem
- automatické otevírání dveří
- robotické rameno
- kamerový držák (pan-tilt)
Servo motor je základní součástí mnoha robotických projektů.
Shrnutí
Pomocí ESP32 lze servo motor ovládat velmi jednoduše. Stačí:
- správně zapojit servo
- nainstalovat knihovnu ESP32Servo
- použít funkci
write()pro nastavení úhlu
Díky tomu můžeme snadno vytvářet projekty s přesným pohybem motoru.
