Bonjour à tous, j'aimerais savoir si des techniques dans l'écriture en langage Arduino pourrait permettre de rendre mon programme moins lourd (surtout au niveau des déclarations de broches, création de l'objet servo, etc...). Il s'agit d'un programme pour le contrôle d'un petit bras robot composé de 6 servos.
Voici le programme en question :
// --- Inclusion des librairies utilisées ---
#include <Servo.h> // La bibliothèque servo.h est un ensemble de fonctions qui permettent le controle de servomoteurs
// --- constantes des broches ---
const int SERVO_1=1; // On déclare le servo1 en broche 1
const int SERVO_2=2;
const int SERVO_3=3;
const int SERVO_4=4;
const int SERVO_4=4;
const int SERVO_5=5;
const int SERVO_6=6;// --- Déclaration des variables globales ---
int impulsion = 1500; // Valeur d'initialisation qui va permettre la mise en position initiale du servomoteur
// --- Initialisation des fonctionnalités utilisées ---
Servo mon_servo1; // Création d'un objet servo pour utiliser les fonctionnalités de la bibliothèque servo.h
Servo mon_servo2;
Servo mon_servo3;
Servo mon_servo4;
Servo mon_servo5;
Servo mon_servo6;// --- Fonction Setup ---
void setup()
{
mon_servo1.attach(SERVO_1); // On relie l'objet servo a la branche SERVO_1 (branche 1)
mon_servo2.attach(SERVO_2);
mon_servo3.attach(SERVO_3);
mon_servo4.attach(SERVO_4);
mon_servo5.attach(SERVO_5);
mon_servo6.attach(SERVO_6);
pinMode(SERVO_1, OUTPUT); // On déclare la broche 1 comme une sortie
pinMode(SERVO_2, OUTPUT);
pinMode(SERVO_3, OUTPUT);
pinMode(SERVO_4, OUTPUT);
pinMode(SERVO_5, OUTPUT);
pinMode(SERVO_6, OUTPUT);
}void loop()
{
mon_servo1.writeMicroseconds(impulsion); // Initialise la position du servomoteur a 0°
delay(200); // Tempo
mon_servo2.writeMicroseconds(impulsion);
delay(200);
mon_servo3.writeMicroseconds(impulsion);
delay(200);
mon_servo4.writeMicroseconds(impulsion);
delay(200);
mon_servo5.writeMicroseconds(impulsion);
delay(200);
mon_servo6.writeMicroseconds(impulsion);
delay(200);
mon_servo1.writeMicroseconds(2100);
delay(500);
mon_servo2.writeMicroseconds(1000);
delay(1000);
mon_servo3.writeMicroseconds(1660);
delay(400);
mon_servo4.writeMicroseconds(1800);
delay(2000);
mon_servo5.writeMicroseconds(1000);
delay(200);
mon_servo6.writeMicroseconds(2000);
delay(500);}
Merci de vos réponse,
Cordialement,
Papey.