Sujet : ArduinoRobot

Bonjour,
Nouveau sur ce forum, je cherche à mettre un servo sur un robot Arduino 2 roues.
Il semble que ArduinoRobot.h soit incompatible avec Servo.h (multiple definition de vector 17)
T a t il une solution ?

Merci d'avance

Dernière modification par IleLouet (09-09-2015 17:27:13)

Re : ArduinoRobot

Bonjour à tous !
Si cela intéresse quelqu’un j'ai trouvé une solution, pas très élégante mais qui fonctionne !
Se passer de servo.h...
La durée d'un signal sur l'entrée de commande du servo permet de lui demander d'atteindre un angle,
il semble que 500 micro corresponde environ à 0° et  2500 environ à 90°.
Il n'y a pas de sécurité sur les valeurs envoyées, une valeur trop petite ou trop grande ferait "forcer" le servo !!!

Exemple de code :

#include <ArduinoRobot.h>
#include <Wire.h>
#include <SPI.h>

int servopin = D0;

void setup() {
  pinMode (servopin, OUTPUT);
}
void Tourne(int angle) {
  int val = map(angle,0,180,500,2500);
  for (int a = 0; a < 15; a++) {
    digitalWrite(servopin, HIGH);
    delayMicroseconds(val);
    digitalWrite(servopin, LOW);
    delay(20);
  }
}
void loop() {
  Tourne(45);
  delay(2000);
  Tourne(90);
  delay(2000);
  Tourne(135);
  delay(2000);
}

Le nombre de passage dans la boucle est à ajuster en fonction de la vitesse du servo et de sa charge.

sad  Pas très élégant car on ne sait pas si le servo est bien arrivé à l'angle demandé, mais si cela peut dépanner...

A une prochaine !...