Compter un signal pwm

Bonjour, je suis débutant, je n’arrive pas à trouver comment « compter » le nombre de fois qu’signal pwm apparaît.
Je voudrais détourner une commande à 2 états pour en produir 3 voir plus.
Merci

Henr1184:
Bonjour, je suis débutant, je n’arrive pas à trouver comment « compter » le nombre de fois qu’signal pwm apparaît.
Je voudrais détourner une commande à 2 états pour en produir 3 voir plus.
Merci

Bonsoir
Ta question n'est pas très/assez explicite 8)

Tu veux recupérer/analyser/dériver quel "genre de PWM" ?

Perso , j'ai déjà fait ça il y a pas mal de temps pour recuperer du signal "servo"

Bonsoir, pardon, j’ai sur un drone, une commande que je ne peut pas modifier en amont, qui pilote un servo sur seulement deux positions A ou B . j’aimerais y brancher un arduino pour pouvoir compter le changement d'état A/B et le traduire en plusieurs (3 ou plus) signaux pwm.

Henr1184:
Bonsoir, pardon, j’ai sur un drone, une commande que je ne peut pas modifier en amont, qui pilote un servo sur seulement deux positions A ou B . j’aimerais y brancher un arduino pour pouvoir compter le changement d'état A/B et le traduire en plusieurs (3 ou plus) signaux pwm.

J'avais bien subodoré "un truc dans le genre" :grin: :
récup d'une voie servo sur le recepteur pour "faire" autre chose"
J'ai un code là dessus , mais pas avant demain fin d'AM

en gros tu veux detecter le nombre de changement d'etat ON/OFF d'un inter de ta télécommande sur un temps X ?

et en dériver "d"autres signaux servo " ?

Oui voilà c’est ça!

Henr1184:
Oui voilà c’est ça!

OK
Je vais essayer de remettre la main demain sur mon ancienne manip

Super merci!

Henr1184:
Super merci!

bonjour
Tu peux t'inspirer de çà

/*
  Dispositif basique de mise en securité d'une tourelle de char RC
  pour empecher le canon de toucher la caisse du char lors du passage
  sur une/des zones depassant l'horizontal
  1er jet programme de test simple sur base 328P
  on assume là que le servo est en progression creneaux positifs pour une elevation positive
  Pas d'utilisation de la lib servo en sortie (usage future)

*/
int V1 = 2; // signal servo en provenance du recepteur
int ZS = 3;  // detecteur de la zone à securiser
int S1 = 4; // sortie signal vers servo
int DS1 = 0; // durée creneaux haut servo en sortie
int LS1 = 1600; //durée limite basse creneaux en µs sur la zone à protéger


void setup() {
  Serial.begin(115200); // pour debug
  pinMode(V1, INPUT);  // signal servo en provenance du recepteur
  pinMode(ZS, INPUT);  // detecteur de la zone à securiser
  pinMode(S1, OUTPUT);  // sortie signal vers servo
  Serial.println(LS1);
  delay(1000) ;
}


void loop() {
  DS1 = pulseIn(V1, HIGH, 22000); // Lire durée creneaux venant du recepteur (timeout large à 22 ms)

  if (digitalRead(ZS) == LOW) {
    digitalWrite(S1, HIGH); // on est pas en zone à securiser , simple recopie signal recepteur vers servo
    delayMicroseconds(DS1); // pour la durée mini de securité ou la durée du recepteur si >
    digitalWrite(S1, LOW); // on met la sortie servo à l'etat bas
  }

  if (digitalRead(ZS) == HIGH) { // on est en zone à securiser, la condition peut etre inverse selon le signal du capteur


    if (DS1 < LS1) DS1 = LS1; // on est trop bas en zone a securiser, alors on affecte la durée mini creneaux en zone securité

    digitalWrite(S1, HIGH); // on met la sortie vers le servo à l'etat haut
    delayMicroseconds(DS1); // pour la durée mini de securité ou la durée du recepteur si >
    digitalWrite(S1, LOW); // on met la sortie servo à l'etat bas


  }
  delayMicroseconds(20000); // etat bas inter creneaux servo à la louche , puriste devrait etre 20000-DS1

}