Sterownik mikrosilników prądu stałego

Sterownik mikrosilników prądu stałego

Nie zawsze realizacja zadań robotyki DIY wymaga sterowania potężnymi silnikami. W wielu aplikacjach wystarczą mikrosilniki prądu stałego z odpowiednim modułem sterującym, generującym sygnał PWM. Taki moduł prezentujemy w artykule.

Podstawowe parametry:
  • zawiera generator PWM sterowany z magistrali I²C typu PCA9632,
  • regulacja prędkości obrotowej jest realizowana sygnałem PWM o częstotliwości do 250 kHz,
  • umożliwia sterowanie dwoma silnikami o prądzie maksymalnym 400 mA zasilanymi napięciem 2,5...5,5 V.

Moduł zawiera dwa układy scalone: podwójny mostkowy driver silników A3901, którego budowę pokazano na rysunku 1 oraz generator PWM sterowany z magistrali I²C typu PCA9632 przedstawiony na rysunku 2. Schematy wewnętrzne wyjaśniają najważniejsze funkcje tych układów.

Rysunek 1. Schemat wewnętrzny układu A3901 (za notą Allegro Microsystems)
Rysunek 2. Schemat wewnętrzny układu PCA9632 (za notą NXP)

Budowa i działanie

Schemat sterownika pokazano na rysunku 3. Driver A3901 umożliwia sterowanie dwoma silnikami o prądzie maksymalnym 400 mA zasilanymi napięciem 2,5...5,5 V.

Rysunek 3. Schemat ideowy sterownika

Układ jest wyposażony w zabezpieczenie termiczne. Regulacja prędkości obrotowej może odbywać się sygnałem PWM o częstotliwości do 250 kHz. Kombinacje stanów na wejściach sterujących układu A3901 i odpowiadające im działanie zestawiono w tabeli 1.

Dla sterowania driverem A3901 zastosowano generator PWM PCA9632 współpracujący z magistralą I²C. Wyprowadzenia adresowe A0, A1 umożliwiają ustawienie 4 adresów, czyli sterowanie do ośmioma mikrosilnikami na jednej magistrali I²C. Zasilanie modułu doprowadzone jest do złącza PWR, zwora VCC umożliwia zasilanie części sterującej napięciem zasilania silników.

Należy pamiętać o odpowiedniej wydajności źródła zasilania, kondensator CE1 zapewnia podstawową jego filtrację, jej efektywność może zostać zwiększona dodatkowym elementem poza modułem.

Magistrala I²C doprowadzona jest do złącza I²C, rezystory R1, R2 zapewniają jej polaryzację.

Montaż i uruchomienie

Moduł zmontowany jest na dwustronnej płytce drukowanej o wymiarach 20×20 mm, której schemat został pokazany na rysunku 4. Montaż jest typowy, należy tylko zwrócić uwagę na przylutowanie padu termicznego obudowy U1, dla zapewnienia prawidłowego odprowadzania ciepła i ustawienia adresu I²C zworami A1, A0.

Rysunek 4. Schemat płytki PCB

Zmontowany moduł nie wymaga uruchamiania. Sterowanie silnikami odbywa się poprzez odpowiednią konfigurację generatorów PWM układu PCA9632. Sterując GPIO i generatorami, można ustawić stany logiczne 0/1, zmieniając odpowiednio sterowanie silnikiem, a generowanie sygnału PWM podłączonego do jednego z wejść A3901 umożliwi płynną regulację obrotów w odpowiadającym kierunku.

Do sprawdzenia działania można wykorzystać Raspberry Pi i skrypt z listingu 1.

Listing 1. Skrypt testowy

#!/bin/bash
echo "A3901 MicroMotor Driver ADR:0x63"

i2ctransfer -y 1 w13@0x63 0x80 0x80 0x14 0x00 0x00 0x00 0x00 0x80 0x00 0xFF 0xE$

echo "Stop 1"
i2cset -y 1 0x63 0x08 0x00
sleep 2

echo "Left 1 100%"
i2cset -y 1 0x63 0x08 0x01
sleep 2

echo "Brake 1"
i2cset -y 1 0x63 0x08 0x05
sleep 2

echo "Right 1 100%"
i2cset -y 1 0x63 0x08 0x04
sleep 2

echo "Stop 1"
i2cset -y 1 0x63 0x08 0x00
sleep 2

echo "Left 1 50%"
i2cset -y 1 0x63 0x08 0x09
i2cset -y 1 0x63 0x03 0x7F
sleep 2

echo "Stop 1"
i2cset -y 1 0x63 0x08 0x00
sleep 2

echo "Right 1 50%"
i2cset -y 1 0x63 0x08 0x06
i2cset -y 1 0x63 0x02 0x7F
sleep 2

echo "Stop 1"
i2cset -y 1 0x63 0x08 0x00
sleep 2

echo "Stop 2"
i2cset -y 1 0x63 0x08 0x00
sleep 2

echo "Left 2 100%"
i2cset -y 1 0x63 0x08 0x10
sleep 2

echo "Brake 2"
i2cset -y 1 0x63 0x08 0x50
sleep 2

echo "Right 2 100%"
i2cset -y 1 0x63 0x08 0x40
sleep 2

echo "Left 2 50%"
i2cset -y 1 0x63 0x08 0x90
i2cset -y 1 0x63 0x05 0x7F
sleep 2

echo "Stop 2"
i2cset -y 1 0x63 0x08 0x00
sleep 2

echo "Right 2 50%"
i2cset -y 1 0x63 0x08 0x60
i2cset -y 1 0x63 0x04 0x7F
sleep 2

echo "Stop 2"
i2cset -y 1 0x63 0x08 0x00
sleep 2

Po podłączeniu zasilania silników i magistrali I²C modułu, obecność układu na magistrali sprawdzamy poleceniem: i2cdetect -y 1 powinien zostać wskazany adres PCA9632 z zakresu 0x60...0x63 odpowiadający ustawieniu zwór A1, A0. Jeżeli adres został zmieniony z 0x63 (A1, A0 = 1), należy uwzględnić to, edytując skrypt testowy.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603)
  • R1, R2: 4,7 kΩ
Kondensatory:
  • C1: 0,1 μF ceramiczny (SMD0603)
  • CE1: 100 μF/10 V elektrolityczny miniaturowy
  • C2: 4,7 μF ceramiczny (SMD0603)
Półprzewodniki:
  • U1: PCA9632DP2 (TSSOP10_050)
  • U2: A3901SEJTR-T (DFN10)
Pozostałe:
  • M1, M2: złącze SIP2 2,54 mm
  • PWR: złącze śrubowe DG381-3.5-2
  • RP1: drabinka rezystorowa 47 kΩ (CRA06S08)
  • VCC: zwora - opcja (SMD0603)
Artykuł ukazał się w
Elektronika Praktyczna
luty 2024
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 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 maj 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów