bonjour
je veux commander un moteur pas a pas qui fait 48 pas par tour qui fera seulement 2 pas a un temps précis !
j'ai utilisé une carte RTC et j'ai réussi a faire tourner le moteur au temps voulu
mais a partir de cet instant , le moteur se met a tourner sans arrêt
quelqu'un peut m'aider
merci
bonjour,
code?
Bonjour,
Regarde les exemples fournis avec la librairie Stepper.
#include <Stepper.h>
#include <LiquidCrystal.h>
#include <Wire.h>
#include "RTClib.h"
//pour un moteur de 200 pas par tour et brancher sur les broches 2, 3, 4, 5
Stepper moteur(48, 4, 5, 6, 7);
LiquidCrystal lcd( 1, 2, 3, 4, 5, 6); // définition des broches RS/E/D4/D5/D6/D7
int led =13;
RTC_DS1307 RTC;
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(57600); //Démarrage de la communication
Wire.begin(); //Démarrage de la librairie wire.h
RTC.begin(); //Démarrage de la librairie RTClib.h
lcd.begin(16,2); // initialisation de l'afficheur type soit ici 16 caractères et 2 lignes
delay(10); // délai 10 ms pour l'initialisation
lcd.clear(); // rafraichissement de l'afficheur
delay(10); // délai de rafraichissement
moteur.setSpeed(10);
}
void loop()
{
DateTime now = RTC.now(); // Get the current time
DateTime heureRTC;
heureRTC = RTC.now();
int8_t heureAlarme=10;
int8_t minuteAlarme=36;
Serial.print(now.year(), DEC);
lcd.print(now.year(), DEC);
Serial.print('/');
lcd.print('/');
Serial.print(now.month(), DEC);
lcd.print(now.month(), DEC);
Serial.print('/');
lcd.print('/');
Serial.print(now.day(), DEC);
lcd.print(now.day(), DEC);
Serial.print(' ');
lcd.print(' ');
Serial.print(now.hour(), DEC);
lcd.print(now.hour(), DEC);
Serial.print(':');
lcd.print(':');
Serial.print(now.minute(), DEC);
lcd.print(now.minute(), DEC);
Serial.print(':');
lcd.print(':');
Serial.print(now.second(), DEC);
lcd.print(now.second(), DEC);
Serial.println();
lcd.println();
delay(1000);
if (heureRTC.hour()==heureAlarme && heureRTC.minute()==minuteAlarme)
{
Serial.println("Declenchement de l'alarme");
digitalWrite(13,HIGH);
moteur.step(5);
}
else {
Serial.println("Pas d'alarme");
digitalWrite(13,LOW);
}
}
Si ton moteur tourne tout le temps c'est que ta condition IF est toujours vrai.
balise code, merci.
ton moteur, vu le code, doit tourner pendant une minute de 10h36:00 à 10;36:59