Comment comptabiliser un declenchement de relai

Je suis debutant sur Arduino, je suis étonné de ce que je suis arrivé a faire en 2 semaines mais maintenant je sèche sur cette suite de mon sketch "comment comptabiliser un declenchement de relai" tout est dans le titre. J'aimerais savoir quelle variable et fonction utiliser pour par la suite savoir le nombre de fois ou mon relai a collé car je voudrais ensuite au bout de 10 fois changer l angle de mon servo tout les 10 declenchements. Je sais commander mes servos mais pas integrer dans le sketch un controle qui renvoi cette info pour l'utiliser ensuite. Merci d'avance pour toute info et aide

Bonjour, il suffit de faire une variable qui sert de compteur.

static int compteur = 0; // variable compteur

// ...
// Ton code qui fait coller le relai
compteur++; // Incrémente le compteur

// ...
if(compteur == 10) {
  // ton code qui déplace le servo
  compteur = 0; // Reset du compteur
}

Sinardets: Je suis debutant sur Arduino, je suis étonné de ce que je suis arrivé a faire en 2 semaines mais maintenant je sèche sur cette suite de mon sketch "comment comptabiliser un declenchement de relai" tout est dans le titre. J'aimerais savoir quelle variable et fonction utiliser pour par la suite savoir le nombre de fois ou mon relai a collé car je voudrais ensuite au bout de 10 fois changer l angle de mon servo tout les 10 declenchements. Je sais commander mes servos mais pas integrer dans le sketch un controle qui renvoi cette info pour l'utiliser ensuite. Merci d'avance pour toute info et aide

T'as une marge d'erreur sur le comptage ? Si oui, une variable qui incrémente à chaque envoie de commande. Si non, utiliser un input pour vérifier si le relais à physiquement été enclenché (et par la même occasion voir s'il est HS ou pas)

Merci pour ces conseils je vais tenter d'écrire ce code mais étant novice j'èspere y arriver, dans le cas ou je n'y arrive pas je ferais appel a tes conseils, encore merci.

Me revoila pour comptabiliser le nombre de declenchement relai et faire bouger mon servo tilt apres 10 declenchement.
Au niveau du code je pense ne pas etre loin du but mais en fin de compil, j’ai ce message :

essai030712_bis.cpp: In function ‘void resetcount10()’:
essai030712_bis:85: error: expected `}’ at end of input
si quelqu’un pouvait me guider ou me corriger merci d’avance, je reste un debutant…

#include <Servo.h>

Servo servoPan; // Define Pan servo
Servo servoTilt; // Define Tilt servo
Servo servoUp; // Define Up servo
int relai = 12; // Define relai
static int count10 = 0; // variable compteur

void setup() {
servoPan.attach(10); // Set Pan servo to digital pin 10
servoTilt.attach(9); // Set Tilt servo to digital pin 9
servoUp.attach(8); // Set Relevage de servo pan to digital pin 8

Serial.begin(9600);
pinMode(relai, OUTPUT);
}

void loop() { // Loop through motion tests

rotate(); // mis a 0 pan et 90 tilt-up
delay(1000);
rotate1(); // mis a 0 up
delay(500);
rotate2(); //remise a 36 servo Pan
delay(2000); // Wait 1000 milliseconds (1 seconds)
shoton(); //ouverture relai declenchement APN
delay(100);
shotoff(); //fermeture relai declenchement APN
delay(2500);
relaycount(); //compte le nombre de declenchement relai
delay(10);
resetcount10(); // Reset du compteur
delay(10);
up3(); //relevage servo Pan
delay(1000);
rotate4(); //remise a 0 servo Pan
delay(100);

}

// Motion routines for forward, reverse, shot, up, count
void rotate() {
servoPan.writeMicroseconds(600);
servoUp.write(90);
servoTilt.write(90);
}

void rotate1() {
servoUp.write(0);

}

void rotate2() {
servoPan.writeMicroseconds(1170);
}

void shoton() {
digitalWrite(relai, HIGH);
}

void shotoff() {
digitalWrite(relai, LOW);

}

void up3() {
servoUp.write(90);

}

void rotate4() {
servoPan.writeMicroseconds(600);

}

void relaycount() {
// digitalWrite(relai, HIGH)
count10++; //
}

void resetcount10() {
if(count10 == 10) {
// Servo servoTiltwrite(45)
count10 = 0;
}

Met ton code entre balise code (# dans l'éditeur) sinon il sera mis en vrac par le forum.

Dans ta fonction resetcount10() :

void resetcount10() {
  if(count10 == 10) {
    // Servo servoTiltwrite(45)
    count10 = 0; 
  }
}

Il manque une accolade fermante après count10 = 0.

Ps: J'ai pas regardé le reste de ton code.

Merci a Skiwood, mais effectivement après quelques longues recherches je me suis aperçu de la bétise (erreur de débutant)... Merci quand même ainsi que pour le conseils de mise en ligne de code.