/********************************************************************************** * Anti Over Shoot pour ampli lineaire par F6BQP V2.1 le 17/02/2022 * * Prevu pour fonctionner avec un Arduino nano * * Attention: les temporisations sont faites avec delayMicroseconds() car * * l'instruction delay() ne fonctionne pas a l'interieur d'une interruption * **********************************************************************************/ //----------------------- Affectation des Pins Arduino ---------------------------- #define LED 13 // sortie LED #define PTT_PA 3 // sortie PTT PA int PTT = 2; // entree PTT obligatoirement pin 2 //------------------------- Routine d'interruption -------------------------------- void Interruption() { if (digitalRead(PTT) == LOW) // si emission { digitalWrite(PTT_PA, HIGH); // PTT PA = 0V digitalWrite(LED, HIGH); // allume LED delayMicroseconds(15000); // 16383 microsecondes MAX // delayMicroseconds(16383); // si besoin de plus de 16 mS digitalWrite(LED, LOW); // eteint LED digitalWrite(6, LOW); // ALC OFF } else // si reception { analogWrite(6, 127); // ALC ON delayMicroseconds(5000); // attente 5mS digitalWrite(PTT_PA, LOW); // PTT PA OFF } } //------------------Routine d'initialisation au demarrage-------------------------- void setup() { pinMode (LED, OUTPUT); // sortie LED pinMode (PTT_PA, OUTPUT); // sortie PTT PA pinMode (PTT, INPUT_PULLUP); // entree PTT digitalWrite(PTT_PA, LOW); // PTT PA OFF analogWrite(6, 127); // ALC ON attachInterrupt(0,Interruption,CHANGE); // initialise interruption sur D2 } //--------------------------- boucle principale ----------------------------------- void loop() { } // FIN du programme