Bonjour à tous ,
Voila j'ai fait ce petit projet visant à équiper mon quadcopter il s'agit de 4 rubans leds (ledstrip). Voila je mesure le signal venant de mon recepteur RC mais j'aimerais plutot faire une interruption lorsque par exemple le signal depasse 2000 us. J'utilise la pin 13 en input pour mesurer le signal provenant du recepteur rc.
Alors actuellement j'arrive a changer de programme mais je suis obliger d'attendre la fin du programme pour appuyer et des fois je bascule d'un programme en sautant un programme.
Comment je pourrais faire pour utiliser une interruption sur ma pin 13.
Un petite vidéo de mon projet.
Code:#include <SoftPWM.h> int pwmrouge; int pwmvert; int pwmbleu; int PulseRc; int Prog; int i; int ledstrip; void setup() { // Initialize SoftPWMBegin(); // Create and set pin 13 to 0 (off) SoftPWMSet(12, 0); pwmrouge = 0; pwmvert = 0; pwmbleu = 0; pinMode(13, INPUT); Prog=1; } void LedRGB(int pwmrouge, int pwmvert, int pwmbleu, int ledstrip) { if (ledstrip==1){ SoftPWMSetPercent(3, pwmbleu); SoftPWMSetPercent(2, pwmvert); SoftPWMSetPercent(1, pwmrouge); } if (ledstrip==2){ SoftPWMSetPercent(6, pwmbleu); SoftPWMSetPercent(5, pwmvert); SoftPWMSetPercent(4, pwmrouge); } if (ledstrip==3){ SoftPWMSetPercent(9, pwmbleu); SoftPWMSetPercent(8, pwmvert); SoftPWMSetPercent(7, pwmrouge); } if (ledstrip==4){ SoftPWMSetPercent(12, pwmbleu); SoftPWMSetPercent(11, pwmvert); SoftPWMSetPercent(10, pwmrouge); } if (ledstrip==5){ SoftPWMSetPercent(12, pwmbleu); SoftPWMSetPercent(11, pwmvert); SoftPWMSetPercent(10, pwmrouge); SoftPWMSetPercent(9, pwmbleu); SoftPWMSetPercent(8, pwmvert); SoftPWMSetPercent(7, pwmrouge); SoftPWMSetPercent(6, pwmbleu); SoftPWMSetPercent(5, pwmvert); SoftPWMSetPercent(4, pwmrouge); SoftPWMSetPercent(3, pwmbleu); SoftPWMSetPercent(2, pwmvert); SoftPWMSetPercent(1, pwmrouge); } } void loop() { // Turn on - set to 100% PulseRc = pulseIn(13, HIGH, 25000); if (PulseRc>1200){ Prog++; } if (Prog>5){Prog=1;} if (Prog==1){ LedRGB(100, 0, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 0, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100,0, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0, 100, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0, 100, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0,100, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0, 0, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0, 0, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0,0, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0, 100, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0, 100, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(0, 100, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 100, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 100, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 100, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 100, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 100, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 100, 0, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 0, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 0, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); LedRGB(100, 0, 100, 5); delay(100); LedRGB(0, 0, 0, 5); delay(50); } if (Prog==2){ pwmrouge = random(0,100); pwmvert = random(0,100); pwmbleu = random(0,100); for(i=4 ; i>=1 ; i--) { LedRGB(pwmrouge, pwmvert, pwmbleu, i); delay(40); LedRGB(0, 0, 0, i); delay(20); LedRGB(pwmrouge, pwmvert, pwmbleu, i); delay(40); LedRGB(0, 0, 0, i); delay(20); LedRGB(pwmrouge, pwmvert, pwmbleu, i); delay(40); LedRGB(0, 0, 0, i); delay(20); LedRGB(pwmrouge, pwmvert, pwmbleu, i); delay(40); LedRGB(0, 0, 0, i); delay(20); } i=4; } if (Prog==3){ pwmrouge = random(0,100); pwmvert = random(0,100); pwmbleu = random(0,100); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(500); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(100); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); LedRGB(0,0,0,5); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 5); delay(50); } if (Prog==4){ pwmrouge = 0; pwmvert = 0; pwmbleu = 100; LedRGB(pwmrouge, pwmvert, pwmbleu, 1); LedRGB(pwmrouge, pwmvert, pwmbleu, 2); delay(25); LedRGB(0, 0, 0, 1); LedRGB(0, 0, 0, 2); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 1); LedRGB(pwmrouge, pwmvert, pwmbleu, 2); delay(25); LedRGB(0, 0, 0, 1); LedRGB(0, 0, 0, 2); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 1); LedRGB(pwmrouge, pwmvert, pwmbleu, 2); delay(25); LedRGB(0, 0, 0, 1); LedRGB(0, 0, 0, 2); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 1); LedRGB(pwmrouge, pwmvert, pwmbleu, 2); delay(25); LedRGB(0, 0, 0, 1); LedRGB(0, 0, 0, 2); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 3); LedRGB(pwmrouge, pwmvert, pwmbleu, 4); delay(25); LedRGB(0, 0, 0, 3); LedRGB(0, 0, 0, 4); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 3); LedRGB(pwmrouge, pwmvert, pwmbleu, 4); delay(25); LedRGB(0, 0, 0, 3); LedRGB(0, 0, 0, 4); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 3); LedRGB(pwmrouge, pwmvert, pwmbleu, 4); delay(25); LedRGB(0, 0, 0, 3); LedRGB(0, 0, 0, 4); delay(50); LedRGB(pwmrouge, pwmvert, pwmbleu, 3); LedRGB(pwmrouge, pwmvert, pwmbleu, 4); delay(25); LedRGB(0, 0, 0, 3); LedRGB(0, 0, 0, 4); delay(50); } if (Prog==5){ pwmrouge = 0; pwmvert = 0; pwmbleu = 0; LedRGB(pwmrouge, pwmvert, pwmbleu, 1); LedRGB(pwmrouge, pwmvert, pwmbleu, 2); LedRGB(pwmrouge, pwmvert, pwmbleu, 3); LedRGB(pwmrouge, pwmvert, pwmbleu, 4); } }
Cordialement,
bypbop
-----