je besoin aide pour mon projet

Slt a tous

SVP j'ai besoin d'un aide pour mon programme ;
Qui permet de gérer un signal carré de rapport 0.5 fixe avec une fréquence variable en fonction de temps pour arduiono méga

Et pour le balayage fréquentiel ;

Entre 0 et 20 ms [37KHZ]
Entre 20ms et 40 ms [35KHZ]
Entre 40ms et 60 ms [33KHZ]
Entre 60ms et 80 ms [31KHZ]
Entre 80 ms et 10s [30KHZ]
Entre 10s et 11s [25KHZ]
Entre 13s et 14s [15KHZ]
Entre 14s et 15s [10KHZ]
Entre 15s et infini [6KHZ]
Mon idée ci utilisé la fonction Delay microseconde pour gérer les fréquences et Delay milliseconde pour calculer le temps mais malheureusement mon programme ça marche pas. et voilà le programme que j’ai déjà utilisé.

[color=#050505]int outPin = 7;                 [/color]



[color=#050505] [/color]



[color=#050505]void setup()[/color]



[color=#050505]{[/color]



[color=#050505] 
pinMode(outPin, OUTPUT);      [/color]



[color=#050505]}[/color]



[color=#050505] [/color]



[color=#050505]void loop()[/color]



[color=#050505]{[/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(8);        [/color]



[color=#050505] 
digitalWrite(outPin, LOW);   [/color]



[color=#050505] 
delayMicroseconds(8); [/color]



[color=#050505] [/color]



[color=#050505]  delay(20);[/color]



[color=#050505] [/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(9);        [/color]



[color=#050505] 
digitalWrite(outPin, LOW);   [/color]



[color=#050505] 
delayMicroseconds(9); [/color]



[color=#050505] [/color]



[color=#050505]  delay(20);[/color]



[color=#050505]  [/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(10);        [/color]



[color=#050505] 
digitalWrite(outPin, LOW);   [/color]



[color=#050505] 
delayMicroseconds(10); [/color]



[color=#050505] [/color]



[color=#050505]  delay(20);[/color]



[color=#050505]  [/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(11);        [/color]



[color=#050505] 
digitalWrite(outPin, LOW);   [/color]



[color=#050505] 
delayMicroseconds(11); [/color]



[color=#050505] [/color]



[color=#050505]  delay(20);[/color]



[color=#050505]  [/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(12);        [/color]



[color=#050505] 
digitalWrite(outPin, LOW);   [/color]



[color=#050505] 
delayMicroseconds(12); [/color]



[color=#050505] [/color]



[color=#050505]  delay(10000);[/color]



[color=#050505]  [/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(15);        [/color]



[color=#050505] 
digitalWrite(outPin, LOW);   [/color]



[color=#050505] 
delayMicroseconds(15); [/color]



[color=#050505] [/color]



[color=#050505]  delay(1000);[/color]



[color=#050505]  [/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505]  delayMicroseconds(25);        [/color]



[color=#050505] 
digitalWrite(outPin, LOW);   [/color]



[color=#050505] 
delayMicroseconds(25); [/color]



[color=#050505] [/color]



[color=#050505]  delay(1000);[/color]



[color=#050505] [/color]



[color=#050505]  
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(45);        [/color]



[color=#050505]  [/color][color=#050505]digitalWrite(outPin, LOW);   [/color]



[color=#050505]  delayMicroseconds(45); [/color]



[color=#050505] [/color]



[color=#050505]  delay(1000);[/color]



[color=#050505] [/color]



[color=#050505] 
digitalWrite(outPin, HIGH);   [/color]



[color=#050505] 
delayMicroseconds(75);        [/color]



[color=#050505]  [/color][color=#050505]digitalWrite(outPin, LOW);   [/color]



[color=#050505]  delayMicroseconds(75); [/color]



[color=#050505] [/color]



[color=#050505]  [/color]



[color=#050505]}[/color]



[justify][color=#050505] [/color][/justify]

Tu ne penses pas qu'il serait plus simple de générer le signal carré en utilisant l'un des timers?

marref1990:
Slt a tous

SVP j'ai besoin d'un aide pour mon programme ;
Qui permet de gérer un signal carré de rapport 0.5 fixe avec une fréquence variable en fonction de temps pour arduiono méga

Et pour le balayage fréquentiel ;

Entre 0 et 20 ms [37KHZ]
Entre 20ms et 40 ms [35KHZ]
Entre 40ms et 60 ms [33KHZ]
Entre 60ms et 80 ms [31KHZ]
Entre 80 ms et 10s [30KHZ]
Entre 10s et 11s [25KHZ]
Entre 13s et 14s [15KHZ]
Entre 14s et 15s [10KHZ]
Entre 15s et infini [6KHZ]
Mon idée ci utilisé la fonction Delay microseconde pour gérer les fréquences et Delay milliseconde pour calculer le temps mais malheureusement mon programme ça marche pas. et voilà le programme que j’ai déjà utilisé.

int outPin = 7;                 

void setup()
{
  pinMode(outPin, OUTPUT);     
}

void loop()
{
  digitalWrite(outPin, HIGH); 
  delayMicroseconds(75);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(75);

delay(20);

digitalWrite(outPin, HIGH); 
  delayMicroseconds(9);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(9);

delay(20);
 
  digitalWrite(outPin, HIGH); 
  delayMicroseconds(10);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(10);

delay(20);
 
  digitalWrite(outPin, HIGH); 
  delayMicroseconds(11);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(11);

delay(20);
 
  digitalWrite(outPin, HIGH); 
  delayMicroseconds(12);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(12);

delay(10000);
 
  digitalWrite(outPin, HIGH); 
  delayMicroseconds(15);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(15);

delay(1000);
 
  digitalWrite(outPin, HIGH); 
  delayMicroseconds(25);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(25);

delay(1000);

digitalWrite(outPin, HIGH); 
  delayMicroseconds(45);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(45);

delay(1000);

digitalWrite(outPin, HIGH); 
  delayMicroseconds(75);       
  digitalWrite(outPin, LOW); 
  delayMicroseconds(5);

}

Un truc à lire ici

Les réponses sur ce forum doivent pouvoir servir à tous.
Le moteur de recherche utilise les titres.

Conclusion avec ton titre les réponses ne serviront qu'à toi.

C'est pourtant bien expliqué dans les messages épinglés :
Extrait de "Règles du forum francophone ":

Durcissement de la surveillance du forum.... sans sommation

Les titres à la con style "aidez moi" "urgent" ou autre >>> poubelle

code pas entre les balises >> poubelle

UP >>> poubelle (même si le sujet à plein de réponses, désolé pour ceux qui ont contribué)

Les demandes déguisées n'indiquant pas sujet bac avec texte au kilomètre=>poubelle

Certains sujets passent entre les gouttes, mais si ils remontent et que je vois que ça ne correspond pas à la charte >>> poubelle (même si le sujet à plein de réponses, désolé pour ceux qui ont contribué).

A ceux qui estiment que leur sujet est important d'aller contrôler que leurs messages correspondent à la charte du forum qui se trouve dans les messages épinglés et à faire les corrections si nécessaire.

Pour modifier un titre il faut éditer le premier message.