Ok pour le formatage du code avant de le copier.
J'ai bien dis au servo de se mettre en position initiale et nickel le servo se positionne bien dés le départ.
Merci,
#include <Servo.h>
#include <Wire.h>
#include <DS3231.h>
Servo monservo; //création de l'objet Servo
int pos = 0; // valeur initiale de la variable "pos" du servo
RTClib RTC; // utile pour heure ???
const int cloche = 2; // la clochette est sur la broche 2
const int boutoncloche = 3; // le bouton clochette est sur la broche 3
const int boutonavance = 4; // le bouton avance est sur la broche 4
int etatboutoncloche;
int etatboutonavance;
void setup() {
pinMode(cloche, OUTPUT); // met la broche 2 en sortie
pinMode(boutoncloche, INPUT); // met la broche 3 en entrée
pinMode(boutonavance, INPUT); // met la broche 4 en entrée
monservo.attach(9); //servo relié a la broche 9
monservo.write(pos); // met le servo en position initiale
Serial.begin(57600);
Wire.begin(); //demarrage liaison série
}
void loop() {
DateTime now = RTC.now();
if ((now.hour() == 17) && (now.minute() == 30) && (now.second() == 00)) //heure minutes seconde de declenchement: 12h30m00s
{
for (int compteur = 0; compteur < 4; compteur++) //permet d'exécuter 4 fois le code ci-dessous
{
for (pos = 0; pos <= 180; pos += 1) // va de 0° à 180° par pas de 1
{
monservo.write(pos); // dit au servo de prendre la position 'pos'
delay(50); // attendre 50ms pour servo arrive position
}
for (pos = 180; pos >= 0; pos -= 2) // va de 180° à 0° par pas de 2
{
monservo.write(pos); // dit au servo de prendre la position 'pos'
delay(50); // attendre 50ms pour servo arrive position
}
}
for (int compteur = 0; compteur < 5; compteur++) //permet d'exécuter 5 fois le code ci-dessous
{
digitalWrite(cloche, HIGH); //declenchement de la cloche via solenoide
delay(100);
digitalWrite(cloche, LOW);
delay(100);
}
}
// utilisation manuelle de la cloche
etatboutoncloche = digitalRead(boutoncloche); // verification de l'état du boutoncloche
if (etatboutoncloche == HIGH) // enclenchement du bouton cloche
for (int compteur = 0; compteur < 5; compteur++) //permet d'exécuter 5 fois le code ci-dessous
{
digitalWrite(cloche, HIGH); //declenchement de la cloche via solenoide
delay(100);
digitalWrite(cloche, LOW);
delay(100);
}
// avance manuelle
etatboutonavance = digitalRead(boutonavance); // verification de l'état du boutonavance
if (etatboutonavance == HIGH) // enclenchement du bouton avance
{
for (int compteur = 0; compteur < 4; compteur++) //permet d'exécuter 4 fois le code ci-dessous
{
for (pos = 0; pos <= 180; pos += 1) // va de 0° à 180° par pas de 1
{
monservo.write(pos); // dit au servo de prendre la position 'pos'
delay(50); // attendre 50ms pour servo arrive position
}
for (pos = 180; pos >= 0; pos -= 2) // va de 180° à 0° par pas de 2
{
monservo.write(pos); // dit au servo de prendre la position 'pos'
delay(50); // attendre 50ms pour servo arrive position
}
}
}
}