• Post category:Fort
  • Post comments:2 commentaires
  • Post last modified:mars 13, 2022
  • Temps de lecture :5 min de lecture

Piloter des servos avec une carte PCA9685 et un Arduino *

Niveau APPRENTISSAGE :   Fort

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino Uno
  • 1 x PCA9685
  • 1 x Potentiomètre 10 KΩ
  • 3 x Servos
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

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(0x40);

#define MIN_PULSE_WIDTH 600
#define MAX_PULSE_WIDTH 2600
#define FREQUENCY 50

int analogPin = A0; 
int valeur = 0; 

void setup() {
  pwm.begin();
  pwm.setPWMFreq(FREQUENCY);
}

int pulseWidth(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 * FREQUENCY * 4096);
  return analog_value;
}

void loop() {
  valeur = analogRead(analogPin); 
  int servomap = map(valeur, 0, 1023, 0, 180);  
  pwm.setPWM(0, 0, pulseWidth(servomap));
  pwm.setPWM(1, 0, pulseWidth(servomap));
  pwm.setPWM(2, 0, pulseWidth(servomap));
}

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Cet article a 2 commentaires

  1. auzereau

    je shouaite piloter 24 servos (aiguillage)par des boutons a bascule, pouvez vous m aider pour le code.
    MERCI
    Alain (mon mail pour echange : aauzereau@gmail.com )

Laisser un commentaire