Sterownik unipolarnego mikrosilnika krokowego dla PI Pico

Sterownik unipolarnego mikrosilnika krokowego dla PI Pico

Silniki unipolarne to najprostsze i najtańsze spośród silników krokowych, pomimo to sprawdzają się w wielu aplikacjach. Zaprezentowany moduł umożliwia sterowanie silnikiem unipolarnym poprzez Raspberry Pi Pico.

Podstawowe parametry:
  • generowanie przebiegu sterującego odbywa się na drodze programowej,
  • współpracuje z silnikami unipolarnymi 5-przewodowymi,
  • współpracuje z silnikami o napięciu znamionowym 5...12 V.

Układ zrealizowany jest bez specjalizowanych sterowników silników krokowych, a generowanie przebiegu sterującego odbywa się programowo. Współpracuje z silnikami unipolarnymi 5-przewodowymi np. 25SPG lub 28BYJ.

Rysunek 1. Schemat ideowy modułu sterownika

Schemat modułu został pokazany na rysunku 1. Silnik dołączany jest do złącza MOUT. Każde z czterech uzwojeń silnika sterowane jest własnym tranzystorem MOSFET wchodzącym w strukturę podwójnego tranzystora Q1, Q2. Do wyprowadzenia wspólnego uzwojeń doprowadzone jest napięcie zasilania VM.

Napięcie zasilania silnika doprowadzone jest do złącza PWR, jego wartość powinna być dobrana do typu silnika i powinna mieścić się w zakresie 5...12 V. Należy też pamiętać o odpowiedniej wydajności prądowej źródła zasilania.

Układ U1 typu LVC125 zapewnia separację portów GPIO procesora i wysterowanie bramek tranzystorów wykonawczych. Zasilanie części logicznej pobierane jest z wbudowanej przetwornicy 3,3 V Pi Pico. Sterowanie silnikiem zajmuje cztery wyprowadzenia GPIO18...21. Układ uzupełnia złącze GPIO dla wyprowadzeń 12, 13 lub magistrali I²C w standardzie Grove, ułatwiające podłączenie zewnętrznych czujników w standardzie 3,3 V.

Montaż i uruchomienie

Sterownik zmontowany jest na dwustronnej płytce drukowanej zgodnej z Pi Pico, której schemat został pokazany na rysunku 2.

Rysunek 2. Schemat płytki PCB

Sposób montażu jest klasyczny i nie wymaga opisu. Zmontowany moduł nie wymaga uruchamiania. Do złącza MOUT należy podłączyć silnik, zachowując odpowiednią kolejność wyprowadzeń. Najważniejsze jest wyprowadzenie wspólne uzwojeń podłączone do VM, pozostałe wyprowadzenia mogą zostać podłączone dowolnie, gdyż zawsze można zmodyfikować sekwencję sterująca uzwojeniami.

Sterowanie silnikiem odbywa się poprzez generowanie sekwencji stanów wyprowadzeń GPIO. Szybkiego sprawdzenia modułu po podłączeniu silnika i zasilania można dokonać korzystając z IDE Thonny i micropythona. Należy najpierw zaimportować biblioteki Pin oraz sleep poleceniami:

from machine import Pin
from time import sleep

i zdefiniować wyjścia sterujące:

MA = Pin(21,Pin.OUT)
MB = Pin(20,Pin.OUT)
MC = Pin(19,Pin.OUT)
MD = Pin(18,Pin.OUT)
pins = [MA, MB, MC, MD]

Sekwencje sterujące dla różnych konfiguracji znajdują się na listingu 1, natomiast prosty skrypt do wygenerowania ciągu impulsów znajduje się na listingu 2.

Listing 1. Sekwencje sterujące dla różnych konfiguracji

#Wave CW
seqstep = [[0,0,0,1],[0,0,1,0],[0,1,0,0],[1,0,0,0]]
#Wave CCW
#seqstep = [[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]

#Full CW
#seqstep = [[1,0,0,1],[0,0,1,1],[0,1,1,0],[1,1,0,0],[1,0,0,1],[0,0,1,1],[0,1,1,0],[1,1,0,0],[1,0,0,0]]
#Full CCW
#seqstep = [[1,0,0,1],[1,1,0,0],[0,1,1,0],[0,0,1,1],[1,0,0,1],[1,1,0,0],[0,1,1,0],[0,0,1,1],[0,0,0,1]]

#Half CW
#seqstep = [[1,0,0,1],[0,0,0,1],[0,0,1,1],[0,0,1,0],[0,1,1,0],[0,1,0,0],[1,1,0,0],[1,0,0,0],[1,0,0,1],[0,0,0,1],[0,0,1,1],[0,0,0,0],[0,1,1,0],[0,1,0,0],[1,1,0,0],[1,0,0,0],[1,0,0,0]]
#Half CCW
#seqstep = [[1,0,0,1],[1,0,0,0],[1,1,0,0],[0,1,0,0],[0,1,1,0],[0,0,1,0],[0,0,1,1],[0,0,0,1],[1,0,0,1],[1,0,0,0],[1,1,0,0],[0,0,0,0],[0,1,1,0],[0,0,1,0],[0,0,1,1],[0,0,0,1],[0,0,0,1]]
Listing 2. Prosty skrypt do wygenerowania ciągu impulsów

while True:
for step in seqstep:
for i in range(len(pins)):
pins[i].value(step[i])
sleep(0.005)

Jeżeli po sprawdzeniu wszystko działa poprawnie można moduł zastosować we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603)
  • R1, R2, R3, R4: 22 Ω
  • R5, R6, R7, R8: 100 kΩ
Kondensatory:
  • C1: 10 μF/16 V ceramiczny (SMD0805)
  • CE1: 100 μF/16 V elektrolityczny Low Esr
  • C2: 0,1 μF/16 V ceramiczny (SMD0603)
Półprzewodniki:
  • D1, D2, D3, D4: dioda Schottky’ego B0540 (SOD123)
  • Q1, Q2: Tranzystor podwójny MOSFET FDS9926A (SO8)
  • U1: LVC125 (SO14)
Pozostałe:
  • GPIO: złącze Grove kątowe (110990037)
  • IO1, IO2: złącze żeńskie 1×20 pinów, 2,54 mm
  • MOUT: SIP5 2,54 mm
  • PWR: złącze DG 3,5 mm, 2 piny
Artykuł ukazał się w
Elektronika Praktyczna
lipiec 2023
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów