|

Piloter des servos avec une carte PCA9685 et un Arduino Uno

Prérequis :

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

Vidéo de démonstration :

Schéma de câblage :

Code :

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

#define MIN_PULSE_WIDTH 600
#define MAX_PULSE_WIDTH 2600
#define SERVO_FREQ 50


uint8_t servonum = 1;

void setup() {
  Serial.begin(9600);
  pwm.begin();
  pwm.setOscillatorFrequency(27000000);
  pwm.setPWMFreq(SERVO_FREQ);  
  delay(10);
}

void loop() {
    pwm.setPWM(0, 0, setServoPulse(60));
    pwm.setPWM(1, 0, setServoPulse(120));
    pwm.setPWM(2, 0, setServoPulse(180));
    delay(1000);
    pwm.setPWM(0, 0, setServoPulse(0));
    pwm.setPWM(1, 0, setServoPulse(0));
    pwm.setPWM(2, 0, setServoPulse(0));
    delay(1000);
}

int setServoPulse(int angle) {
  int pulse_wide, analog_value;
  pulse_wide = map(angle, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
  analog_value = int(float(pulse_wide) / 1000000 * SERVO_FREQ * 4096);
  return analog_value;
}

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *