Je viens de finir mon projet de PPE à l'instant, mais je souhaiterai ajouter un petit quelque chose à mon programme : mon programme s'exécute impécable, et à la fin, il ne se redémarre pas tout seul, il faut éteindre l'arduino pour que le programme recommence ce qui est normal. Or je voudrai que dès que le programme se termine, il se redémarre tout seul, sans avoir a éteindre à chaque fois l'arduino.
Merci par avance
ps : voila le programme :
#include <stdlib.h> #include <stdio.h> #include <Metro.h> #include <LiquidCrystal.h> const int RS=12; const int E=11; const int D4=5; const int D5=4; const int D6=7; const int D7=6; LiquidCrystal lcd(RS, E, D4, D5, D6, D7); Metro ledMetro = Metro(3000); int pos_rad_BP; int pos_deg_BP; int pos_rad1_BP; int pos_deg1_BP; int vitesse_BP; int vitesse; int pos_rad; int pos_deg; int pos_deg1; int pos_rad1; int nbre_impulsion; int nbre_impulsion1; int nbre_impulsion_vitesse; volatile int front_montant = LOW; int BPState = 8; void setup() // fonction setup - début de l'exécution du programme { Serial.begin(9600); lcd.begin(20,4); attachInterrupt(0, counter, RISING); attachInterrupt(1, positionBP, RISING); pinMode(BPState, INPUT); lcd.setCursor(0,0); lcd.print(" PROJET DE PPE "); lcd.setCursor(0,1); lcd.print(" 2011 - 2012 "); lcd.setCursor(0,2); lcd.print(" PUJOL-STOECKLIN "); lcd.setCursor(0,3); lcd.print(" SYLVAIN-WOZNIAK "); delay(4000); lcd.clear(); delay(10); } void counter() { ++nbre_impulsion; ++nbre_impulsion1; ++nbre_impulsion_vitesse; } void positionBP() { pos_rad_BP = pos_rad; pos_deg_BP = pos_deg; vitesse_BP = vitesse; pos_rad1_BP = pos_rad1; pos_deg1_BP = pos_deg1; } void loop() { lcd.clear(); int BP = digitalRead(8); if (BP == HIGH) { while (pos_deg <= 90) { lcd.clear(); if (ledMetro.check() != 1) { vitesse = ((nbre_impulsion_vitesse*(3.14/2)/90)/2)*1000; pos_rad = (nbre_impulsion*(3.14/2)/90)*1000; pos_deg = nbre_impulsion; lcd.setCursor(0,0); lcd.print("POS DEG: "); lcd.setCursor(10,0); lcd.print(pos_deg); lcd.setCursor(0,1); lcd.print("POS MRAD: "); lcd.setCursor(10,1); lcd.print(pos_rad); lcd.setCursor(0,2); lcd.print("vitesse :"); lcd.setCursor(10,2); lcd.print(vitesse); } if (ledMetro.check() == 1) { nbre_impulsion_vitesse = 0; lcd.clear(); delay(100); } } while (pos_deg >= 90) { lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (100); lcd.clear(); lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (15000); lcd.clear(); } } if(BP == LOW) { pos_deg1 = 90-(nbre_impulsion); while (pos_deg1 > 0) { lcd.clear(); if (ledMetro.check() != 1) { vitesse = ((nbre_impulsion_vitesse*(3.14/2)/90)/2)*1000; pos_rad1 = ((3.14/2)-(nbre_impulsion*(3.14/2)/90))*1000; pos_deg1 = 90-nbre_impulsion; lcd.setCursor(0,0); lcd.print("POS DEG: "); lcd.setCursor(10,0); lcd.print(pos_deg1); lcd.setCursor(0,1); lcd.print("POS MRAD: "); lcd.setCursor(10,1); lcd.print(pos_rad1); lcd.setCursor(0,2); lcd.print("vitesse :"); lcd.setCursor(10,2); lcd.print(vitesse); } if (ledMetro.check() == 1) { nbre_impulsion_vitesse = 0; lcd.clear(); delay(100); } } while (pos_deg1 <= 0) { lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg1_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad1_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (100); lcd.clear(); lcd.setCursor(0,0); lcd.print("POS DEG BP: "); lcd.setCursor(14,0); lcd.print(pos_deg1_BP); lcd.setCursor(0,1); lcd.print("POS MRAD BP: "); lcd.setCursor(14,1); lcd.print(pos_rad1_BP); lcd.setCursor(0,2); lcd.print("vitesse BP:"); lcd.setCursor(14,2); lcd.print(vitesse_BP); delay (15000); lcd.clear(); } } }