LOCODUINO
Parlons Arduino => Débuter => Discussion démarrée par: Patrice 59 le novembre 30, 2021, 06:09:03 pm
-
Bonjour à tous
Voici mon projet est la commande d'un pont secteur 3 voies, je voudrai le commander par simplement 3 BP sur le TCO, un pour chaque voie.
La motorisation est prévue avec un moteur pas à pas
J'ai cherché sur le forum mais je n'est rien trouvé, possible que je ne cherche pas bien.
Le pont en en cour de construction et le kit Arduino est en cour de livraison.
Pouvez-vous, SVP, me guider un peu.
D'avance merci
Très bonne fin de fin d'année
Cordialement
Patrice
-
Bonjour et bienvenue,
il y a eu des discussions sur le forum quant à l'utilisation de commande directe de pont tournant par un moteur pas-à-pas mais à mon souvenir pas de réalisation détaillée.
La question principale étant le positionnement du pont en fonction du nombre de pas du moteur.
Vous pouvez faire une recherche avec Rechercher en haut à droite sur le site éditorial et le forum avec "pas-à-pas" entre guillemets.
Et pour une première approche il y a l'article :
https://www.locoduino.org/spip.php?article196
Une description sur le site du Seine Modèle Club Ferroviaire - SMCF (lien à la fin vers une réalisation détaillée)
https://www.modelisme-ferroviaire-rouen.fr/pratique-et-tutoriels/arduino-modelisme-ferroviaire/motoriser-pont-tournant-modelisme/
-
Bonjour
Merci pour votre réponse.
Cordialement
Patrice
-
Bonjour,
comme sketch de base (2 boutons) et donc adaptable à votre problème (3 boutons), vous pouvez regarder :
http://complectric.blogspot.com/2015/03/monduino-002-stepper-motor-control.html
int directionPin = 5; // controlls stepper direction on A4988
int stepPin = 3; // controlls no. of steps on A4988
int numberOfSteps = 200; //No. of steps in full rotation
int pulseWidthMicros = 600; // microseconds
int millisbetweenSteps = 1; // milliseconds
int b1 = 4; // button 1
int b2 = 7; // button 2
void setup()
{
Serial.begin(9600);
Serial.println("Stpper Movement");
pinMode(directionPin, OUTPUT);
pinMode(stepPin, OUTPUT);
pinMode(b1, INPUT);
pinMode(b2, INPUT);
}
void loop()
{
digitalRead(b1);
digitalRead(b2);
while(digitalRead(b1) == HIGH){
digitalWrite(directionPin, HIGH);
for(int n = 0; n < numberOfSteps; n++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(pulseWidthMicros);
digitalWrite(stepPin, LOW);
Serial.println("B1 HIGH");
delay(millisbetweenSteps);
if(digitalRead(b1) == LOW){
break ;
}
}
}
while(digitalRead(b2) == HIGH){
digitalWrite(directionPin, LOW);
for(int n = 0; n < numberOfSteps; n++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(pulseWidthMicros);
digitalWrite(stepPin, LOW);
Serial.println("B2 HIGH");
delay(millisbetweenSteps);
if(digitalRead(b1) == LOW){
break ;
}
}
}
}
-
Bonjour
Merci je viens de regarder les liens que m'avez donnés
Je pense pouvoir trouver la solution à mon problème
Merci de prendre de votre temps pour moi
Une petite question : Peut on travailler le programme dans un traitement de texte?
Bien cordialement
Patrice
-
Sans doute oui car l’éditeur de l’IDE Arduino n’est qu’un traitement de texte classique …
Mais non car l’éditeur de l’IDE Arduino apporte pas mal de fonctions supplémentaires comme:
- les boutons Vérifier et Televerser
- des indentations et des couleurs très utiles
L’éditeur le plus proche est celui d’un autre environnement de développements, mais il faudra toujours revenir au compilateur… alors pourquoi changer?
-
Bonsoir
Mon ami Antoine m'a fait suivre ce programme
Notepad++
https://notepad-plus-plus.org/
A utiliser sans modération