Arduino i sterowanie silnikiem DC

obsługa dwukanałowego mostka H TB6612

1. Sterownik silników TB6612 - moduł

 

Dwukanałowy driver pozwala kontrolować dwa silniki DC. Prąd ciągły jednego silnika nie może przekraczać 1A, chwilowy 3A. Maksymalne napięcie zasilania to 12V. Parametry te pozwalają na obsługę np. mikro silników Pololu lub HL149.


Moduł posiada niezbędne kondensatory filtrujące zasilanie oraz zabezpieczenie przeciw odwrotnemu podłączeniu zasilania. 

 

W celu ułatwienia montażu moduł został wyposażony w standardowe wyprowadzenia goldpin (raster 2,54mm). Układ można zamontować w prototypowej płytce stykowej lub połączyć z Arduino za pomocą przewodów.

 

 

2. Podłączenie modułu

 

Zasilanie

VCC - zasilanie części logicznej

VMOT - zasilanie silników

GND - masa - należy pamiętać, ze wszystkie "masy" musza być ze sobą połączone

STBY - stan niski powoduje przejście w stan wstrzymania czyli niskiego poboru mocy (stand-by), aby mostek był załączony należy podać stan wysoki

 

Wyjścia - wyprowadzenia do których należy podłączyć silniki

AO1, AO2 - wyjścia kanału A - wyprowadzenia, do których należy podłączyć pierwszy silnik

BO1, BO2 - wyjścia kanału B - wyprowadzenia, do których należy podłączyć drugi silnik

Sterowanie silnikami

PWMA - sygnał PWM kanału A - służy do regulacji prędkości obrotowej silnika podłączonego do kanału A

AIN1 AIN2 - wyprowadzenia służące do ustalanie kierunku obrotów silnika podłączonego do wyjść kanału A

PWMB - sygnał PWM kanału B - służy do regulacji prędkości obrotowej silnika podłączonego do kanału B

BIN1, BIN2 - wyprowadzenia służące do ustalanie kierunku obrotów silnika podłączonego do wyjść kanału B

 

 

Tabela - obsługa mostka TB6612 (x - oznacza odpowiedni kanał A lub B) 

x IN1

x IN2

PWM x

STBY

Wyjście kanału x

niski wysoki pwm wysoki Silnik kręci się z maksymalną prędkością zadaną poprzez  pwm (różną od 0) zgodnie ze wskazówkami zegara.
wysoki niski pwm wysoki Silnik kręci się z maksymalną prędkością zadaną poprzez  pwm (różną od 0) przeciwnie do ruchu wskazówek zegara.
dowolny dowolny niski wysoki Gwałtowne hamowanie (tzw. hard-stop).
niski niski dowolny wysoki Delikatne hamowanie.
wysoki wysoki dowolny wysoki Delikatne hamowanie.
dowolny dowolny dowolny niski Mostek jest w stanie wstrzymania - niskiego poboru energii.

 

 

 

 

Rysunek przedstawia przykładowe podłączenie sterownika z modułem Arduino Uno.

 

 

 

3. Przykładowy program

 

Przykładowy program obsługujący moduł TB6612. Układ należy połączyć zgodnie z rysunkiem:

 

 

Efektem działania programu będzie obracający się wał silnika. Po dwóch sekundach nastąpi zmiana kierunku obrotów. Po kolejny dwóch silnik się zatrzyma. 

 

Program:

 

int pwmMotorA=5;
int InMotorA1=4;
int InMotorA2=3;

void setup() {                 
  
  //Wyjście PWM kanału A
  pinMode(pwmMotorA, OUTPUT); 
  
  //Wyjście cyfrowe AIN1
  pinMode(InMotorA1, OUTPUT); 
  //Wyjście cyfrowe AIN2
  pinMode(InMotorA2, OUTPUT);   

}

// Nieskonczona pętla
void loop() {
  
  //Kanał A
  
  //Ustawienie kierunku obrotów
  digitalWrite(InMotorA1, LOW); 
  digitalWrite(InMotorA2, HIGH);
  
  //Ustawienie prędkości obrotowej na 50% (zakres PWM: 8bitów czyli 0-255)
  analogWrite(pwmMotorA,128);
   
  //Opóźnienie 2s
  delay(2000);
  
  //Zmiana kierunku obrotów 
  digitalWrite(InMotorA1, HIGH); 
  digitalWrite(InMotorA2, LOW);
  
  //Opóźnienie 2s
  delay(2000);
  
  //Zatrzymanie silnika - poprzez ustawianie wspołczynnika wypelnienia PWM na wartość 0
  analogWrite(pwmMotorA,0);
  
  //Opóźnienie 2s
  delay(2000);

} 

zapraszamy do współpracy!