Servo control board

This board is designed for applications requiring multiple servos to perform the same movements simultaneously. With the ability to control up to six servos using a single PWM signal, this board ensures precise and synchronized operations, ideal for robotics, animatronics, and other automated systems. Additionally, you can choose which servos will respond to the signal, offering flexibility and customization for your projects.

Key Features:

  • Single PWM Signal Control: Synchronizes up to six servos for identical movement.
  • Selective Servo Activation: Choose which servos respond to the PWM signal, providing customization and flexibility.
  • Easy Integration: Compatible with standard PWM signals from most controllers and microcontrollers.
  • Versatile Applications: Perfect for robotics, animatronics, model making, and other automated projects.

Specifications:

  • Input Voltage: 4V-5V
  • Dimensions: 69,58mm x 38,10mm

Ensure your projects have smooth and coordinated servo movements with this efficient and reliable servo control board. Customize which servos are activated to meet the specific needs of your application.

//©DECTRONICS.CC - Servo control board example

#include <Servo.h> // Include servo library

int latchPin = 5; // Latch pin of 74HC595 is connected to Digital pin 5
int clockPin = 6; // Clock pin of 74HC595 is connected to Digital pin 6
int dataPin = 4;  // Data pin of 74HC595 is connected to Digital pin 4

int servo = B11111100;  // Variable to choose which servo's you want to control
Servo myservo;  // Create servo object to control a servo
int turn = 0; //Variable to hold the turn

void setup() 
{
  // Set all the pins of 74HC595 as OUTPUT
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);

  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() 
{
  switch(turn){ //Based on turn choose which servo to control
    case 0:
      servo = B10000000;
      break;
    case 1:
      servo = B01000000;
      break;
    case 2:
      servo = B00100000;
      break;
    case 3:
      servo = B00010000;
      break;
    case 4:
      servo = B00001000;
      break;
    case 5:
      servo = B00000100;
      break;
    case 6:
      servo = B11111100;
      break;
  }
  turn++;
  if(turn == 7){
    turn = 0;
  }
  updateShiftRegister(); //Update the shift register with the data of servo
  myservo.write(180); //Rotate 180 degrees
  delay(400); //wait
  myservo.write(0); //Rotate back to 0 degrees
  delay(400); //wait
}

//Function to update the shift register 
void updateShiftRegister()
{
   digitalWrite(latchPin, LOW);
   shiftOut(dataPin, clockPin, LSBFIRST, servo);
   digitalWrite(latchPin, HIGH);
}

1 thought on “Servo control board”

Leave a Comment

Your email address will not be published. Required fields are marked *