Go Down

Topic: Platine Adafruit et programation modulaire (Read 73 times) previous topic - next topic

greg06

Bonjour a tous,

J'aimerai utiliser une carte adafruit 16-Channel 12-bit PWM/servo Driver-I2C interface dans un programme modulaire.

De ce type :
Programme principale :
Code: [Select]
// MAIN PROGRAM

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

#include "servo.h"

void setup(){
  Serial.begin(9600);

  pwm.begin();
  pwm.setPWMFreq(60);
}

void loop(){
  servoStart();
}


servo.h:
Code: [Select]
// PROTOTYPE

void servoStart();


servo.cpp
Code: [Select]
// SERVO

#include "Arduino.h"

const byte servo=1;
const int pulseMin=600;
const int pulseMax=140;
int pulseLengthServo=0;
byte angleServo=90;

void servoStart(){

  pulseLengthServo=map(angleServo, 0, 180, pulseMin, pulseMax);
  pwm.setPWM(servo, 0, pulseLengthServo);
}


La commande pwm du .cpp n'est pas reconnu.

J'ai essayé de mettre les #include Adafruit dans chaque onglet mais a chaque fois j'ai des erreurs.
J'arrive pas a saisir la logique.

Pourriez vous m'aider ?

Merci
Bonne jounrée

J-M-L

#1
Sep 23, 2017, 11:54 am Last Edit: Sep 23, 2017, 12:34 pm by J-M-L
avec ce bout de code
Code: [Select]
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
vous définissez une instance de la classe Adafruit_PWMServoDriver qui s'appelle pwm et pwm n'est connue que dans le fichier où vous la déclarez et définissez.

Si vous voulez utiliser cette variable pwm dans un autre fichier il va falloir la déclarer comme étant externe (créée ailleurs) pour que le compilateur sache quoi en faire

un truc comme cela devrait faire l'affaire

Code: [Select]
#include <Adafruit_PWMServoDriver.h>
extern Adafruit_PWMServoDriver pwm;



Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

greg06


Go Up