Arduino Motor Shield R3

Kod:
ard-motor-shield-r3
Waga: Help
44 g
Dostawca:

Płytka rozszerzeniowa Arduino do sterowania silnikami elektrycznymi.

Produkt wycofany ze sprzedaży

Etykiety: shield, robot, motor, 2A

Płytka rozszerzająca możliwości Arduino o sterowanie 2 silnikami elektrycznymi prądu stałego (regulacja szybkości i kierunku). Moduł potrafi odczytać natężenie prądu silników. Dzięki temu można zapobiec przeciążeniu układu i rozpędzać nawet mocno obciążone maszyny. Ma też 2 złącza do urządzeń z magistralą I2C (TWI), oraz 2 złącza wejść analogowych i 2 złącza wyjść PWM. Złącza są kompatybilne z zestawami TinkerKit

Parametry techniczne:

  • Napięcie zasilania: od 5 do 12 V przy zwartej zworce Vin
  • Prąd zasilania: maksymalnie 4 A
  • Maksymalny prąd pojedynczego silnika: 2 A
  • Napięcie zasilania silnika: Zależne od napięcia zasilania płytki

Opis wyprowadzeń:

  • 1 - Przycisk RESET zeruje stan Arduino i uruchamia program od nowa
  • 2 - Standardowe złącza Arduino
  • 3 - Wyjścia magistrali I2C (TWI)
  • 4 - Wyjścia PWM z cyfrowych pinów Arduino 6 i 5
  • 5 - Wejścia analogowe z analogowych pinów Arduino 2 i 3
  • 6 - Wyjście zasilania silnika B
  • 7 - Wyjście zasilania silnika A
  • 8 - Wejście zewnętrznego zasilania

[3] Wyjścia magistrali I2C (TWI) mają piny (od góry)

  • SCL: Wyjście zegarowe magistrali TWI
  • SDA: Wyjście danych magistrali TWI
  • +5V: Wyjście zasilania 5V
  • GND: Wyjście masy GND

[4] Wyjścia cyfrowe/PWM

  • +5V: Wyjście zasilania 5V
  • OUT: Wyjście cyfrowego pinu PWM (6 lub 5)
  • GND: Wyjście masy GND

[5] Wejścia analogowe

  • +5V: Wyjście zasilania 5V
  • IN: Wejście analogowego pinu (2 lub 3)
  • GND: Wyjście masy GND

Przy wyjściach silników [6] i [7] płytka zawiera też 4 diody LED informujące o pracy i kierunku obrotów silników.

Opis zworek:

  • BRAKE A - Zwarta włącza hamowanie silnika A pinem cyfrowym 8
  • BRAKE B - Zwarta włącza hamowanie silnika B pinem cyfrowym 9
  • SNS0 - Zwarta włącza pomiar prądu obciążenia silnika A przez Analog In 0 w Arduino
  • SNS1 - Zwarta włącza pomiar prądu obciążenia silnika B przez Analog In 1 w Arduino
  • Vin Connect - Zwarta powoduje, że wejście złącza zasilania [8] jest podłączone do pinu Vin Arduino. Jeśli zasilasz silniki napięciem od 5 do 12 V, zworka pozwala zasilać tym samym złączem również Arduino. Jeśli zasilasz silniki wyższym napięciem, zworka powinna być rozłączona i zasilanie Arduino powinno być osobne.

Podłączenie do Arduino:

Do sterowania silnikami płytka Motor Shield wykorzystuje piny cyfrowe 3, 8, 9, 11, 12, 13 i piny analogowe 0 i 1. Za pomocą zworek można odzyskać piny cyfrowe 8 (BREAK A), 9 (BREAK B) i analogowe 0 (SNS0) i 1 (SNS1). Dodatkowe złącza na płytce wykorzystują piny:

  • TWI - SDA, SCL
  • OUT ~6 - Cyfrowy pin PWM 6
  • OUT ~5 - Cyfrowy pin PWM 5
  • IN 2 - Analogowy pin 2
  • IN 3 - Analogowy pin 3

Sterownie silnikiem A

  • Cyfrowy pin 12 - Kierunek obrotów
  • Cyfrowy pin PWM 3 - Siła/szybkość obrotów
  • Cyfrowy pin 9 - Hamowanie silnika
  • Analogowy pin 0 - Odczyt poboru prądu/obciążenia silnika

Sterownie silnikiem B

  • Cyfrowy pin 13 - Kierunek obrotów
  • Cyfrowy pin PWM 11 - Siła/szybkość obrotów
  • Cyfrowy pin 8 - Hamowanie silnika
  • Analogowy pin 1 - Odczyt poboru prądu/obciążenia silnika

Wyjście PWM reguluje zarówno prędkość obrotową jak i siłę hamowania silnika w zależności od ustawienia wyjścia hamulca.

Przykładowe podłączenie do Arduino UNO R3:

Program testowy:

// Ustalenie numerów pinów
#define DIRECTION 12
#define SPEED 3
#define BREAK 9
#define CURRENT 0

// Zmienna przechowująca kierunek obrotów
byte dir = LOW;

void setup()
{
  // Ustawienie kierunku wyjść cyfrowych
  pinMode(DIRECTION, OUTPUT);
  pinMode(SPEED, OUTPUT);
  pinMode(BREAK, OUTPUT);
  
  // Włączenie hamulca
  digitalWrite(BREAK, HIGH);
  
  // Ustawienie kierunku
  digitalWrite(DIRECTION, dir);
}

void loop()
{
  // Wyłączenie hamulca
  digitalWrite(BREAK, LOW);
  
  // Przyspieszanie silnika do maksymalnych obrotów
  // w ciągu 10 s
  for (byte speed=0; speed<=255; speed++)
  {
    analogWrite(SPEED, speed);
    delay(40);
  }
  
  // Hamowanie silnika w ciągu 3 s
  digitalWrite(BREAK, HIGH);
  delay(3000);
  
  // Ustawienie kierunku na odwrotny
  dir = ~dir;
  digitalWrite(DIRECTION, dir);
}

Program rozpędza przez 10 s silnik "A" do maksymalnych obrotów, potem przez 3 s hamuje silnik, a następnie zmienia kierunek obrotów i powtarza cykl.

Linki:

Serwomechanizmy:
Silniki:
Sterowniki serwomechanizmów i silników:
Akcesoria do serwomechanizmów i silników: