A i B są to przewody zasilające. W niektórych silnikach jest to jeden, wspólny przewód, jednak nie ma to znaczenia dla idei sterowania. Przewody 1, 2, 3, 4 są to przewody sterujące silnikiem.
Jak już wcześniej wspomniano cewek w silniku jest znacznie więcej niż 4, dlatego kąt między poszczególnymi położeniami wirnika nie zmienia się jak na rysunku o 90 stopni, ale (jak w naszych silnikach) zaledwie o 1,8 stopnia. Po przejściu 4 kroków cykl sie powtarza. Pełny obrót silnika wymaga 50 takich cykli.
Aby zmienić kierunek obrotu wystarczy jedynie zmienić kolejność włącznia cewek, czyli w tym przypadku kolejność byłaby następująca:
4, 3, 2, 1.
Sygnały sterujące były generowane przez mikrokontroler - autonomiczny układ scalony, posiadający jednostkę arytmetyczno - logiczną, pamięć RAM, układy wejścia - wyjścia i ograniczoną listę rozkazów. Innymi słowy jest to mały i w pełni autonomiczny procesor, namiastka komputera. My korzystaliśmy z układu AT89C2051. Nie jest to układ nowy, ale okazał się na tyle dobrze dopracowany, że mimo upływu 15 lat wciąż jest produkowany.
Kod wgrany do mikrokontrolera został napisany w asemblerze. Nie będziemy go tutaj przytaczać. Podamy jedynie poglądowy algorytm jego działania.
Kolejne kroki algorytmu:
1. Włączenie mikrokontrolera (M).
2. Czekamy 2 sekundy (na wszelki wypadek, aby wygasły wszelkie stany nieustalone).
3. M. ustawia stan wysoki (1) na 1. wyjściu portu 1. Stan ten trwa kilka milisekund, po czym jest ustawiany z powrotem stan niski (0).
4. Po kilku milisekundach ustawiamy stan wysoki na wyjściu 2., które po kilku milisekundach gasimy (0).
5. Po kilku milisekundach ustawiamy stan wysoki na wyjściu 3., które po kilku milisekundach gasimy.
6. Po kilku milisekundach ustawiamy stan wysoki na wyjściu 4., które po kilku milisekundach gasimy.
7. Czynności od. punktu 3. do 6. (każda z nich powoduje wykonanie pojedynczego kroku silnika) powtarzamy w pętli 30 razy. Do tego momentu mija ok. 8 sekund. Przesłona została obrócona.
8. Mikrokontroler nic nie robi przez ok. 40 sekund.
9. Powtarzamy czynności z punktów 3 - 6, ale w kolejności odwrotnej, tzn. 6., 5., 4., 3. (Dzięki temu silnik kręci się w przeciwnym kierunku).
10. Cykl z punktu 9. powtarzamy 30 razy. Zamykamy przesłonę. W tym momencie mija ok. 55 sekund.
11. Przez 5 minut mikrokontroler nic nie robi.
12. Ponownie realizujemy punkt 7., czyli otwieramy przesłonę.
13. "Nieskończone" oczekiwanie.
Jesli chcemy zrealizować sekwencje naświetlania podane poniżej, to pojawia się pewien problem, gdyż czasami chcemy, aby przesłona pozostała otwarta, a czasami zamknięta. Czasami chcemy otworzyć coś zamkniętego, a innym razem zamknąć coś otwartego.
Na ratunek przychodzi ciekawa cecha mikrokontrolera zwana resetowaniem.
Otóż jeśli przerwiemy wykonywanie programu w dowolnym momencie, np. przez odcięcie zasilania, to po ponownym włączeniu mikrokontrolera rozpoczyna od wykonywanie programu od początku.
Minimalny czas (narzucony przez programowalny wyłącznik) na jaki możemy włączyć mikrokontroler wynosi 1. minutę. W ciągu tej minuty mikrokontroler zdąży otworzyć i zamknąć przesłonę. Jeżeli wyłączymy prąd po minucie, to przesłona pozostanie na stałe zamknięta. Jeśli chcemy aby przesłona pozostała na stałe otwarta, to wystarczy, że zostawimy mikrokontroler włączony jeszcze przez 6 minut, wówczas zdąży on zrealizować otwarcie przesłony i w tym momencie zostanie wyłączony.
Jak widać jest postęp, ale to jeszcze nie wszystko.
Załóżmy, że przesłona pozostała w pozycji otwartej i teraz chcemy ją zamknąć. Ponowne włączenie mikrokontrolera spowoduje dalsze "otwieranie" przesłony, którą chcieliśmy zamknąć.
Gdybyśmy pozwolili silnikowi kręcić się swobodnie to po jakimś czasie zupełnie zgubimy się w jakiej pozycji znajduje sie on w danej chwili. Chaos wzrósłby jeszcze bardziej gdybyśmy mieli do czynienia z awarią zasilania.
Wyjściem z kłopotów jest zastosowanie blokad w silniku, które pozwalają mu tylko na ograniczony obrót. Omówimy to na przykładzie sekwencji naświetlań zestawu 1.