bonjour j'ai toujours un problème avec mon programme, il concerne le défilement des secondes .
j'ai ajouté le code de la lib rtc
puis j'ai affiché l'heure pas de problème
puis j'ai affiché les minutes pas de problème
et j'ai ajouté les secondes et là elles s'affichent mais ne défilent pas en temps réel.
le servo moteur met environ 10 secondes à faire sa rotation de 0° à 180° et de 180° à 0°
en fin de cycle les secondes sont remises à jour puis se refigent.
ex: 19:31:10 le cycle du servo se fait, les secondes ne défilent pas, puis apparait 19:31:20 et ainsi de suite ...
Quelqu'un pourrait-il m'aider , merci d'avance...
#include <Servo.h>
#include <LiquidCrystal.h>
#include <Wire.h>
#include <RTClib.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Servo myservo;
RTC_DS1307 RTC;
int pos = 0; // variable to store the servo position
const int relais=7;//pin7 pour le controle du relai
void setup() {
myservo.attach(8); // attaches the servo on pin 8 to the servo object
lcd.begin(20, 2); //nombre de lignes et de colonnes du LCD
pinMode (relais, OUTPUT);
Wire.begin();
RTC.begin();
}
void loop()
{
bougeservo();
active_relais();
DateTime now = RTC.now();
// l'heure sur la premiêre ligne du LCD
lcd.setCursor(0, 0);
lcd.print(now.hour());
lcd.print(":");
if (now.minute() < 10) {
lcd.print("0");
}
lcd.print(now.minute());
lcd.print(":");
if (now.second() < 10) {
lcd.print("0");
}
lcd.print(now.second());
}
void bougeservo(){
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
void active_relais(){
digitalWrite (relais,HIGH);
lcd.setCursor(0,1);
lcd.print("OSCILLO OFF");
delay(5000);
digitalWrite (relais,LOW);
lcd.setCursor(0,1);
lcd.print("OSCILLO ON");
}