Motor 28BYJ-48 je unipolární krokový motor se čtyřmi cívkami uspořádanými do dvou sekcí. Každá sekce má střední odbočku připojenou na 5V. Když připojíme jeden z konců cívky k zemi, začne cívkou procházet proud, což vytvoří magnetické pole. Interakce tohoto pole s magnetickým polem permanentního magnetu v rotoru způsobí pootočení motoru o jeden krok. Postupným přepínáním napájení mezi jednotlivými cívkami dochází k rotaci motoru krok za krokem

Zdroj obrázku: https://www.seeedstudio.com/blog/2019/03/04/driving-a-28byj-48-stepper-motor-with-a-uln2003-driver-board-and-arduino/

Zdroj obrázků: https://playwithcircuit.com/28byj48-stepper-motor-arduino-tutorial/
Pro dosažení vyššího momentu a jemnějšího řízení polohy je motor vybaven převodovkou s přibližným převodovým poměrem 1:64, tedy pro jedno plné otočení výstupní hřídele je potřeba přibližně 64 otáček motoru.
Podle datasheetu odpovídá u motoru 28BYJ-48 v režimu plného kroku každý krok otočení o 11,25°. To znamená, že na jednu otočku je 32 kroků (360°/11,25° = 32).
Uvnitř motoru je navíc převodovka s převodem 64:1. Výsledkem je 2048 kroků na jednu otáčku (32×64).

Zdroj obrázků: https://lastminuteengineers.com/28byj48-stepper-motor-arduino-tutorial/
Jak vypadá motor uvnitř můžete vidět zde.
Protože motorem teče příliš velký proud na to, abychom ho řídilo piny Arduina napřímo, použijeme driver pro krokový motor. Ten nám poslouží jako výkonový spínač.

Zdroj obrázků: https://lastminuteengineers.com/28byj48-stepper-motor-arduino-tutorial/
digitalWrite(), nezapomeňte vybrané piny nastavit jako výstupy.stepForward(int numSteps) - točí motorem po směru hodinových ručiček a stepBackward(int numSteps) - točí motorem proti směru hodinových ručiček. Argument int numSteps bude udávat, o kolik kroků se má motor otočit.halfStepForward(int numSteps)a fullStepForward(int numSteps)