Bonjour,
Je suis nouveau, j'utilise Arduino depuis peu. J'en est fait mon seul loisir tellement je veux faire plain de chose. Seulement voila j'ai suivi un Tuto d'initiation avec une soif d'apprendre mais un estomac trop petit pour digérer. trêve de présentation.
Voici mon projet; je souhaite réaliser un mini bras robotique, avec deux servo-moteurs et deux moteurs pas à pas. Ceci dans le but d'apprendre à maîtriser ces deux type de moteurs. J'ai donc réaliser une tourelle 360° et le premier bras, avec les steps-moteurs. Les autres bras avec deux servo-moteurs. L'ensemble permet de manipuler un crayon en guise d’effecteur.
la liste de materiel:
-2 step motor 28BYJ-48 5v DC
-2 interfaces pour step motor 2PH64011A (avec ULN2003APG)
-2 servo-moteurs SG90
-Une planche à pain ( breadbord, ça me fait toujours rire de la traduire en français)
-Une alimentation pour planche à pain 545043 YwRobot cavalier en position 5 volts
-2 potentiomètres
-une analogue
-du plastique, du bois des vis des outils de bricoleur.
-Et j'allais oublier une carte arduino UNO R3
-Ci-joint un plan (pour ne pas dire schéma)
-mon programme:
#include <Stepper.h> //bibliothèque pour moteur pas à pas
#include <Servo.h> //bibliothèque pour Servo moteur
//outil map = "map(valeur,min,max,transformation Min,transformation Max);"
Stepper moteur1(100, 9, 11, 10, 12);
Stepper moteur2(100, 5, 7, 6, 8);
int pinServo1 = 4;
int lecturePotar1 = 0;
int valeurPotar1 = 0;
int pinServo2 = 3;
int lecturePotar2 = 0;
int valeurPotar2 = 0;
Servo leServo1;
Servo leServo2;
int valeurPotentiometre1;
int valeurPotentiometre2;
int valeurAnalog1;
int valeurAnalog2;
int nombreDePas1;
int nombreDePas2;
int nombreDePasPrecedent1;
int nombreDePasPrecedent2;
void setup()
{
moteur1.setSpeed(280);
moteur2.setSpeed(280);
leServo1.attach(pinServo1);
leServo2.attach(pinServo2);
}
void loop()
{
//////////////////step motor/////////////////////
valeurPotentiometre1 = analogRead(A2);
valeurPotentiometre2 = analogRead(A3);
nombreDePas1 = map(valeurPotentiometre1, 0, 1023, 0, 2047);
nombreDePas2 = map(valeurPotentiometre2, 0, 1023, 0, 2047);
moteur1.step(nombreDePas1 - nombreDePasPrecedent1); //nombre de pas exécuté ( 2048 pour faire un tour complet )
moteur2.step(nombreDePas2 - nombreDePasPrecedent2);
nombreDePasPrecedent1 = nombreDePas1;
nombreDePasPrecedent2 = nombreDePas2;
//////////////////Servo-motor/////////////////////
valeurAnalog1 = analogRead(A4);
valeurAnalog2 = analogRead(A5);
valeurPotar1 = map(valeurAnalog1, 0, 1023, 0, 170); //mapping pour obtenir 170° ( 179° max ! )
leServo1.write(valeurPotar1);
valeurPotar2 = map(valeurAnalog2, 0, 1023, 0, 170);
leServo2.write(valeurPotar2);
}
Pendant 30 seconde je peux faire mumuse, tout vas bien, seulement voila tout s'emballe, les servo et les steps ne répondent plus de rien, il y un brouhaha d'engrenage qui bug, je stop tout, je recommence et rebelote.