Bonjour à tous, svp je travaille sur un projet de réalisation d'un suiveur solaire un axe en utilisant Arduino, 2 LDRs et un moteur pas à pas 28BYJ-48, 5Vdc. J'ai pas des bases solides en programmation, quelqu'un pour m'aider svp?
Aussi j'arrive pas à faire tourner mon stepper motor dans les 2 sens, il tourne juste dans un sens. Besoin d'aide svp🙏
Bonsoir et Bienvenue
Un petit tour ici s'impose pour découvrr quelles informations fournir pour avoir de l'aide, comment publier le code...
Avec le peu d'informations fournies il faut faire appel à la boule de cristal pour répondre à le demande d'aide
Bonjour je comprend totalement ce que tu veux faire.
Le projet d'un suiveur solaire est très connu en temps que projet d'apprentissage et de prise en main de l'Arduino. Tu verra qu'en cherchant un peu sur internet tu trouvera des dizaines de personnes ayant fait le même projet et qui en profitent pour partager les codes, les composants, et les méthodes. En faisant quelques recherches tu pourra trouver toute l'aide dont tu as besoin de ce côté là.
Sur les sujets des stepper motors je te conseille cette vidéo qui explique parfaitement leur fonctionnement:
de plus pour débuter je te conseille plutôt des servomoteurs qui sont largement plus simple à utiliser et qui suffiront largement pour ce genre de projet car tu n'as pas besoin d'une précision millimétrique pour un suiveur solaire. Cette vidéo t'expliquera leur fonctionnement:
Je te conseille fortement de visiter la chaine youtube qui propose ces vidéos très bien expliquées je trouve.
Bon courage et bonne continuation avec Arduino
Merci bien pour cet apport. J'ai bien pris le temps de voir cette vidéo. J'ai bel et bien choisi d'utiliser un servomoteur à la place du stepper. Mais même avec celui, il n'y a aucune réaction avec la ldr. Peut être que c'est dû à mon moteur je sais pas
Bonsoir cauchy26
Ou ton programme, mets le en ligne.
Cordialement
jpbbricole
Voici un code que j'ai trouvé et essayé de modifier :
#include <Servo.h>
//IO Pins
int pinL = A1; //Left Sensor IO Pin
int pinR = A2; //Right Sensor IO Pin
int pinServo1 = 9; //Servo 1 PWM pin
int leftValue = 0; //The left Sensor Value
int rightValue = 0; //The right Sensor Value
int upValue = 0; //The left Sensor Value
int error1 =0; //The Deviation between the 2 sensors
int errorAVG1 = 0; //Error Average - Rolling 2 Point
Servo hServo1; //The servo object
int Position = 45; //Position to write out
int minPos = 7; //Min Position
int maxPos = 160; //Max Position
float output1 = (maxPos - minPos) /2; //Initial output Position
void setup()
{
//pinMode(pinV, INPUT);
hServo1.attach(pinServo1);
//Set Servo to Centre for Alignment Purpose
hServo1.write(output1);
delay(2000);
}
void loop()
{
//Input Reading
leftValue = analogRead(pinL);
rightValue = analogRead(pinR);
int left = map(leftValue, 0, 1023, 0, 180);
int right = map(rightValue, 0, 1023, 0, 180);
error1 = left - right;
errorAVG1 = (errorAVG1 + error1) / 2;
float newOutput1 = output1;
if (newOutput1 > maxPos)
{
newOutput1 = maxPos;
}
else
{
if (newOutput1 < minPos)
{
newOutput1 = minPos;
}
}
hServo1.write(newOutput1);
output1 = newOutput1;
}
Essaye d'utiliser les balises de code qui son disponibles en cliquant sur l'icone </> située au dessus de la zone ou tu rentre ton texte sur le forum. Celui-ci sera donc plus clair et beaucoup plus agréable à lire pour les autre membres du forum.
Sinon je te donne un code pour tester ton servomoteur en le branchant sur le Pin 9 de ton Arduino (je t'ai rajouté des commentaires à chaque ligne pour que tu puisse comprendre comment marche le code et peut-être résoudre ton problème en prenant exemple):
#include<Servo.h> //Importation de la bibliothèque <Servo.h>
Servo servo; //On donne un nom au servomoteur que l'on souhaite utiliser
void setup() {
servo.attach(9); //on définit sur quel Pin le servomoteur est branché
}
void loop() {
servo4.write(0); //on demande au servomoteur de se placer en position 0°
delay(2000); //délai d'attente de 2000 millisecondes (2sec)
servo.write(180); //on demande au servomoteur de se déplacer jusqu'à sa position 180°
delay(2000);
servo.write(0);
delay(2000);
servo.write(180);
delay(2000);
}
Ton servomoteur devrait effectuer une rotation de 180° toute les 2sec.
Sinon peut tu nous dire quelle est la référence de ton servomoteur afin que l'on sache le quel tu utilise?
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.