[ARDUINO, EAGLE i TY] Biblioteki Arduino dla sterownika H silnika elektrycznego

W artykule opisałem sposób przygotowania płytki drukowanej integrującej moduły: sterownika silników oraz Arduino Nano. W tym artykule skupię się na prezentacji przygotowania oprogramowania w środowisku Arduino, testy zostaną przeprowadzone na robocie NesPiDi który startował w tegorocznych zawodach Robomaticon.

Aby rozpocząć pracę nad programem powinniśmy zaopatrzyć się następujące podzespoły:

Poprzedzając pisanie programu powinniśmy wykonać połączenia zgodnie z rysunkiem 1.

 

Rys. 1. Schemat połączeń elektrycznych niezbędnych do przetestowania tworzonych bibliotek

 

Do sterowania pracą silnika wykorzystamy następujące porty:

  • sterowanie prędkościami silników: pwmA port 3 oraz pwmB port 5,
  • sterowanie kierunkiem pracy silników: silnik A porty 6 i 7 oraz silnik B porty 8 i 9.

Sygnał PWM jest sygnałem z regulowaną wartością wypełnienia. Dla przykładu na rysunku 2 pokazano kilka charakterystycznych wartości.

 

Rys. 2. Sygnały PWM o różnych wartościach współczynnika wypełnienia

Po podłączeniu poniższego układu rozpoczynamy programowanie. W nagłówku programu umieszczamy adresy wszystkich portów, z których będziemy korzystać podczas dalszej części. Sygnały PWM zostały podłączone do portów cyforwych c oraz 5. Ta informacja w kodzie będzie wyglądać w sposób następujący:

Sterowanie kierunkami pracy silników odbywać się będzie przy wykorzystaniu portów cyfrowych, 6 i 7 dla silnika A oraz 8 i 9 dla silnika B. W związku z uproszczeniem kodu oraz możliwości modyfikacji adresu portów zostały one zapisane w postaci tablicy.

Zapis w kodzie:

Kolejnym etapem jest ustawienie opisanych portów jako wyjścia. Do tego celu wykorzystamy funkcję pinMode.

Tab. 1. Tabela prawdy działania sterownika silników

 

Przy pierwszych projektach najważniejszymi nastawami będą oznaczone kolorem zielonym na rysunku trzecim. Kierunek do przodu oraz kierunek przeciwny uzyskamy wykorzystując następujący kod:

Powyższy kod umożliwia jedynie ustawienie kierunku pracy silnika. Nie nadaje mu jednak prędkości. Aby silniki poruszały się z odpowiednią prędkością należy na port pwm podać wartość z przedziału (0;255). Dokonamy tego w następujący sposób:

O autorze