Aller au contenu


dakota99

Inscrit(e) (le) 29 août 2021
Déconnecté Dernière activité mars 01 2025 10:36
-----

Messages que j'ai postés

Dans le sujet : mini Dumper radiocommandé/autonome

17 janvier 2025 - 05:23

oui c'est vraiment du très beau boulot...


Dans le sujet : mini Dumper radiocommandé/autonome

10 janvier 2025 - 04:35

Voici le code utilisé et qui semble fonctionner à la fois pour recevoir des données et pour piloter le servo.

Je ne suis pas arrivé à utiliser la bibliothèque VarSpeedServo en même temps que la réception des données.

#include <Wire.h>
#include <Servo.h>

Servo myServo;
String cm1;
String m1;
String m2;
String m3;
int spd = 40;
int currentAngle = 0; // Angle actuel du servo
int targetAngle = 0;  // Angle cible du servo
int speed = 1;        // Vitesse de déplacement du servo

void setup() {
  Wire.begin(8); // Initialisation du module I2C avec l'adresse 8
  Wire.onReceive(rx);  
  myServo.attach(8);   
  myServo.write(0);   
}

void loop() {
  if (currentAngle < targetAngle) {
    currentAngle += speed;
    if (currentAngle > targetAngle) currentAngle = targetAngle;
  } else if (currentAngle > targetAngle) {
    currentAngle -= speed;
    if (currentAngle < targetAngle) currentAngle = targetAngle;
  }
  myServo.write(currentAngle); 
  delay(spd); // Délai pour ajuster la vitesse de déplacement
}

void rx(int bytes) {
  while (Wire.available()) {
     char c = Wire.read(); // Lecture des données reçues
     cm1 +=c;
  }
  m1 = cm1.substring(0,1);
  m2 = cm1.substring(2,7);    
  m3 = cm1.substring(8,14); 
  cm1 = ""; 
  char carray[m2.length() + 1]; 
  m2.toCharArray(carray, sizeof(carray)); 
  spd = 40;
  char carray2[m3.length() + 1]; 
  m3.toCharArray(carray2, sizeof(carray2)); 
  targetAngle  = atoi(carray2);   // angle
 }

Fichier joint  GUIDAGE_SERVO_2.jpg   49,06 Ko   6 téléchargement(s)

 


Dans le sujet : mini Dumper radiocommandé/autonome

09 janvier 2025 - 04:40

oui absolument c'est intéressant. je ne connaissais pas. Merci Oracid.

Je teste. Même si j'ai un peu de mal à quitter la solution moteur pas à pas qui a été très chronophage :)


Dans le sujet : mini Dumper radiocommandé/autonome

09 janvier 2025 - 02:52

Merci Oracid,

Je me suis souvent servi de cette bibliothèque.

Mais dans le cas présent, l'Arduino Mega qui contrôle le moteur doit aussi recevoir des commandes d'un autre Arduino via I2C.

Et étant donné qu'il est monotâche le fait de faire des delay n'est pas optimal d'après ce que j'ai compris.


Dans le sujet : mini Dumper radiocommandé/autonome

08 janvier 2025 - 09:58

Il me semble que l'on ne peut pas régler la vitesse de déplacement du servo avec cette librairie ....