Je viens d'essayer pendant 1/2 et je n'y comprend rien.
J'ai rapatrié le code de la lib dans le sketch, j'ai même changé le nom de la classe.
J'ai ajouté un objet Servo sur la pin 2
J'ai changé ta lib sur la pin 9
Tout seul, un objet Servo marche.
Et il suffit de créer une instance de ta classe pour que la lib Servo parte en vrac et que les signaux de commande fasse n'importe quoi
J'ai même regardé les signaux généré à l'analyseur logique (au risque de me faire foutre de moi par Skywodd;))
je donne ma langue au chat.
EDIT:
Je met ici le dernier code que j'ai essayé.
#include <Servo.h>
class TestYouplop {
public:
TestYouplop(int pin)
{
servo.attach(pin);
}
void commencer(int min, int max)
{
Serial.println("Test::commencer: Min");
// avance jusqu'� la position minimale
servo.write(min);
delay(1000);
// puis jusqu'� la position maximale
Serial.println("Test::commencer: Max");
servo.write(max);
delay(1000);
}
private:
Servo servo;
};
// positions du servo-moteur (en degr�s)
#define MIN_SERVO 20
#define MAX_SERVO 170
//TestYouplop servotest(2); // contructeur
Servo servo;
void setup()
{
digitalWrite( 13, LOW );
pinMode( 13, OUTPUT );
Serial.begin(9600);
Serial.println( "setup()" );
servo.attach( 8 );
}
void loop() {
Serial.println( "loop()" );
// la seule et unique fonction de ma lib, qui fait avancer le servo d'un point � un autre
//servotest.commencer(MIN_SERVO, MAX_SERVO);
// avance jusqu'� la position minimale
servo.write(MIN_SERVO);
delay(1000);
// puis jusqu'� la position maximale
servo.write(MAX_SERVO);
delay(1000);
}
Tant que la ligne
//TestYouplop servotest(2); // contructeur
est commentée, alors servo (sur la pin 8 ) se comporte bien.
Il suffit de décommenter cette ligne pour que servo fasse n'importe quoi (cf les captures à l'analyseur logique)
- signal 0 : pin 2
- signal 1 : pin 8

