16-sto kanałowy sterownik serwomechanizmów z interfejsem i2c

Kod:
af-servo-driver
Waga: Help
11 g
Dostawca:

Steruj 16-ma serwomechanizmami za pomocą 2 przewodów magistrali i2c (TWI). Lub użyj jej jako 16-kanałowy generator PWM.

Produkt wycofany ze sprzedaży

Zastąpiony przez: Sterownik serwomechanizmów, 16 kanałów, I2C

Etykiety: driver, serwo, sterownik, PCA9685

Moduł do sterowania 16 serwomechanizmami za pomocą magistrali i2c (TWI). Jest zbudowany na układzie PCA9685, który jest scalonym 16 kanałowym generatorem PWM o rozdzielczości 12 bitów (4096 stopni wypełnienia). Moduł posiada niewlutowane złącza typu goldpin do których można wpiąć bezpośrednio modelarskie wtyczki serwomechanizmów. Układ sterujący pracuje w standardach 3,3 i 5V zależnie od zasilania. Serwomechanizmy zasilane są niezależnie. Dzięki koonfiguracji adresu do jednej magistrali i2c możesz podłączyć do 62 modułów generatora uzyskując 992 wyjścia PWM lub sterowane serwomechanizmy.

Parametry techniczne:

  • Wymiary: 62.5mm x 25.4mm x 3mm
  • Waga: 5.5 g (z goldpinami 9 g)
  • Napięcie zasilania: 2,3 do 5,5 V
  • Standard stanów logicznych: 3,3 lub 5V zależnie od napięcia zasilania
  • Niezależne zasilanie serwomechanizmów
  • Generator PWM: PCA9685
  • Częstotliwość taktowania generatorów: wewnętrzny oscylator 25 MHz +prescaler dzielący tą częstotliwość od 4 do 256 razy
  • Rozdzielczość generatorów: 12 bitów (4096 stopni wypełnienia)
  • Częstotliwośc pracy generatorów PWM: od 24 do 1526 Hz
  • Interfejs komunikacyjny: Magistrala i2c (TWI) o taktowaniu 100 kHz, 400 kHz lub 1 Mhz
  • Adres w magistrali i2c: od 64 do 127 ustawiany zworkami

Opis wyprowadzeń:

  • 1 - Wyjścia do 16 serwomechanizmów
  • 2 - Wyprowadzenia do podłaczenia kontrolera
  • 3 - Złącze zasilania serwomechanizmów
  • 4 - Dioda LED sygnalizująca zasilanie modułu

1 (od góry)

  • PWM - Sygnał generatora
  • V+ - Napięcie zasilania serwomechanizmów
  • GND - Masa

2 (od góry)

  • GND - Masa
  • OE - Programowany sygnał aktywacji generatora
  • SCL - Sygnał zegara magistrali i2c (TWI)
  • SDA - Sygnał danych magistrali i2c (TWI)
  • Vcc - Wejście zasilania generatora PWM (od 2,3 do 5.5 V)
  • V+ - Zasilanie serwomechanizmów

3 (od lewej)

  • V+ - Napięcie zasialania serwomechanizmów
  • GND - Masa zasilania

Opis zworek:

  • 1 - 6 zworek ustalających adres generatora w magistrali i2c (TWI)

Adres generatora składa się z na stałę ustawionego 7 bitu adresu i konfigurowlnych pozostałych 6 bitów za pomocą zworek. Dzięki temu do jednej magistrali można podłączyć do 62 płytek i sterować 992 serwomechanizmami.

Podłączenie do Arduino:

  • Arduino Duemilanove: Piny 4 (SDA) i 5 (SCL) z grupy "ANALOG IN", piny 5V i GND z grupy "POWER"
  • Arduino UNO: Piny 4 (SDA) i 5 (SCL) z grupy "ANALOG IN", piny 5V i GND z grupy "POWER"
  • Arduino UNO R3: SDA, SCL w lewym górnym rogu, piny 5V i GND z grupy "POWER"
  • Arduino MEGA: piny 20 (SDA), 21 (SCL) z grupy pinów "COMMUNICATION", piny 5V i GND z grupy pinów "POWER".
  • Arduino Leonardo: SDA, SCL w lewym górnym rogu, piny 5V i GND z grupy "POWER"

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

Schemat przedstawia podłączenie Arduino UNO R3 do prawej, albo lewej wtyczki modułu.

Program testowy:

// Biblioteki współpracujące z modułem
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

// Adres modułu (wszystkie zworki rozwarte)
#define PCF_ADDRESS 0x40

// Tworzenie obiektu
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(PCF_ADDRESS);

// Wartości dla generatora dla impulsu 1000 us i 2000 us
// Czyli minimalny i maksymalny impuls dla serwomechanizmu
#define SERVO_PULSE_MIN 250
#define SERVO_PULSE_MAX 500

// Funkcja zamieniająca kąt osi serwa od 0 do 180 stopni
// na wartość sysyłaną do generatora PWM
void servoWrite(byte servo, byte angle)
{
  pwm.setPWM(servo, 0, map(angle, 0, 180, SERVO_PULSE_MIN, SERVO_PULSE_MAX));
}

void setup()
{
  // Uakktynienie generatora
  pwm.begin();
  // Ustawieie częstotliwości PWM na 60 Hz
  pwm.setPWMFreq(60);
}

void loop()
{
  // Ustawianie kolejny wyjść serwomechanizmów na każdy kąt
  for (byte servo=0; servo<16; servo++)
  {
    for (byte angle=0; angle<180; angle++)
    {
      servoWrite(servo, angle);
      delay(100);
    }
  }
}

Program ustawia kolejne wyjścia serwomechanizmów na każdy kąt ich osi. Program ustawia generator PWM na 60 Hz "pwm.setPWMFreq(60);". Oznacza to, że licznik generatora PWM liczy od 0 do 4095 - 60 razy na sekundę.

Za pomocą "pwm.setPWM(output, begin, end);" można ustawić szerokość impulsu. Argument "output" to numer wyjścia od 0 do 15. "begin" to numer wartości licznika generatora przy której wyjście generatora zmienia się z LOW na HIGH. "end" to wartość licznika generatora, przy której wyjście generatora zmienia się z HIGH na LOW.

Linki:

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